prove(true, true).
prove(Goal, (Goal :- BodyProof)) :- 
    clause((Goal :- Body)),
    prove(Body, BodyProof).
prove((Body1, Body2), (Body1Proof, Body2Proof)) :-
    prove(Body1, Body1Proof),
    prove(Body2, Body2Proof).
