An Exception: Prover9 proofs start with clauses. If the
theorem was given to Prover9 as (non-clausal) formulas,
the original formulas and the
prover9 -f subset_trans.in > subset_trans.out
Prooftrans can extract proofs from Prover9 output files and transform them in various ways, including the following.
Prooftrans is part of the LADR/Prover9/Mace4 package. When the package is installed, the Prooftrans program should be in the same directory as Prover9 and Mace4.
The arguments that tell Prooftrans what to do with the proof(s) are described in the following sections, using the output file subset_trans.out as a running example.
If there is more than one proof in the file, the transformations will be applied to each proof. The hints transformation collects all of the clauses in the proof(s) into one list of hints. The other transformations produce one proof for each proof in the input file.
Here is a synopsis of the Prooftrans command; the arguments in square brackets are optional.
prooftrans [parents_only] [expand] [renumber] [-f file] prooftrans xml [expand] [renumber] [-f file] prooftrans ivy [-f file] prooftrans hints [-label label] [expand] [-f file]Note that more than one transformation can be applied in several cases.
Unfortunately, the output of Prooftrans usually cannot be used as the input to another Prooftrans job, because Prooftrans expects its input to have specific keywords and standard-form proofs.
prooftrans -f subset_trans.out > subset_trans.proof1
prooftrans renumber -f subset_trans.out > subset_trans.proof2
prooftrans parents_only -f subset_trans.out > subset_trans.proof3
prooftrans expand -f subset_trans.out > subset_trans.proof4Note that when a step is expanded (step 22 in this example), the new steps are identified by appending 'A', 'B', etc. to the number of the original step.
The renumber, parents_only, and hints transformations can be used with the expand transformation.
prooftrans xml -f subset_trans.out > subset_trans.proof5.xmlThe preceding output is displayed by your browser not as XML, but as some transformation of the XML, because the XML refers to an XML stylesheet, telling the browser how to transform the XML into HTML.
To see the XML source, click "View -> Page Source" (or something like that) in your browser while viewing the proof.
Here is the DTD for Prover9 XML proofs. (If you get an error, click "View -> Page Source".)
prooftrans ivy -f subset_trans.out > subset_trans.proof6
Ivy proofs have a only 5 types of step: input, propositional, new_symbol, flip, instantiate, resolve, and paramod. The resolve and paramod do not involve unification; instances are generated first as separate steps, and then resolve or paramod are applied to identical atomic formulas or terms.
The Ivy proof checker cannot check steps justified by new_symbol.
prooftrans hints -f subset_trans.out > subset_trans.proof7If there is more than one proof in the file, the proofs will probably share many steps. The list of hints that Prooftrans produces will be the union of the steps in the proofs; that is, the duplicate steps will be removed.
The expand transformation can be used with the hints transformation.
Note that the hints clauses that are produced have label attributes consisting of a unique integer identifiers. A string, say "job8" can be prepended to each identifier with the arguments -label "job8" as in the following example.
prooftrans hints -label "job8" -f subset_trans.out > subset_trans.proof8