# leanTAP Revisited Again

2022-09-22, updated 2022-09-22 next - previous

Another sequent calculus Prolog prover for classical propositional logic, based on Fitting’s paper [1].

The prover below is an improved version of the Prolog implementation of dirseq, that is the sequent calculus defined by Fitting when he revisited leanTAP, the prolog prover for First-Order Logic published by Beckert and Posegga [2]. The Prolog code below (that is a prover online thanks to Tau Prolog) is an improvement of Fitting’s: for example, it provides a proof of Pelletier Problem 71 (file SYN007+1.014.p of ILTP Problems Library) and running with SWI Prolog, it gets the following statistics:

% 11,845,618 inferences, 1.268 CPU in 1.268 seconds (100% CPU, 9343626 Lips)


In comparison, leanseq prover published here proves the same formula with 54,890,489 inferences, 4.558 CPU in 4.561 seconds (100% CPU, 12042963 Lips). Therefore, this version of leanTAP can be considered as a very efficient Prolog prover for classical propositional logic.

It would be interesting to explain why this algorithm implemented in this order in Prolog is so efficient.

To be continued

A - Prolog Code:

D - Examples of Queries:

1. Excluded Middle: a | ~ a
2. Dilemma : ((~ a => b) & (a => b)) => b
3. Double Negation: ~(~a) <=> a
4. Peirce’s Law: ((a => b) => a) => a
5. Dummett Formula : (a => b)| (b => a)
6. Classical equivalence for negation : (~a => a) <=> a
7. Classical De Morgan's Law : ~((a & b)) => (~ a | ~b)
8. Pelletier Problem 17 : ( ( ( p & ( q => r ) ) => s ) <=> ( ( ~ p | q | s ) & ( ~ p | ~ r | s ) ) )
9. a
10. a => b
11. (a | b) => (a & b)
12. a & b | a & ~b | ~a & b | ~a & ~c

## 1. References

1.
Fitting, M. leanTAP Revisited. Journal of Logic and Computation, 1998, 8(1), 33–47, [Online]. Available: https://www.researchgate.net/publication/2240690_leanTAP_revisited.
2.
Beckert, B., Posegga, J. leanTAP: Lean Tableau-based Deduction. Journal of Automated Reasoning, 1997, 15, doi: 10.1007/BF00881804.

Made with Emacs 29.0.50 (Org mode 9.5) and with org-export-head, a blog exporter.

The css file of this blog is mainly the result of Zhitao Gong's work.