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.
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).