leanTAP: Lean Tableau-Based Theorem Proving (Extended Abstract)
“prove((E,F),A,B,C,D):- !, prove(E,[F|A],B,C,D). prove((E;F),A,B,C,D):- !, prove(E,A,B,C,D), prove(F,A,B,C,D). prove(all(H,I),A,B,C,D):- !, +length(C,D), copy_term((H,I,C), (G,F,C)), append(A, [all(H,I)],E), prove(F,E,B, [G|C],D). prove(A,_,[C|D],_,_):-((A= -(B); -(A)=B)) → (unify(B,C); prove(A,[],D,_,_)). prove(A,[E|F],B,C,D):- prove(E,F, [A|B],C,D).” implements a first-order theorem prover based on free-variable semantic tableaux. It is complete, sound, and efficient.