package lambdapi
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=d01e5f13db2eaba6e4fe330667149e0059d4886c651ff9d6b672db2dfc9765ed
sha512=33b68c972aca37985ed73c527076198e7d4961c7e27c89cdabfe4d1cff97cd41ccfb85ae9499eb98ad9a0aefd920bc55555df6393fc441ac2429e4d99cddafa8
Description
Lambdapi is an interactive proof assistant for the λΠ-calculus modulo rewriting. It can call external automated theorem provers via Why3. The user manual is on https://lambdapi.readthedocs.io/. A standard library and other developments are available on https://github.com/Deducteam/opam-lambdapi-repository/. An extension for Emacs is available on MELPA. An extension for VSCode is available on the VSCode Marketplace. Lambdapi can read Dedukti files. It includes checkers for local confluence and subject reduction. It also provides commands to export Lambdapi files to other formats or systems: Dedukti, Coq, HRS, CPF.
Published: 04 Feb 2025
README
Lambdapi, a proof assistant based on the λΠ-calculus modulo rewriting
>>>>>
User Manual <<<<<
Issues can be reported on the issue tracker.
Questions can be asked on the forum.
User interfaces
Libraries
Lambdapi libraries can be found on the Opam repository of Lambdapi libraries.
Examples
tutorial (learn Lambdapi in 15 minutes)
Some users
Melanie Taprogge: extension of the LEO-III automated theorem prover for higher-order logic producing Lambdapi proofs [github] [MSc thesis]
Alessio Coltellacci and Stephan Merz: extension of the Alethe proof verifier Carcara for SMT solvers producing Lambdapi proofs [github] [SMT'24]
Alessio Coltellacci and Stephan Merz: encoding of TLA+ set theory in Lambdapi [ABZ'23]
Jean-Paul Bodeveix and Anne Grieu: certification of Event-B proofs generated by Rodin in Lambdapi
Frédéric Blanqui: translation of HOL-Light proofs to Coq [github] [LPAR'24]
Nicolas Margulies: a formalization of cubical type theory in Lambdapi [github]
Thomas Traversié: implementation of set theory with pointed graphs [LFMTP'22]
Luc Chabassier: formalization of some category theory [github] and of extensional type theory [github]
Quentin Garchery: certification of Why3 proof task transformations in Lambdapi [PhD thesis]
Gabriel Hondet: translation of PVS statements to Lambdapi [github] [PhD thesis]
Operating systems
Lambdapi requires a Unix-like system. It might be possible to make it work on Windows too with Cygwin or "bash on Windows".
Installation via Opam
opam install lambdapi
gives you the command lambdapi
.
The Emacs extension is available on MELPA.
The VSCode extension is available on the Marketplace.
To browse the source code documentation, you can do:
opam install odig
odig doc lambdapi
To install Lambdapi libraries, see the opam-lambdapi-repository.
Remark: To install Opam, see here.
To make sure that programs installed via opam are in your path, you should have in your .bashrc
(or any other shell initial file) the following line that can be automatically added when you do opam init
:
test -r ~/.opam/opam-init/init.sh && . ~/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true
To update your path, you can also do:
eval `opam env`
Compilation from the sources
You can get the sources using git
as follows:
git clone https://github.com/Deducteam/lambdapi.git
Dependencies are described in lambdapi.opam
. The command why3 config detect
must be run for Why3 to know the available provers for the why3
tactic.
Using Opam, a suitable OCaml environment can be setup as follows:
cd lambdapi
opam install .
why3 config detect
To compile Lambdapi, just run the command make
in the source directory. This produces the _build/install/default/bin/lambdapi
binary. Use the --help
option for more information. Other make targets are:
make # Build lambdapi
make doc # Build the user documentation (avalaible on readthedocs)
make bnf # Build the BNF grammar
make odoc # Build the developer documentation
make install # Install lambdapi
make install_emacs_mode # Install emacs mode
make install_vim_mode # Install vim mode
You can run lambdapi
without installing it with dune exec -- lambdapi
.
For running tests, one also needs alcotest and alt-ergo.
For building the source code documentation, one needs odoc. The starting file of the source code html documentation is _build/default/_doc/_html/lambdapi/index.html
.
For building the User Manual, see doc/README.md
.
The following commands can be used to clean up the repository:
make clean # Removes files generated by OCaml.
make distclean # Same as clean, but also removes library checking files.
make fullclean # Same as distclean, but also removes downloaded libraries.
Dependencies (14)
Used by
None