A two-level approach to prove tautologies using Stålmarck's algorithm in Coq.
- Pierre Letouzey (initial)
- Laurent Théry (initial)
- Coq-community maintainer(s):
- Karl Palmskog (@palmskog)
- License: GNU Lesser General Public License v2.1 or later
- Compatible Coq versions: Coq master (use the corresponding branch or release for other Coq versions)
- Additional dependencies: none
- Coq namespace:
- Related publication(s):
Building and installation instructions
The easiest way to install the latest released version of Stalmarck is via OPAM:
opam repo add coq-released https://coq.inria.fr/opam/released opam install coq-stalmarck
To instead build and install manually, do:
git clone https://github.com/coq-community/stalmarck.git cd stalmarck make # or make -j <number-of-cores-on-your-machine> make install
This project is composed of:
- A Coq proof of correctness of the algorithm, as described in the paper A Formalization of Stålmarck's Algorithm in Coq, published in the proceedings of TPHOLs 2000.
- an implementation of the algorithm. With respect to the paper, this implementation is completely functional and can be used inside Coq.
- A reflected Coq tactic
staltacthat uses the extracted code to compute an execution trace; the trace checker is then called inside Coq.
- A standalone checker program
stalmarckwhich takes as input a formula in textual format and reports whether it can be certified as a tautology.
algoRun.v for examples how to use the algorithm inside Coq, and
StalTac_ex.v for examples how to use the reflected tactic.