luowanqian / pacheck2

Proof Checker for Linear Practical Algebraic Calculus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

License: MIT

Practical Algebraic Calculus Proof Checker 2.0

To compile use ./configure.sh and then make. Furthermore, you need to have installed gmp to run Pacheck 2.0.

Usage:

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

Example:

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

About

Proof Checker for Linear Practical Algebraic Calculus

License:MIT License


Languages

Language:C++ 95.7%Language:Shell 2.5%Language:C 1.8%