There is a newer version of this record available.

Software Open Access

The Coq Proof Assistant, version 8.8.0

The Coq Development Team

Contact person(s)
Matthieu Sozeau
Yves Bertot; Joachim Breitner; Tej Chajed; Arthur Charguéraud; Jacques-Pascal Deplaix; Maxime Dénès; Jim Fehrle; Julien Forest; Yannick Forster; Gaëtan Gilbert; Emilio Jesús Gallego Arias; Jason Gross; Samuel Gruetter; Thomas Hebb; Hugo Herbelin; Jasper Hugunin; Ralf Jung; Johannes Kloos; Matej Košík; Robbert Krebbers; Vincent Laporte; Peter LeFanu Lumsdaine; Pierre Letouzey; Farzon Lotfi; Cyprien Mangin; Guillaume Melquiond; Raphaël Monat; Carl Patenaude Poulin; Pierre-Marie Pédrot; Clément Pit-Claudel; Matthew Ryan; Matt Quinn; Sigurd Schneider; Bernhard Schommer; Michael Soegtrop; Arnaud Spiwack; Paul Steckler; Enrico Tassi; Anton Trunov; Martin Vassor; Vadim Zaliva; Théo Zimmermann

Coq version 8.8 contains the result of refinements and stabilization of features and deprecations, cleanups of the internals of the system along with a few new features.

Summary of changes

  • Kernel: fix a subject reduction failure due to allowing fixpoints on non-recursive values (#407), by Matthieu Sozeau. Handling of evars in the VM (#935) by Pierre-Marie Pédrot.

  • Notations: many improvements on recursive notations and support for destructuring patterns in the syntax of notations by Hugo Herbelin.

  • Proof language: tacticals for profiling, timing and checking success or failure of tactics by Jason Gross. The focusing bracket { supports single-numbered goal selectors, e.g. 2:{, (#6551) by Théo Zimmermann.

  • Vernacular: cleanup of definition commands (#6653) by Vincent Laporte and more uniform handling of the Local flag (#1049), by Maxime Dénès. Experimental Show Extraction command (#6926) by Pierre Letouzey. Coercion now accepts Prop or Type as a source (#6480) by Arthur Charguéraud. Export modifier for options allowing to export the option to modules that Import and not only Require a module (#6923), by Pierre-Marie Pédrot.

  • Universes: many user-level and API level enhancements: qualified naming and printing, variance annotations for cumulative inductive types, more general constraints and enhancements of the minimization heuristics, interaction with modules by Gaëtan Gilbert, Pierre-Marie Pédrot and Matthieu Sozeau.

  • Library: Decimal Numbers library (#6599) by Pierre Letouzey and various small improvements.

  • Documentation: a large community effort resulted in the migration of the reference manual to the Sphinx documentation tool. The new documentation infrastructure (based on Sphinx) is by Clément Pit-Claudel. The migration was coordinated by Maxime Dénès and Paul Steckler, with some help of Théo Zimmermann during the final integration phase. The 14 people who ported the manual are Calvin Beck, Heiko Becker, Yves Bertot, Maxime Dénès, Richard Ford, Pierre Letouzey, Assia Mahboubi, Clément Pit-Claudel, Laurence Rideau, Matthieu Sozeau, Paul Steckler, Enrico Tassi, Laurent Théry, Nikita Zyuzin.

  • Tools: experimental -mangle-names option to coqtop/coqc for linting proof scripts (#6582), by Jasper Hugunin.

On the implementation side, the dev/doc/ file documents the numerous changes to the implementation and improvements of interfaces. The file provides guidelines on porting a plugin to the new version.

More information can be found in the CHANGES file. Feedback and bug reports are extremely welcome.

Files (5.9 MB)
Name Size
5.9 MB Download
All versions This version
Views 385206
Downloads 1373
Data volume 369.3 MB17.8 MB
Unique views 296182
Unique downloads 1123


Cite as