The Coq Proof Assistant
Creators
Contributors
Project leader:
Project manager:
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
- Georges Gonthier1
- Benjamin Grégoire1
- Jason Gross9
- Hugo Herbelin1
- Vincent Laporte1
- Olivier Laurent10
- Assia Mahboubi1
- Kenji Maillard1
- Erik Martin-Dorel11
- Guillaume Melquiond1
- Pierre-Marie Pédrot1
- Clément Pit-Claudel12
- Pierre Roux13
- Kazuhiko Sakaguchi1
- Vincent Semeria14
- Michael Soegtrop
- Arnaud Spiwack15
- Nicolas Tabareau1
- Enrico Tassi1
- Laurent Théry1
- Anton Trunov16
- Xia Li-yao17
- Théo Zimmermann18
Related persons:
- 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
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.19 extends the kernel universe polymorphism to polymorphism over sorts (e.g. Prop
, SProp
) along with a few new features, a host of improvements to the notation system, the Ltac2 standard library, and the removal of some standard library files after a long deprecation period.
We highlight some of the most impactful changes here:
-
Sort polymorphism makes it possible to share common constructs over
Type
Prop
andSProp
. -
The notation
term%_scope
to set a scope only temporarily (in addition toterm%scope
for opening a scope applying to all subterms). -
lazy
,simpl
,cbn
andcbv
and the associatedEval
andeval
reductions learned to do head reduction when given flaghead
. -
New Ltac2 APIs, improved Ltac2
exact
and dynamic building of Ltac2 term patterns. -
New performance evaluation facilities:
Instructions
to count CPU instructions used by a command (Linux only) and Profiling system to produce trace files. -
New command
Attributes
to assign attributes such asdeprecated
to a library file.
Notable breaking changes:
-
replace
withby tac
does not automatically attempt to solve the generated equality subgoal using the hypotheses. Useby first [assumption | symmetry;assumption | tac]
if you need the previous behaviour. -
Removed old deprecated files from the standard library.
See the Changes in 8.19.0 section below for the detailed list of changes, including potentially breaking changes marked with Changed. Coq's reference manual for 8.19, documentation of the 8.19 standard library and developer documentation of the 8.19 ML API are also available.
Maxime Dénès and Thierry Martinez with support from Erik Martin-Dorel and Théo Zimmermann moved the CI away from gitlab.com to use Inria supported runner machines through gitlab.inria.fr.
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.
Jaime Arias and Erik Martin-Dorel maintained the Coq Docker images and 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.
Our current maintainers are Yves Bertot, Frédéric Besson, Ana Borges, Ali Caglayan, Tej Chajed, Cyril Cohen, Pierre Corbineau, Pierre Courtieu, Andres Erbsen, Jim Fehrle, Julien Forest, Emilio Jesús Gallego Arias, Gaëtan Gilbert, Georges Gonthier, Benjamin Grégoire, Jason Gross, Hugo Herbelin, Vincent Laporte, Olivier Laurent, Assia Mahboubi, Kenji Maillard, Guillaume Melquiond, Pierre-Marie Pédrot, Clément Pit-Claudel, Pierre Roux, Kazuhiko Sakaguchi, Vincent Semeria, Michael Soegtrop, Arnaud Spiwack, Matthieu Sozeau, Enrico Tassi, Laurent Théry, Anton Trunov, Li-yao Xia and Théo Zimmermann. See the Coq Team face book page for more details.
The 40 contributors to the 8.19 version are: quarkcool, Khalid Abdullah, Tanaka Akira, Isaac van Bakel, Frédéric Besson, Lasse Blaauwbroek, Ana Borges, Ali Caglayan, Nikolaos Chatzikonstantinou, Maxime Dénès, Andrej Dudenhefner, Andres Erbsen, Jim Fehrle, Gaëtan Gilbert, Jason Gross, Stefan Haan, Hugo Herbelin, Emilio Jesús Gallego Arias, Pierre Jouvelot, Ralf Jung, Jan-Oliver Kaiser, Robbert Krebbers, Jean-Christophe Léchenet, Rodolphe Lepigre, Yann Leray, Yishuai Li, Guillaume Melquiond, Guillaume Munch-Maccagnoni, Sotaro Okada, Karl Palmskog, Pierre-Marie Pédrot, Jim Portegies, Pierre Rousselin, Pierre Roux, Michael Soegtrop, David Swasey, Enrico Tassi, Shengyi Wang 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.19's development spanned 4 months from the release of Coq 8.18.0 (6 months since the branch for 8.18.0). Gaëtan Gilbert and Matthieu Sozeau are the release managers of Coq 8.19. This release is the result of 285 merged PRs, closing 70 issues.
Files
coq-8.19.2-reference-manual.pdf
Files
(12.4 MB)
Name | Size | Download all |
---|---|---|
md5:58799f9865ad4f998608fb5b1a9234b1
|
4.8 MB | Preview Download |
md5:5d1187d5e44ed0163f76fb12dabf012e
|
7.7 MB | Download |
Additional details
Related works
- Is identical to
- Software: https://github.com/coq/coq/tree/V8.19.2 (URL)
Software
- Repository URL
- https://github.com/coq/coq
- Development Status
- Active