The Coq Proof Assistant
Creators
Contributors
Project leader:
Project managers:
Project members:
- Yves Bertot1
- Frédéric Besson1
- Ana Borges2
- Ali Caglayan3
- Tej Chajed4
- Cyril Cohen1
- Pierre Corbineau5
- Pierre Courtieu6
- Andres Erbsen7
- Jim Fehrle
- Julien Forest8
- Emilio Jesús Gallego Arias1
- Gaëtan Gilbert1
- Georges Gonthier1
- Benjamin Grégoire1
- Jason Gross9
- Hugo Herbelin1
- Vincent Laporte1
- Olivier Laurent10
- Assia Mahboubi1
- Kenji Maillard1
- Erik Martin-Dorel11
- Pierre-Marie Pédrot1
- Clément Pit-Claudel12
- Kazuhiko Sakaguchi1
- Vincent Semeria14
- Michael Soegtrop
- Arnaud Spiwack15
- Nicolas Tabareau1
- Enrico Tassi1
- Laurent Théry1
- Anton Trunov16
- Xia Li-yao17
- Théo Zimmermann18
- 1. Inria
- 2. University of Barcelona
- 3. University of Gothenburg
- 4. VMware
- 5. Université Grenoble Alpes
- 6. CNAM
- 7. MIT
- 8. ENSIEE/CNAM
- 9. MIRI
- 10. ENS Lyon
- 11. Université Toulouse III - Paul Sabatier
- 12. EPFL
- 13. Onera
- 14. Finastra
- 15. Tweag
- 16. Zilliqa
- 17. University of Edinburgh
- 18. Télécom Paris
- 19. Formal Land
- 20. KTH
- 21. Radboud University Nijmegen
- 22. Czech Technical University in Prague
- 23. Max Planck Institute for Software Systems
- 24. TU Dortmund University
- 25. Google (United States)
Description
Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs. Typical applications include the certification of properties of programming languages (e.g. the CompCert compiler certification project, the Verified Software Toolchain for verification of C programs, or the Iris framework for concurrent separation logic), the formalization of mathematics (e.g. the full formalization of the Feit-Thompson theorem, or homotopy type theory), and teaching.
Coq version 8.20 adds a new rewrite rule mechanism along with a few new features, a host of improvements to the virtual machine, the notation system, Ltac2 and the standard library.
We highlight some of the most impactful changes here:
-
A lot of work went into reducing the size of the bytecode segment, which in turn means that .vo files might now be considerably smaller.
-
A new version of the docker-keeper compiler to build and maintain Docker images of Coq.
Notable breaking changes:
-
Syntactic global references passed through the
using
clauses ofauto
-like tactics are now handled as plain references rather than interpreted terms. In particular, their typeclass arguments will not be inferred. In general, the previous behaviour can be emulated by replacingauto using foo
withpose proof foo; auto
. -
Argument order for the Ltac2 combinators
List.fold_left2
andList.fold_right2
changed to be the same as in OCaml. -
Import
ing a module containing a mutable Ltac2 definition does not undo its mutations. ReplaceLtac2 mutable foo := some_expr.
withLtac2 mutable foo := some_expr. Ltac2 Set foo := some_expr.
to recover the previous behaviour. -
Some renaming in the standard library. Deprecations are provided for a smooth transition.
See the Changes in 8.20.0 section below for the detailed list of changes, including potentially breaking changes marked with Changed. Coq's reference manual for 8.20, documentation of the 8.20 standard library and developer documentation of the 8.20 ML API are also available.
Théo Zimmermann with help from Ali Caglayan and Jason Gross maintained coqbot used to run Coq's CI and other pull request management tasks.
Jason Gross maintained the bug minimizer and its automatic use through coqbot.
Erik Martin-Dorel maintained the Coq Docker images and the docker-keeper compiler used to build and keep those images up to date (note that the tool is not Coq specific). Cyril Cohen, Vincent Laporte, Pierre Roux and Théo Zimmermann maintained the Nix toolbox used by many Coq projects for continuous integration.
Ali Caglayan, Emilio Jesús Gallego Arias, Rudi Grinberg and Rodolphe Lepigre maintained the Dune build system for OCaml and Coq used to build Coq itself and many Coq projects.
The opam repository for Coq packages has been maintained by Guillaume Claret, Guillaume Melquiond, Karl Palmskog and Enrico Tassi with contributions from many users. A list of packages is available on the Coq website.
Coq 8.20 was made possible thanks to the following reviewers: Frédéric Besson, Lasse Blaauwbroek, Ali Caglayan, Cyril Cohen, Andrej Dudenhefner, Andres Erbsen, Jim Fehrle, Emilio Jesús Gallego Arias, Gaëtan Gilbert, Jason Gross, Hugo Herbelin, Ralf Jung, Jan-Oliver Kaiser, Chantal Keller, Olivier Laurent, Rodolphe Lepigre, Yishuai Li, Ralph Matthes, Guillaume Melquiond, Pierre-Marie Pédrot, Karl Palmskog, Clément Pit-Claudel, Pierre Rousselin, Pierre Roux, Michael Soegtrop, soukouki, Matthieu Sozeau, Nicolas Tabareau, Enrico Tassi, Niels van der Weide, Nickolai Zeldovich and Théo Zimmermann. See the Coq Team face book page for more details on Coq's development team.
The 59 contributors to the 8.20 version are: Timur Aminev, Frédéric Besson, Lasse Blaauwbroek, Björn Brandenburg, Ali Caglayan, Nikolaos Chatzikonstantinou, Sylvain Chiron, chluebi, Cyril Cohen, Anton Danilkin, Louise Dubois de Prisque, Andrej Dudenhefner, Maxime Dénès, Andres Erbsen, Jim Fehrle, Davide Fissore, Andreas Florath, Yannick Forster, Mario Frank, Gaëtan Gilbert, Georges Gonthier, Jason Gross, Stefan Haan, Hugo Herbelin, Lennart Jablonka, Emilio Jesús Gallego Arias, Ralf Jung, Jan-Oliver Kaiser, Evgenii Kosogorov, Rodolphe Lepigre, Yann Leray, David M. Cooke, Erik Martin-Dorel, Guillaume Melquiond, Guillaume Munch-Maccagnoni, Karl Palmskog, Julien Puydt, Pierre-Marie Pédrot, Ramkumar Ramachandra, Pierre Rousselin, Pierre Roux, Kazuhiko Sakaguchi, Bernhard Schommer, Remy Seassau, Matthieu Sozeau, Enrico Tassi, Romain Tetley, Laurent Théry, Alexey Trilis, Oliver Turner, Quentin Vermande, Li-yao Xia and Théo Zimmermann,
The Coq community at large helped improve this new version via the GitHub issue and pull request system, the coq-club@inria.fr mailing list, the Discourse forum and the Coq Zulip chat.
Version 8.20's development spanned 7 months from the release of Coq 8.19.0 (9 months since the branch for 8.19.0). Pierre Roux and Guillaume Melquiond are the release managers of Coq 8.20. This release is the result of 470 merged PRs, closing 113 issues.
Files
coq-8.20.0-reference-manual.pdf
Files
(12.9 MB)
Name | Size | Download all |
---|---|---|
md5:7172a75b9364422026387e73457725ea
|
5.1 MB | Preview Download |
md5:66e57ea55275903bef74d5bf36fbe0f1
|
7.8 MB | Download |
Additional details
Related works
- Is identical to
- Software: https://github.com/coq/coq/tree/V8.20.0 (URL)
Software
- Repository URL
- https://github.com/coq/coq
- Programming language
- OCaml, Coq
- Development Status
- Active