High Level Theorem Prover Example Approach
(This is meant to be a possible approach, and not necessarily the one you will use)
 

Loop until Done

1.  Pick two sentences to resolve

   • Specialized Unify - To be reasonable to do a resolution the two sentences must fulfill the following:
      - Two sentences must share a predicate, which  is negated in one and not the other
      - Parameters for the resolving predicate are unifiable
      - The new resolvent is not a duplicate of something already in the KB.  While checking for duplicates, may optionally check for subsumption (either the new resolvent being subsumed (in which case don't add it), or delete sentences in the KB which are subsumed by the new resolvent)

   • What order to check (This is the part where you get to think)
      - First list and order all possible resolutions (can be slower, but do not have to re-evaluate each time), or...
      - Order sentences such that better resolutions will be tried first, or...
 
      - Then you can just resolve the highest legal resolution in your ordering
      - For random version, any ordering will do
 

2.  Resolve sentences and add resolvent to the KB

   • Add it so that it best fits your heuristic ordering approach
 

3.  If proof done, print out the specific proof sequence (just those steps  used to accomplish the proof)

   •  Back pointers or some other scheme