To compile use ./configure.sh
and then make
.
Furthermore, you need to have installed gmp
to run Pacheck 2.0
.
./pacheck [ <option> ... ] [ <input> <proof>] [<target>]
where <option>
is one of the following
-h | --help print this command line option summary and exit
-s | --no-target only check inferences but not that proof generates target
-d | --no-delete ignore delete rules
-s0 sort variables according to strcmp(default)
-s1 sort variables according to -1*strcmp
-s2 sort variables according to input order
-s3 sort variables according to reverse input order
The <input>
argument should point to a file with the
original set of polynomials and is a path to a proof file
interpreted as a sequence of inferences in the polynomial calculus.
The tool checks that all inferences in the sequence are correct.
The <target>
is optional. Ommiting this file has the same effect as choosing option -s
It should point to a file with a single polynomial which
should be generated by the proof.
The exit code is zero if and only if all checks succeed.
Running ./pacheck examples/example.input examples/example.proof examples/example.target
yields
[pck2] Pacheck Version 2.0
[pck2] Practical Algebraic Calculus Proof Checker
[pck2] Copyright(C) 2020, Daniela Kaufmann, Johannes Kepler University Linz
[pck2] sorting according to strcmp
[pck2] checking target enabled
[pck2] reading target polynomial from 'example.target'
[pck2] read 400 bytes from 'example.target'
[pck2]
[pck2]
[pck2] reading original polynomials from 'example.input'
[pck2] found 235 original polynomials in 'example.input'
[pck2] read 5985 bytes from 'example.input'
[pck2]
[pck2] reading polynomial algebraic calculus proof from 'example.proof'
[pck2] found and checked 121 inferences in 'example.proof'
[pck2] read 15274 bytes from 'example.proof'
[pck2]
[pck2]
[pck2] ----------------------------------------------------------------------
[pck2] c TARGET CHECKED
[pck2] ----------------------------------------------------------------------
[pck2]
[pck2] proof length: 356 (total number of polynomials)
[pck2] proof size: 1625 (total number of monomials)
[pck2] proof degree: 3
[pck2]
[pck2] total inferences: 356
[pck2] original inferences: 235 (66% of total rules)
[pck2] proof rules: 121 (34% of total rules)
[pck2] extensions: 0 (0% of inference rules)
[pck2] linear combination: 121 (100% of inference rules
[pck2] containing 287 additions
[pck2] and 286 multiplications)
[pck2] rules deleted: 162 (46% of total rules)
[pck2]
[pck2] total allocated terms: 819
[pck2] max allocated terms: 411 (50% of total terms)
[pck2] searched terms: 5120 (84% hits,
[pck2] 0.0 average collisions)
[pck2] searched inferences: 1281 (3.0 average searches,
[pck2] 0.0 average collisions)
[pck2]
[pck2] maximum resident set size: 3.70 MB
[pck2] process time: 0.01 seconds