The first half of prove works, it is set up to handle recursive calls, by appending the options
prflist arguement to the clause we want to prove. The idea is the first call should contain the single
clause we want to prove, the next call with contain the clause that where add when we resolved the first
clause, this pattern will carry on until we have no more clauses to resolve.