The Rocq Prover
Contributors
Project leader:
Project manager:
Project members:
-
Bertot, Yves1
-
Besson, Frédéric2
- Borges, Ana3
-
Caglayan, Ali4
-
Chajed, Tej5
-
Cohen, Cyril6
-
Corbineau, Pierre
- Courtieu, Pierre7
- Erbsen, Andres8
- Jim, Fehrle
- Forest, Julien9
-
Gallego Arias, Emilio Jesús10
- Gilbert, Gaëtan11
- Gonthier, Georges11
- Grégoire, Benjamin11
- Gross, Jason
- Herbelin, Hugo11
-
Laporte, Vincent
- Laurent, Olivier12
-
Mahboubi, Assia13
-
Maillard, Kenji11
-
Martin-Dorel, Érik14, 15
-
Melquiond, Guillaume
-
Pit-Claudel, Clément16
-
Roux, Pierre17
- Sakaguchi, Katsuhiko11
- Soegtrop, Michael
-
Tabareau, Nicolas13
-
Tassi, Enrico11
-
Théry, Laurent11
-
Zimmermann, Théo18
-
Palmskog, Karl19
- 1. Inria Centre de Recherche Sophia Antipolis Méditerranée
- 2. Inria Centre de Recherche Rennes Bretagne Atlantique
-
3.
Universitat de Barcelona
- 4. National Institute of Advanced Industrial Science and Technology
-
5.
University of Wisconsin–Madison
-
6.
Inria Lyon Centre
-
7.
Conservatoire National des Arts et Métiers
-
8.
Massachusetts Institute of Technology
- 9. ENSIEE/CNAM
- 10. Inria Centre de Recherche Paris Rocquencourt
- 11. Inria
-
12.
École Normale Supérieure de Lyon
-
13.
Inria Rennes - Bretagne Atlantique Research Centre
-
14.
Institut de Recherche en Informatique de Toulouse
-
15.
Université Toulouse III - Paul Sabatier
- 16. École polytechnique fédérale de Lausanne, EPFL
- 17. ONERA Midi-Pyrénées Toulouse Center
- 18. Télécom Paris Département Informatique et Réseaux
- 19. KTH Royal Institute of Technology
Description
Summary of changes
The Rocq Prover version 9.0 is the first Rocq Prover release after the renaming from The Coq Proof Assistant. The Rocq Prover 9.0 command line interface is backwards compatible with Coq 8.20, providing compatibility shims so that developments depending on Coq can be easily ported, see Porting to The Rocq Prover for details. The 9.0 version is based on a new single binary rocq that dispatches commands to previously separate binaries, a split and renaming of the standard library to Stdlib and improvements to the handling of template-polymorphism, bringing it closer to a complete subsumption by sort polymorphism.
We highlight some of the most impactful changes here:
-
"The Rocq Prover" is the new official name of the project. We leave to users the choice of renaming their projects to reflect this change, see Renaming Advice. The Rocq Prover comes with a new visual identity and website, see The Rocq Prover Website.
-
A single
rocqbinary dispatches commands for compilation, read-eval-print-loop, documentation building, dependency computation, etc. See The Rocq Prover commands. It corresponds to therocq-runtimeopam package. This is a bare-bones package that does not provide any Gallina code. -
The
Coqstandard library has been split into two libraries:-
A
Coreliblibrary (therocq-coreopam package). This is an extended prelude, which is enough to run Rocq tactics and contains theLtac2library and bindings for primitive types (integers, floats, arrays and strings). -
An
Stdliblibrary (therocq-stdlibopam package). TheStdlibis now maintained out of the mainrocqrepository. We welcome maintainers and contributors to the new repository. A specific call for contributions will be sent soon.
-
Notable breaking changes:
-
The legacy loading mode for plugins has been removed.
See the Changes in 9.0.0 section below for the detailed list of changes, including potentially breaking changes marked with Changed. Rocq's reference manual for 9.0, documentation of the 9.0 core and standard libraries, reference manual of the 9.0 standard library and developer documentation of the 9.0 ML API are also available.
Théo Zimmermann, with help from Jason Gross and Gaëtan Gilbert, 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.
Ali Caglayan, Emilio Jesús Gallego Arias, Rudi Grinberg and Rodolphe Lepigre maintained the Dune build system for OCaml and Coq/Rocq used to build the Rocq Prover itself and many Rocq projects.
The opam repository for Rocq packages has been maintained by Guillaume Claret, Guillaume Melquiond, Karl Palmskog, Matthieu Sozeau and Enrico Tassi with contributions from many users. The up-to-date list of packages is available on the Rocq website.
Erik Martin-Dorel and Jaime Arias maintained the Rocq Docker images. Erik Martin-Dorel maintained the docker-keeper compiler used to build and keep those images up to date (note that the tool is not Rocq specific). Erik Martin-Dorel and Théo Zimmermann maintained the docker-coq-action container action (which is applicable to any opam project hosted on GitHub).
Cyril Cohen, Vincent Laporte, Pierre Roux and Théo Zimmermann maintained the Nix toolbox. The docker-coq-action and the Nix toolbox are used by many Rocq projects for continuous integration.
Rocq 9.0 was made possible thanks to the following 27 reviewers: Yves Bertot, Ali Caglayan, Tej Chajed, Andres Erbsen, Jim Fehrle, Emilio Jesús Gallego Arias, Gaëtan Gilbert, Jason Gross, Samuel Gruetter, Hugo Herbelin, Thomas Lamiaux, Olivier Laurent, Rodolphe Lepigre, Erik Martin-Dorel, Guillaume Melquiond, Guillaume Munch-Maccagnoni, Karl Palmskog, Pierre-Marie Pédrot, Pierre Rousselin, Pierre Roux, Marcello Seri, Michael Soegtrop, Matthieu Sozeau, Enrico Tassi, Romain Tetley, Oliver Turner and Théo Zimmermann.
See the Rocq Team page for more details on Rocq's development teams.
The 48 contributors to the 9.0 version are: Jean Abou Samra, Tanaka Akira, David Allsopp, Frédéric Besson, Mathis Bouverot, Sylvain Chiron, Cyril Cohen, Lucas Donati, Andrej Dudenhefner, Arya Elfren, Andres Erbsen, Siegmentation Fault, Jim Fehrle, Gaëtan Gilbert, Tomaz Gomes Mascarenhas, Jason Gross, Hugo Herbelin, Florent Hivert, Daniil Iaitskov, Emilio Jesús Gallego Arias, Jan-Oliver Kaiser, Rodolphe Lepigre, Yann Leray, Felix Loyau-Kahn, Erik Martin-Dorel, Guillaume Melquiond, Guillaume Munch-Maccagnoni, Aleksandar Nanevski, Charles Norton, Karl Palmskog, Pierre-Marie Pédrot, Pierre Rousselin, Pierre Roux, Kazuhiko Sakaguchi, Gabriel Scherer, Marcello Seri, Benny Smit, Michael Soegtrop, Matthieu Sozeau, Nicolas Tabareau, Enrico Tassi, Oliver Turner, Quentin Vermande, Daneel Yaitskov, Remzi Yang, Tan Yee Jian and Théo Zimmermann.
The Coq/Rocq 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 9.0's development spanned 7 months from the release of Coq 8.20.0. Pierre-Marie Pédrot and Matthieu Sozeau are the release managers of Rocq 9.0. This release is the result of 491 merged PRs, closing 68 issues.
Files
rocq-9.0.0-reference-manual.pdf
Files
(11.6 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:693d12aa821bdd1f608335bd000e4675
|
5.3 MB | Preview Download |
|
md5:8d522602d23e7a665631826dab9aa92b
|
6.3 MB | Download |
Additional details
Related works
- Is identical to
- Software: https://github.com/rocq-prover/rocq/releases/tag/V9.0.0 (URL)
Software
- Repository URL
- https://github.com/rocq-prover/rocq
- Programming language
- OCaml, Coq
- Development Status
- Active