PyCheck 0.1

S. Schulz
DHBW Stuttgart, Germany

Overview

PyCheck is a simple (mostly) semantic proof checker for refutation-based proofs in the most commonly used subset of TPTP/TSTP CNF/FOF syntax. Inspired by GDV [Sutcliffe2006], it performs both structural and semantic checks on proof files. Among the structural checks are existance of an explicit contradiction, acyclicity of the proof graph, and freshness of introduced (Skolem) symbols. Semantic checks include verification of "status(thm)" and "status(cth)" checks using the external prover.

Implementation

PyCheck reuses the parser and a lot of internal data structures from PyRes [SP2020], and thus supports the same core of the TPTP-3 proof language, with support added for more detailed derivations.

PyCheck calls an external prover (usually E [SCV2019]) to verify most proof steps (in particularly those with thm and cth semantics). It uses internal processing to try to verify Skolemization steps, to check existence of axioms in the original input file, and to perform structural checks on the proof graph.

PyCheck can be downloaded from GitHub:

 https://github.com/eprover/PyCheck

It requires E (https://www.eprover.org to be available in its search path (the ProoVer StaExec package should automatically do everything necessaru).

Expected Competition Performance

PyCheck 0.1 is at a very early state of maturity. It can handle all the problems given in the ProoVer description, but may fail to catch some particulary malicious structural problems of proofs. Overall, it should prove to be at least useful.

References

SP2020
Schulz S., Pease A. (2020) Teaching Automated Theorem Proving by Example: PyRes 1.2 (system description), Proc. of the 10th IJCAR, Paris LNAI, Springer (to appea)
SCV2019
Schulz S., Cruanes, S., Vukmirovic, P. (2019), Faster, Higher, Stronger: E 2.3, Proc. of the 27th CADE, Natal, LNAI 11716, Springer
Sutcliffe2006
Sutcliffe, G. (2006), Semantic DerivationVerification: Techniques and Implementation, InternationalJournal on Artificial Intelligence Tools 15(6):1053–1070.