Goéland
Goéland is a concurrent automated theorem prover using the tableau method for first order logic.
It supports TPTP FOF and TFF files.
Table of Contents
Installation
Nix
If you are a nix user, we provide a nix shell file that has all the necessary packages for compilation and development. In this case, simply run:
$ nix-shelland skip to the Compilation header.
Dependencies
In order to compile, Goéland needs:
- Go (version >= 1.22, download directly from the site), and
goyacc, which can be installed (recommended) fromgo's package manager tool using:or can be found in distribution-based packages:go install golang.org/x/tools/cmd/goyacc- in the package
golang-golang-x-toolsonapt-based distributions, - in the package
goyaccwith homebrew.
- in the package
Compilation
Run the command
$ cd src && maketo compile Goéland from source. This should produce an executable in the _build folder.
You can now run Goéland:
$ ./_build/goeland -h Usage of ./_build/goeland: [...]
Usage
Goéland must be called on a TPTP file. Running vanilla Goéland on problem.p can be done via the following command:
$ ./_build/goeland problem.pSee USAGE for an overview of the useful options.
Running Benchmarks
We have developed scripts (in python and bash) to make running benchmarks for Goéland easy. You can find the tools in this repository.
Bug Reports
If you find a bug or if something does not work as you expect it to, please report it by opening an issue.
To be effective, your report should include (i) the options passed to Goéland and (ii) the problem file for which the issue appears. Beware that, as Goéland's proof-search algorithm is non-deterministic, tracking bugs can sometimes be difficult and log files are appreciated (see USAGE for enabling logs and outputing them to a file).
Contributing
See the dedicated CONTRIBUTING file.
License
Goéland is licensed under the CeCILL 2.1 License. See LICENSE.
How To Cite
Please use the following paper to cite Goéland:
[CRDRB22] Julie Cailler, Johann Rosain, David Delahaye, Simon Robillard and Hinde L. Bouziane, Goéland: A Concurrent Tableau-Based Theorem Prover (System Description). In IJCAR22, 11th International Joint Conference on Automated Reasoning (Jasmin Blanchette, Laura Kovács, Dirk Pattinson eds.), Springer, LNCS, volume 13385, pp. 359-368, 2022.
Papers
-
The following paper presents an algorithm for deskolemizing proofs, which introduces a compatibility layer between tableaux and sequent calculus and then allows us to certify the proofs in various proof assistants. Goéland currently outputs proofs for Rocq (
-orocq) and LambdaPi (-olp). Note that the implementation is currently outdated w.r.t. the paper's version.[RBCH24] Johann Rosain, Richard Bonichon, Julie Cailler and Olivier Hermant, A Generic Deskolemization Strategy. In LPAR-25, 25th Conference on Logic for Programming, Artificial Intelligence and Reasoning (Nikolaj Bjørner, Marijn Heule, Andrei Voronkov eds.), EasyChair, EPiC Series in Computing, volume 100, pp. 246-263, 2024.