Coq
Formal language and environment for programming and specification which facilitates interactive development of machine-checked proofs.
Contents
Projects
Frameworks
Framework for smart contract testing and verification featuring a code extraction pipeline to several smart contract languages.
Framework for modularly verifying programs with effects and effect handlers.
A shallow embedding of sequential separation logic formulated as a type theory.
User Interfaces
Language server and extension for the Visual Studio Code and VSCodium editors with custom document checking engine.
IDE extension for Proof General to locally change or reset the opam switch from a menu or using a command.
Port of Coq to JavaScript, which enables running Coq projects in a browser.
Backwards-compatible extension for the Visual Studio Code and VSCodium editors using Coq's legacy XML protocol.
Libraries
Library for reasoning about directed graphs and their embedding in separation logic.
Library on rewriting theory, lambda-calculus and termination, with sub-libraries on common data structures extending the Coq standard library.
Collection of libraries related to rose trees and Kruskal's tree theorem.
Formalization of partial commutative monoids as used in verification of pointer-manipulating programs.
Library of undecidable problems and reductions between them.
Extra material for the Mathematical Components library, including the AKS primality test and RSA encryption and decryption.
Library enabling Micromega arithmetic solvers to work when using Mathematical Components number definitions.
Library for programming language metatheory using locally nameless variable binding representations.
Translations between different definitions of regular languages, including regular expressions and automata.
Modular formalization of algebras with heterogeneous binary relations as models.
Package and Build Management
Nix helper scripts to automate local builds and continuous integration for Coq.
Curated collection of packages to support Coq use in industry, education, and research.
Plugins
Tactics for rewriting universally quantified equations, modulo associativity and commutativity of some operator.
Extension framework based on λProlog providing an extensive API to implement commands and tactics.
General-purpose automated reasoning hammer tool that combines learning from previous proofs with the translation of problems to automated provers and the reconstruction of found proofs.
Collection of commands for declaring Coq hierarchies based on packed classes.
SMT-like tactics for combined propositional reasoning about function symbols, constructors, and arithmetic.
Project formalizing Coq in Coq and providing tools for manipulating Coq terms and developing certified plugins.
Tool that checks proof witnesses coming from external SAT and SMT solvers.
Puzzles and Games
The Tower of Hanoi puzzle in Coq, including generalizations and theorems about configurations.
Coq formalization and solver of the 2x2x2 version of the Rubik's Cube puzzle.
Repository for submitting proven contenders for the title of biggest number in Coq.
Tools
Collection of tools for writing technical documents that mix Coq code and prose.
Tool that generates Coq code for handling binders in syntax, such as for renaming and substitutions.
Modifies source files to include proof annotations for faster parallel proving.
Tool for writing definitions of programming languages and calculi that can be translated to Coq.
Set of bindings and libraries for interacting with Coq from inside Python 3.
Fork of coq2html that adds indexes, clickable notations, Markdown and LaTeX formatting in comments, and more.
Tool for specifying instruction set architecture (ISA) semantics of processors and generating Coq definitions.
Type Theory and Mathematics
Library for classical real analysis compatible with Mathematical Components.
Soundness, completeness, and decidability for the logics K, K*, CTL, and PDL.
Library for certifying primality using Pocklington and Elliptic Curve certificates.
Library of mathematical results ranging from arithmetic to real and complex analysis.
Formal proof of the Four Color Theorem, a landmark result of graph theory.
Implementation of books from Bourbaki's Elements of Mathematics, including set theory and number theory.
Abstract interfaces for mathematical structures based on type classes.
Formal proof of the Odd Order Theorem, a landmark result of finite group theory.
Proof of Puiseux's theorem and computation of roots of polynomials of Puiseux's series.
Verified Software
Verified hash-based approximate membership structures such as Bloom filters.
Verified compiler from Gallina, the internal language of Coq, down to CompCert's Clight language.
Purely functional verified implementations of algorithms for searching, sorting, and other fundamental problems.
Formalized language and verified compiler for high-assurance and high-speed cryptography.
Coq specification of ECMAScript 5 (JavaScript) with verified reference interpreter.
Definition of the RISC-V processor instruction set architecture and extensions.
Generic and modular proofs of correctness, including stability, of mergesort functions.
Verified implementations of algorithms for topological sorting and finding strongly connected components in finite graphs.