Mathematical proofs are sequences of steps which take expressions in a formal language which state something already known to another formal expression which becomes known as a result. Each step must be justified by a rule of inference. The notion of proof is sharpened when the set of inference rules is reduced to a small number. But the effect of such reduction on proofs is to make them cumbersome, like the computations of a Turing Machine. ProofCheck uses a really large rule set to make possible proofs which are not cumbersome. The default inference rule set currently contains over 1500 rules and is still growing.
Either TeX or LaTeX may be used. What is required in the way of document structure is that:
1. Each theorem must be labeled and numbered in number-dot-number style,
2. Each theorem and proof must be expressed in a language that ProofCheck can learn to parse, and
3. Proof steps must be numbered and annotated following ProofCheck syntax.
The work cycle is as follows:
Edit the document using your preferred text editor:
TeX the document:
Parse the document:
Check a proof of, say theorem 1.23:
check.py article 1.23
Errors at any stage of course send you back to the text editor.
TODO: Figure out how to actually get changelog content.
Changelog content for this version goes here.