The Coq Proof Assistant, version 8.10.0 [article]

The Coq Development Team
2019 Zenodo  
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, or the Bedrock verified low-level programming library), the formalization of mathematics (e.g. the full formalization of the
more » ... mpson theorem or homotopy type theory) and teaching. Coq version 8.10 contains two major new features: support for a native fixed-precision integer type and a new sort SProp of strict propositions. It is also the result of refinements and stabilization of previous features, deprecations or removals of deprecated features, cleanups of the internals of the system and API, and many documentation improvements. This release includes many user-visible changes, including deprecations that are documented in the next subsection, and new features that are documented in the reference manual. Here are the most important user-visible changes: Kernel: A notion of primitive object was added to the calculus. Its first instance is primitive cyclic unsigned integers, axiomatized in module UInt63. See Section Primitive Integers. The Coq.Numbers.Cyclic.Int31 library is deprecated (#6914, by Maxime Dénès, Benjamin Grégoire and Vincent Laporte, with help and reviews from many others). The SProp sort of definitionally proof-irrelevant propositions was introduced. SProp allows to mark proof terms as irrelevant for conversion, and is treated like Prop during extraction. It is enabled using the -allow-sprop command-line flag or the Allow StrictProp flag. See Chapter SProp (proof irrelevant propositions) (#8817, by Gaëtan Gilbert). The unfolding heuristic in termination checking was made more complete, allowing more constants to be unfolded to discover valid recursive calls. Performance regression [...]
doi:10.5281/zenodo.3476303 fatcat:nq2hvuywmre3xmbaqly2xxt6za