Published April 4, 2025 | Version 9.0
Software Open

The Rocq Prover

  • 1. Inria Centre de Recherche Sophia Antipolis Méditerranée
  • 2. Inria Centre de Recherche Rennes Bretagne Atlantique
  • 3. ROR icon Universitat de Barcelona
  • 4. National Institute of Advanced Industrial Science and Technology
  • 5. ROR icon University of Wisconsin–Madison
  • 6. ROR icon Inria Lyon Centre
  • 7. ROR icon Conservatoire National des Arts et Métiers
  • 8. ROR icon Massachusetts Institute of Technology
  • 9. ENSIEE/CNAM
  • 10. Inria Centre de Recherche Paris Rocquencourt
  • 11. Inria
  • 12. ROR icon École Normale Supérieure de Lyon
  • 13. ROR icon Inria Rennes - Bretagne Atlantique Research Centre
  • 14. ROR icon Institut de Recherche en Informatique de Toulouse
  • 15. ROR icon 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 rocq binary dispatches commands for compilation, read-eval-print-loop, documentation building, dependency computation, etc. See The Rocq Prover commands. It corresponds to the rocq-runtime opam package. This is a bare-bones package that does not provide any Gallina code.

  • The Coq standard library has been split into two libraries:

    • Corelib library (the rocq-core opam package). This is an extended prelude, which is enough to run Rocq tactics and contains the Ltac2 library and bindings for primitive types (integers, floats, arrays and strings).

    • An Stdlib library (the rocq-stdlib opam package). The Stdlib is now maintained out of the main rocq repository. 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.

Nantes, March 2025
Pierre-Marie Pédrot and Matthieu Sozeau for the Rocq development team

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

Software

Repository URL
https://github.com/rocq-prover/rocq
Programming language
OCaml, Coq
Development Status
Active