This commit is contained in:
2025-07-18 23:13:11 +02:00
parent c9485bf576
commit 652812eed0
2354 changed files with 1266414 additions and 1 deletions

688
html/coq.md2.html Normal file
View File

@@ -0,0 +1,688 @@
<h1 id="awesome-coq-awesome">Awesome Coq <a
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
alt="Awesome" /></a></h1>
<p><a
href="https://github.com/coq-community/manifesto"><img src="coq-logo.svg" align="right" width="100" alt="coq-community logo" title="Awesome Coq is a coq-community project"></a></p>
<blockquote>
<p>A curated list of awesome Coq libraries, plugins, tools, and
resources.</p>
</blockquote>
<p>The <a href="https://coq.inria.fr">Coq proof assistant</a> provides a
formal language to write mathematical definitions, executable
algorithms, and theorems, together with an environment for
semi-interactive development of machine-checked proofs.</p>
<p>Contributions welcome! Read the <a
href="https://github.com/coq-community/awesome-coq/blob/master/CONTRIBUTING.md">contribution
guidelines</a> first.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#projects">Projects</a>
<ul>
<li><a href="#frameworks">Frameworks</a></li>
<li><a href="#user-interfaces">User Interfaces</a></li>
<li><a href="#libraries">Libraries</a></li>
<li><a href="#package-and-build-management">Package and Build
Management</a></li>
<li><a href="#plugins">Plugins</a></li>
<li><a href="#puzzles-and-games">Puzzles and Games</a></li>
<li><a href="#tools">Tools</a></li>
<li><a href="#type-theory-and-mathematics">Type Theory and
Mathematics</a></li>
<li><a href="#verified-software">Verified Software</a></li>
</ul></li>
<li><a href="#resources">Resources</a>
<ul>
<li><a href="#community">Community</a></li>
<li><a href="#blogs">Blogs</a></li>
<li><a href="#books">Books</a></li>
<li><a href="#course-material">Course Material</a></li>
<li><a href="#tutorials-and-hints">Tutorials and Hints</a></li>
</ul></li>
</ul>
<hr />
<h2 id="projects">Projects</h2>
<h3 id="frameworks">Frameworks</h3>
<ul>
<li><a href="https://github.com/AU-COBRA/ConCert">ConCert</a> -
Framework for smart contract testing and verification featuring a code
extraction pipeline to several smart contract languages.</li>
<li><a href="https://github.com/CoqEAL/CoqEAL">CoqEAL</a> - Framework to
ease change of data representations in proofs.</li>
<li><a href="https://github.com/adampetcher/fcf">FCF</a> - Framework for
proofs of cryptography.</li>
<li><a href="https://github.com/mit-plv/fiat">Fiat</a> - Mostly
automated synthesis of correct-by-construction programs.</li>
<li><a href="https://github.com/lthms/FreeSpec">FreeSpec</a> - Framework
for modularly verifying programs with effects and effect handlers.</li>
<li><a href="https://github.com/imdea-software/htt/">Hoare Type
Theory</a> - A shallow embedding of sequential separation logic
formulated as a type theory.</li>
<li><a href="https://www.site.uottawa.ca/~afelty/HybridCoq/">Hybrid</a>
- System for reasoning using higher-order abstract syntax
representations of object logics.</li>
<li><a href="https://iris-project.org">Iris</a> - Higher-order
concurrent separation logic framework.</li>
<li><a href="https://github.com/querycert/qcert">Q*cert</a> - Platform
for implementing and verifying query compilers.</li>
<li><a href="https://github.com/SSProve/ssprove">SSProve</a> - Framework
for modular cryptographic proofs based on the Mathematical Components
library.</li>
<li><a href="https://github.com/VeriNum/vcfloat">VCFloat</a> - Framework
for verifying C programs with floating-point computations.</li>
<li><a href="https://github.com/uwplse/verdi">Verdi</a> - Framework for
formally verifying distributed systems implementations.</li>
<li><a href="https://vst.cs.princeton.edu">VST</a> - Toolchain for
verifying C code inside Coq in a higher-order concurrent, impredicative
separation logic that is sound w.r.t. the Clight language of the
CompCert compiler.</li>
</ul>
<h3 id="user-interfaces">User Interfaces</h3>
<ul>
<li><a
href="https://coq.inria.fr/refman/practical-tools/coqide.html">CoqIDE</a>
- Standalone graphical tool for interacting with Coq.</li>
<li><a href="https://github.com/whonore/Coqtail">Coqtail</a> - Interface
for Coq based on the Vim text editor.</li>
<li><a href="https://github.com/ejgallego/coq-lsp">Coq LSP</a> -
Language server and extension for the Visual Studio Code and VSCodium
editors with custom document checking engine.</li>
<li><a href="https://proofgeneral.github.io">Proof General</a> - Generic
interface for proof assistants based on the extensible, customizable
text editor Emacs.</li>
<li><a href="https://github.com/cpitclaudel/company-coq">Company-Coq</a>
- IDE extensions for Proof Generals Coq mode.</li>
<li><a
href="https://github.com/ProofGeneral/opam-switch-mode">opam-switch-mode</a>
- IDE extension for Proof General to locally change or reset the opam
switch from a menu or using a command.</li>
<li><a href="https://github.com/jscoq/jscoq">jsCoq</a> - Port of Coq to
JavaScript, which enables running Coq projects in a browser.</li>
<li><a href="https://github.com/EugeneLoy/coq_jupyter">Jupyter kernel
for Coq</a> - Coq support for the Jupyter Notebook web environment.</li>
<li><a href="https://github.com/coq-community/vscoq">VsCoq</a> -
Language server and extension for the Visual Studio Code and VSCodium
editors.</li>
<li><a href="https://github.com/coq-community/vscoq/tree/vscoq1">VsCoq
Legacy</a> - Backwards-compatible extension for the Visual Studio Code
and VSCodium editors using Coqs legacy XML protocol.</li>
<li><a href="https://github.com/impermeable/waterproof">Waterproof
editor</a> - Educational environment for writing mathematical proofs in
interactive notebooks.</li>
</ul>
<h3 id="libraries">Libraries</h3>
<ul>
<li><a href="https://github.com/coq-community/alea">ALEA</a> - Library
for reasoning on randomized algorithms.</li>
<li><a href="https://github.com/math-comp/algebra-tactics">Algebra
Tactics</a> - Ring and field tactics for Mathematical Components.</li>
<li><a href="https://github.com/coq/bignums">Bignums</a> - Library of
arbitrarily large numbers.</li>
<li><a href="https://github.com/mit-plv/bbv">Bedrock Bit Vectors</a> -
Library for reasoning on fixed precision machine words.</li>
<li><a href="https://github.com/Salamari/CertiGraph">CertiGraph</a> -
Library for reasoning about directed graphs and their embedding in
separation logic.</li>
<li><a href="https://github.com/fblanqui/color">CoLoR</a> - Library on
rewriting theory, lambda-calculus and termination, with sub-libraries on
common data structures extending the Coq standard library.</li>
<li><a href="https://github.com/jwiegley/coq-haskell">coq-haskell</a> -
Library smoothing the transition to Coq for Haskell users.</li>
<li><a href="https://github.com/DmxLarchey/Coq-Kruskal">Coq-Kruskal</a>
- Collection of libraries related to rose trees and Kruskals tree
theorem.</li>
<li><a
href="https://gitlab.inria.fr/coqinterval/interval/">CoqInterval</a> -
Tactics for performing proofs of inequalities on expressions of real
numbers.</li>
<li><a href="https://github.com/tchajed/coq-record-update">Coq record
update</a> - Library which provides a generic way to update Coq record
fields.</li>
<li><a href="https://gitlab.mpi-sws.org/iris/stdpp">Coq-std++</a> -
Extended alternative standard library for Coq.</li>
<li><a href="https://github.com/coq-community/coq-ext-lib">ExtLib</a> -
Collection of theories and plugins that may be useful in other Coq
developments.</li>
<li><a href="https://github.com/imdea-software/fcsl-pcm">FCSL-PCM</a> -
Formalization of partial commutative monoids as used in verification of
pointer-manipulating programs.</li>
<li><a href="https://gitlab.inria.fr/flocq/flocq">Flocq</a> -
Formalization of floating-point numbers and computations.</li>
<li><a
href="https://github.com/uds-psl/coq-library-undecidability">Formalised
Undecidable Problems</a> - Library of undecidable problems and
reductions between them.</li>
<li><a href="https://github.com/vafeiadis/hahn">Hahn</a> - Library for
reasoning on lists and binary relations.</li>
<li><a href="https://github.com/DeepSpec/InteractionTrees">Interaction
Trees</a> - Library for representing recursive and impure programs.</li>
<li><a href="https://github.com/Matafou/LibHyps">LibHyps</a> - Library
of Ltac tactics to manage and manipulate hypotheses in proofs.</li>
<li><a href="https://github.com/thery/mathcomp-extra">MathComp Extra</a>
- Extra material for the Mathematical Components library, including the
AKS primality test and RSA encryption and decryption.</li>
<li><a href="https://github.com/math-comp/mczify">Mczify</a> - Library
enabling Micromega arithmetic solvers to work when using Mathematical
Components number definitions.</li>
<li><a href="https://github.com/plclub/metalib">Metalib</a> - Library
for programming language metatheory using locally nameless variable
binding representations.</li>
<li><a href="http://plv.mpi-sws.org/paco/">Paco</a> - Library for
parameterized coinduction.</li>
<li><a href="https://github.com/coq-community/reglang">Regular Language
Representations</a> - Translations between different definitions of
regular languages, including regular expressions and automata.</li>
<li><a href="https://github.com/damien-pous/relation-algebra">Relation
Algebra</a> - Modular formalization of algebras with heterogeneous
binary relations as models.</li>
<li><a href="https://github.com/Lysxia/coq-simple-io">Simple IO</a> -
Input/output monad with user-definable primitive operations.</li>
<li><a href="https://github.com/charguer/tlc">TLC</a> - Non-constructive
alternative to Coqs standard library.</li>
</ul>
<h3 id="package-and-build-management">Package and Build Management</h3>
<ul>
<li><a
href="https://coq.inria.fr/refman/practical-tools/utilities.html">coq_makefile</a>
- Build tool distributed with Coq and based on generating a
makefile.</li>
<li><a href="https://github.com/coq-community/coq-nix-toolbox">Coq Nix
Toolbox</a> - Nix helper scripts to automate local builds and continuous
integration for Coq.</li>
<li><a href="https://coq.inria.fr/opam/www/">Coq Package Index</a> -
Collection of Coq packages based on opam.</li>
<li><a href="https://github.com/coq/platform">Coq Platform</a> - Curated
collection of packages to support Coq use in industry, education, and
research.</li>
<li><a href="https://github.com/coq-community/templates">coq-community
Templates</a> - Templates for generating configuration files for Coq
projects.</li>
<li><a href="https://people.debian.org/~jpuydt/coq_platform.html">Debian
Coq packages</a> - Coq-related packages available in the testing
distribution of Debian.</li>
<li><a href="https://github.com/coq-community/docker-coq">Docker-Coq</a>
- Docker images for many versions of Coq.</li>
<li><a
href="https://github.com/math-comp/docker-mathcomp">Docker-MathComp</a>
- Docker images for many combinations of versions of Coq and the
Mathematical Components library.</li>
<li><a
href="https://github.com/marketplace/actions/docker-coq-action">Docker-Coq
GitHub Action</a> - GitHub container action that can be used with
Docker-Coq or Docker-MathComp.</li>
<li><a href="https://dune.build">Dune</a> - Composable and opinionated
build system for OCaml and Coq (former jbuilder).</li>
<li><a href="https://nixos.org/nix/">Nix</a> - Package manager for Linux
and other Unix systems, supporting atomic upgrades and rollbacks.</li>
<li><a
href="https://search.nixos.org/packages?channel=unstable&amp;query=coqPackages">Nix
Coq packages</a> - Collection of Coq-related packages for Nix.</li>
<li><a href="https://opam.ocaml.org">opam</a> - Flexible and
Git-friendly package manager for OCaml and Coq with multiple compiler
support.</li>
</ul>
<h3 id="plugins">Plugins</h3>
<ul>
<li><a href="https://github.com/coq-community/aac-tactics">AAC
Tactics</a> - Tactics for rewriting universally quantified equations,
modulo associativity and commutativity of some operator.</li>
<li><a href="https://github.com/damien-pous/coinduction">Coinduction</a>
- Plugin for doing proofs by enhanced coinduction.</li>
<li><a href="https://github.com/LPCIC/coq-elpi">Coq-Elpi</a> - Extension
framework based on λProlog providing an extensive API to implement
commands and tactics.</li>
<li><a href="https://github.com/lukaszcz/coqhammer">CoqHammer</a> -
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.</li>
<li><a href="https://github.com/mattam82/Coq-Equations">Equations</a> -
Function definition package for Coq.</li>
<li><a href="https://gitlab.inria.fr/gappa/coq">Gappa</a> - Tactic for
discharging goals about floating-point arithmetic and round-off
errors.</li>
<li><a href="https://github.com/math-comp/hierarchy-builder">Hierarchy
Builder</a> - Collection of commands for declaring Coq hierarchies based
on packed classes.</li>
<li><a href="https://gitlab.inria.fr/fbesson/itauto">Itauto</a> -
SMT-like tactics for combined propositional reasoning about function
symbols, constructors, and arithmetic.</li>
<li><a
href="https://coq.inria.fr/refman/proof-engine/ltac2.html">Ltac2</a> -
Experimental typed tactic language similar to Coqs classic Ltac
language.</li>
<li><a href="https://github.com/MetaCoq/metacoq">MetaCoq</a> - Project
formalizing Coq in Coq and providing tools for manipulating Coq terms
and developing certified plugins.</li>
<li><a href="https://github.com/Mtac2/Mtac2">Mtac2</a> - Plugin adding
typed tactics for backward reasoning.</li>
<li><a href="https://github.com/coq-community/paramcoq">Paramcoq</a> -
Plugin to generate parametricity translations of Coq terms.</li>
<li><a href="https://github.com/QuickChick/QuickChick">QuickChick</a> -
Plugin for randomized property-based testing.</li>
<li><a href="https://github.com/smtcoq/smtcoq">SMTCoq</a> - Tool that
checks proof witnesses coming from external SAT and SMT solvers.</li>
<li><a href="https://coq-tactician.github.io">Tactician</a> -
Interactive tool which learns from previously written tactic scripts
across all the installed Coq packages and suggests the next tactic to be
executed or tries to automate proof synthesis fully.</li>
<li><a href="https://github.com/unicoq/unicoq">Unicoq</a> - Plugin that
replaces the existing unification algorithm with an enhanced one.</li>
<li><a href="https://github.com/impermeable/coq-waterproof">Waterproof
proof language</a> - Plugin providing a language for writing proof
scripts in a style that resembles non-mechanized mathematical
proof.</li>
</ul>
<h3 id="puzzles-and-games">Puzzles and Games</h3>
<ul>
<li><a href="https://github.com/coq-community/coqoban">Coqoban</a> - Coq
implementation of Sokoban, the Japanese warehouse keepers game.</li>
<li><a href="https://github.com/thery/hanoi">Hanoi</a> - The Tower of
Hanoi puzzle in Coq, including generalizations and theorems about
configurations.</li>
<li><a href="https://github.com/thery/minirubik">Mini-Rubik</a> - Coq
formalization and solver of the 2x2x2 version of the Rubiks Cube
puzzle.</li>
<li><a href="https://github.com/codyroux/name-the-biggest-number">Name
the Biggest Number</a> - Repository for submitting proven contenders for
the title of biggest number in Coq.</li>
<li><a
href="https://github.com/uncomputable/natural-number-game">Natural
Number Game</a> - Coq version of the natural number game developed for
the Lean prover.</li>
<li><a href="https://github.com/coq-community/sudoku">Sudoku</a> -
Formalization and solver of the Sudoku number-placement puzzle in
Coq.</li>
<li><a href="https://github.com/thery/T2048">T2048</a> - Coq version of
the 2048 sliding tile game.</li>
</ul>
<h3 id="tools">Tools</h3>
<ul>
<li><a href="https://github.com/cpitclaudel/alectryon">Alectryon</a> -
Collection of tools for writing technical documents that mix Coq code
and prose.</li>
<li><a
href="https://github.com/uds-psl/autosubst-ocaml">Autosubst-ocaml</a> -
Tool that generates Coq code for handling binders in syntax, such as for
renaming and substitutions.</li>
<li><a href="https://gitlab.inria.fr/charguer/cfml2">CFML</a> - Tool for
proving properties of OCaml programs in separation logic.</li>
<li><a href="https://github.com/xavierleroy/coq2html">coq2html</a> -
Alternative HTML documentation generator for Coq.</li>
<li><a
href="https://coq.inria.fr/refman/using/tools/coqdoc.html">coqdoc</a> -
Standard documentation tool that generates LaTeX or HTML files from Coq
code.</li>
<li><a href="https://github.com/clarus/coq-of-ocaml">CoqOfOCaml</a> -
Tool for generating idiomatic Coq from OCaml code.</li>
<li><a
href="https://github.com/coq-community/coq-dpdgraph">coq-dpdgraph</a> -
Tool for building dependency graphs between Coq objects.</li>
<li><a href="https://github.com/JasonGross/coq-scripts">coq-scripts</a>
- Scripts for dealing with Coq files, including tabulating proof
times.</li>
<li><a href="https://github.com/JasonGross/coq-tools">coq-tools</a> -
Scripts for manipulating Coq developments.
<ul>
<li><a
href="https://github.com/JasonGross/coq-tools/blob/master/find-bug.py"><code>find-bug.py</code></a>
- Automatically minimizes source files producing an error, creating
small test cases for Coq bugs.</li>
<li><a
href="https://github.com/JasonGross/coq-tools/blob/master/absolutize-imports.py"><code>absolutize-imports.py</code></a>
- Processes source files to make loading of dependencies robust against
shadowing of file names.</li>
<li><a
href="https://github.com/JasonGross/coq-tools/blob/master/inline-imports.py"><code>inline-imports.py</code></a>
- Creates stand-alone source files from developments by inlining the
loading of all dependencies.</li>
<li><a
href="https://github.com/JasonGross/coq-tools/blob/master/minimize-requires.py"><code>minimize-requires.py</code></a>
- Removes loading of unused dependencies.</li>
<li><a
href="https://github.com/JasonGross/coq-tools/blob/master/move-requires.py"><code>move-requires.py</code></a>
- Moves all dependency loading statements to the top of source
files.</li>
<li><a
href="https://github.com/JasonGross/coq-tools/blob/master/move-vernaculars.py"><code>move-vernaculars.py</code></a>
- Lifts many vernacular commands and inner lemmas out of proof script
blocks.</li>
<li><a
href="https://github.com/JasonGross/coq-tools/blob/master/proof-using-helper.py"><code>proof-using-helper.py</code></a>
- Modifies source files to include proof annotations for faster parallel
proving.</li>
</ul></li>
<li><a href="https://github.com/uwdb/Cosette">Cosette</a> - Automated
solver for reasoning about SQL query equivalences.</li>
<li><a href="https://github.com/plclub/hs-to-coq">hs-to-coq</a> -
Converter from Haskell code to equivalent Coq code.</li>
<li><a href="https://github.com/plclub/lngen">lngen</a> - Tool for
generating locally nameless Coq definitions and proofs.</li>
<li><a href="http://gallium.inria.fr/~fpottier/menhir/">Menhir</a> -
Parser generator that can output Coq code for verified parsers.</li>
<li><a href="https://github.com/EngineeringSoftware/mcoq">mCoq</a> -
Mutation analysis tool for Coq projects.</li>
<li><a href="https://github.com/ott-lang/ott">Ott</a> - Tool for writing
definitions of programming languages and calculi that can be translated
to Coq.</li>
<li><a href="https://github.com/ejgallego/pycoq">PyCoq</a> - Set of
bindings and libraries for interacting with Coq from inside Python
3.</li>
<li><a
href="https://github.com/EngineeringSoftware/roosterize">Roosterize</a>
- Tool for suggesting lemma names in Coq projects.</li>
<li><a href="https://github.com/rems-project/sail">Sail</a> - Tool for
specifying instruction set architecture (ISA) semantics of processors
and generating Coq definitions.</li>
<li><a href="https://github.com/ejgallego/coq-serapi">SerAPI</a> - Tools
and OCaml library for (de)serialization of Coq code to and from JSON and
S-expressions.</li>
<li><a href="https://github.com/ecranceMERCE/trakt">Trakt</a> - Generic
goal preprocessing tool for proof automation tactics.</li>
</ul>
<h3 id="type-theory-and-mathematics">Type Theory and Mathematics</h3>
<ul>
<li><a href="https://github.com/math-comp/analysis">Analysis</a> -
Library for classical real analysis compatible with Mathematical
Components.</li>
<li><a href="https://github.com/jwiegley/category-theory">Category
Theory in Coq</a> - Axiom-free formalization of category theory.</li>
<li><a
href="https://github.com/coq-community/comp-dec-modal">Completeness and
Decidability of Modal Logic Calculi</a> - Soundness, completeness, and
decidability for the logics K, K*, CTL, and PDL.</li>
<li><a href="https://github.com/thery/coqprime">CoqPrime</a> - Library
for certifying primality using Pocklington and Elliptic Curve
certificates.</li>
<li><a href="https://github.com/coq-community/corn">CoRN</a> - Library
of constructive real analysis and algebra.</li>
<li><a href="https://github.com/coq-community/coqtail-math">Coqtail
Math</a> - Library of mathematical results ranging from arithmetic to
real and complex analysis.</li>
<li><a
href="https://gitlab.inria.fr/coquelicot/coquelicot">Coquelicot</a> -
Formalization of classical real analysis compatible with the standard
library and focusing on usability.</li>
<li><a href="https://github.com/math-comp/finmap">Finmap</a> - Extension
of Mathematical Components with finite maps, sets, and multisets.</li>
<li><a href="https://github.com/coq-community/fourcolor">Four Color
Theorem</a> - Formal proof of the Four Color Theorem, a landmark result
of graph theory.</li>
<li><a href="https://github.com/coq-community/gaia">Gaia</a> -
Implementation of books from Bourbakis Elements of Mathematics,
including set theory and number theory.</li>
<li><a href="https://github.com/GeoCoq/GeoCoq">GeoCoq</a> -
Formalization of geometry based on Tarskis axiom system.</li>
<li><a href="https://github.com/coq-community/graph-theory">Graph
Theory</a> - Formalized graph theory results.</li>
<li><a href="https://github.com/HoTT/Coq-HoTT">Homotopy Type Theory</a>
- Development of homotopy-theoretic ideas.</li>
<li><a href="https://github.com/affeldt-aist/infotheo">Infotheo</a> -
Formalization of information theory and linear error-correcting
codes.</li>
<li><a href="http://math-comp.github.io">Mathematical Components</a> -
Formalization of mathematical theories, focusing in particular on group
theory.</li>
<li><a href="https://github.com/coq-community/math-classes">Math
Classes</a> - Abstract interfaces for mathematical structures based on
type classes.</li>
<li><a href="https://github.com/affeldt-aist/monae">Monae</a> - Monadic
effects and equational reasoning.</li>
<li><a href="https://github.com/math-comp/odd-order">Odd Order
Theorem</a> - Formal proof of the Odd Order Theorem, a landmark result
of finite group theory.</li>
<li><a href="https://github.com/roglo/puiseuxth">Puiseuxth</a> - Proof
of Puiseuxs theorem and computation of roots of polynomials of
Puiseuxs series.</li>
<li><a href="https://github.com/UniMath/UniMath">UniMath</a> - Library
which aims to formalize a substantial body of mathematics using the
univalent point of view.</li>
</ul>
<h3 id="verified-software">Verified Software</h3>
<ul>
<li><a href="http://compcert.inria.fr">CompCert</a> - High-assurance
compiler for almost all of the C language (ISO C99), generating
efficient code for the PowerPC, ARM, RISC-V and x86 processors.</li>
<li><a href="https://github.com/certichain/ceramist">Ceramist</a> -
Verified hash-based approximate membership structures such as Bloom
filters.</li>
<li><a href="https://github.com/CertiCoq/certicoq">CertiCoq</a> -
Verified compiler from Gallina, the internal language of Coq, down to
CompCerts Clight language.</li>
<li><a href="https://github.com/mit-plv/fiat-crypto">Fiat-Crypto</a> -
Cryptographic primitive code generation.</li>
<li><a href="https://github.com/clayrat/fav-ssr">Functional Algorithms
Verified in SSReflect</a> - Purely functional verified implementations
of algorithms for searching, sorting, and other fundamental
problems.</li>
<li><a
href="https://gitlab.inria.fr/agueneau/incremental-cycles">Incremental
Cycles</a> - Verified OCaml implementation of an algorithm for
incremental cycle detection in graphs.</li>
<li><a href="https://github.com/jasmin-lang/jasmin">Jasmin</a> -
Formalized language and verified compiler for high-assurance and
high-speed cryptography.</li>
<li><a href="https://github.com/jscert/jscert">JSCert</a> - Coq
specification of ECMAScript 5 (JavaScript) with verified reference
interpreter.</li>
<li><a
href="https://gitlab.mpi-sws.org/iris/lambda-rust">lambda-rust</a> -
Formal model of a Rust core language and type system, a logical relation
for the type system, and safety proofs for some Rust libraries.</li>
<li><a href="https://gitlab.mpi-sws.org/RT-PROOFS/rt-proofs">Prosa</a> -
Definitions and proofs for real-time system schedulability
analysis.</li>
<li><a href="https://github.com/mit-plv/riscv-coq">RISC-V Specification
in Coq</a> - Definition of the RISC-V processor instruction set
architecture and extensions.</li>
<li><a href="https://github.com/pi8027/stablesort">Stable sort
algorithms in Coq</a> - Generic and modular proofs of correctness,
including stability, of mergesort functions.</li>
<li><a href="https://github.com/math-comp/tarjan">Tarjan and
Kosaraju</a> - Verified implementations of algorithms for topological
sorting and finding strongly connected components in finite graphs.</li>
<li><a href="http://velus.inria.fr">Vélus</a> - Verified compiler for a
Lustre/Scade-like dataflow synchronous language.</li>
<li><a href="https://github.com/uwplse/verdi-raft">Verdi Raft</a> -
Implementation of the Raft distributed consensus protocol, verified in
Coq using the Verdi framework.</li>
<li><a href="https://github.com/WasmCert/WasmCert-Coq/">WasmCert-Coq</a>
- Formalization in Coq of the WebAssembly (aka Wasm) 1.0
specification.</li>
</ul>
<h2 id="resources">Resources</h2>
<h3 id="community">Community</h3>
<ul>
<li><a href="https://coq.inria.fr">Official Coq website</a></li>
<li><a href="https://coq.inria.fr/refman/">Official Coq manual</a></li>
<li><a href="https://coq.inria.fr/stdlib/">Official Coq standard
library</a></li>
<li><a href="https://coq.discourse.group">Official Coq Discourse
forum</a></li>
<li><a href="https://coq.zulipchat.com">Official Coq Zulip chat</a></li>
<li><a href="https://sympa.inria.fr/sympa/arc/coq-club">Official
Coq-Club mailing list</a></li>
<li><a href="https://github.com/coq/coq/wiki">Official Coq wiki</a></li>
<li><a href="https://x.com/CoqLang">Official Coq X/Twitter</a></li>
<li><a href="https://coq.gitlab.io/zulip-archive/">Coq Zulip chat
archive</a></li>
<li><a href="https://www.reddit.com/r/Coq/">Coq subreddit</a></li>
<li><a href="https://stackoverflow.com/questions/tagged/coq">Coq tag on
Stack Overflow</a></li>
<li><a
href="https://cstheory.stackexchange.com/questions/tagged/coq">Coq tag
on Theoretical Computer Science Stack Exchange</a></li>
<li><a
href="https://proofassistants.stackexchange.com/questions/tagged/coq">Coq
tag on Proof Assistants Stack Exchange</a></li>
<li><a href="https://zenodo.org/search?q=keywords%3A%22Coq%22">Coq
keyword on Zenodo</a></li>
<li><a href="https://github.com/coq-community/manifesto">Coq-community
package maintenance project</a></li>
<li><a href="https://github.com/math-comp/math-comp/wiki">Mathematical
Components wiki</a></li>
<li><a href="https://github.com/coq-community/coq-100-theorems">100
famous theorems proved using Coq</a></li>
<li><a href="https://coq.pl-a.net">Planet Coq link aggregator</a></li>
</ul>
<h3 id="blogs">Blogs</h3>
<ul>
<li><a href="https://project.inria.fr/coqexchange/news/">Coq Exchange:
ideas and experiment reports about Coq</a></li>
<li><a href="http://gallium.inria.fr/blog">Gagallium</a></li>
<li><a href="https://gmalecha.github.io">Gregory Malechas blog</a></li>
<li><a href="http://www.joachim-breitner.de/blog/tag/Coq">Joachim
Breitners blog posts on Coq</a></li>
<li><a href="https://blog.poisson.chat">Lysxias blog</a></li>
<li><a href="http://plv.csail.mit.edu/blog/category/coq.html">MIT PLV
blog posts on Coq</a></li>
<li><a href="https://www.seas.upenn.edu/~plclub/blog/">PLClub
Blog</a></li>
<li><a href="http://poleiro.info">Poleiro: a Coq blog by Arthur Azevedo
de Amorim</a></li>
<li><a href="https://www.ralfj.de/blog/categories/coq.html">Ralf Jungs
blog posts on Coq</a></li>
<li><a href="https://soap.coffee/~lthms/tags/coq.html">Thomas Letans
blog posts on Coq</a></li>
</ul>
<h3 id="books">Books</h3>
<ul>
<li><a href="https://www.labri.fr/perso/casteran/CoqArt/">CoqArt</a> -
The first book dedicated to Coq.</li>
<li><a href="https://softwarefoundations.cis.upenn.edu">Software
Foundations</a> - Series of Coq-based textbooks on logic, functional
programming, and foundations of programming languages, aimed at being
accessible to beginners.
<ul>
<li><a
href="https://softwarefoundations.cis.upenn.edu/lf-current/index.html">Volume
1: Logical Foundations</a> - Introduction to functional programming,
basic concepts of logic, and computer-assisted theorem proving.</li>
<li><a
href="https://softwarefoundations.cis.upenn.edu/plf-current/index.html">Volume
2: Programming Language Foundations</a> - Introduction to the theory of
programming languages, including operational semantics, Hoare logic, and
static type systems.</li>
<li><a
href="https://softwarefoundations.cis.upenn.edu/vfa-current/index.html">Volume
3: Verified Functional Algorithms</a> - Demonstration of how a variety
of fundamental data structures can be specified and verified.</li>
<li><a
href="https://softwarefoundations.cis.upenn.edu/qc-current/index.html">Volume
4: QuickChick</a> - Introduction to tools for combining randomized
property-based testing with formal specification and proof.</li>
<li><a
href="https://softwarefoundations.cis.upenn.edu/vc-current/index.html">Volume
5: Verifiable C</a> - An extended tutorial on specifying and verifying C
programs using the Verified Software Toolchain.</li>
<li><a
href="https://softwarefoundations.cis.upenn.edu/slf-current/index.html">Volume
6: Separation Logic Foundations</a> - An introduction to separation
logic and how to build program verification tools on top of it.</li>
</ul></li>
<li><a href="http://adam.chlipala.net/cpdt/">Certified Programming with
Dependent Types</a> - Textbook about practical engineering with Coq
which teaches advanced practical tricks and a very specific style of
proof.</li>
<li><a
href="https://www.cs.princeton.edu/~appel/papers/plcc.pdf">Program
Logics for Certified Compilers</a> - Book that explains how to construct
program logics using separation logic, accompanied by a formal model in
Coq which is applied to the Clight programming language and other
examples.</li>
<li><a href="http://adam.chlipala.net/frap/">Formal Reasoning About
Programs</a> - Book that simultaneously provides a general introduction
to formal logical reasoning about the correctness of programs and to
using Coq for this purpose.</li>
<li><a href="https://ilyasergey.net/pnp/">Programs and Proofs</a> - Book
that gives a brief and practically-oriented introduction to interactive
proofs in Coq which emphasizes the computational nature of inductive
reasoning about decidable propositions via a small set of primitives
from the SSReflect proof language.</li>
<li><a
href="https://www.sciencedirect.com/book/9781785481123/computer-arithmetic-and-formal-proofs">Computer
Arithmetic and Formal Proofs</a> - Book that describes how to formally
specify and verify floating-point algorithms in Coq using the Flocq
library.</li>
<li><a href="https://math-comp.github.io/mcb/">The Mathematical
Components book</a> - Book oriented towards mathematically inclined
users, focusing on the Mathematical Components library and the SSReflect
proof language.</li>
<li><a href="https://github.com/uds-psl/MPCTT">Modeling and Proving in
Computational Type Theory</a> - Book covering topics in computational
logic using Coq, including foundations, canonical case studies, and
practical programming.</li>
<li><a href="https://github.com/coq-community/hydra-battles">Hydras
&amp; Co.</a> - Continuously in-progress book and library on Kirby and
Paris hydra battles and other entertaining formalized mathematics in
Coq, including a proof of the Gödel-Rosser first incompleteness
theorem.</li>
</ul>
<h3 id="course-material">Course Material</h3>
<ul>
<li><a
href="https://staff.aist.go.jp/reynald.affeldt/documents/karate-coq.pdf">An
Introduction to MathComp-Analysis</a> - Lecture notes on getting started
with the Mathematical Components library and using it for classical
reasoning and real analysis.</li>
<li><a href="https://chargueraud.org/teach/verif/">Foundations of
Separation Logic</a> - Introduction to using separation logic to reason
about sequential imperative programs in Coq.</li>
<li><a href="https://github.com/thery/FlocqLecture">Floating-Point
Numbers and Formal Proof</a> - Introductory course on Coq real numbers
and floating-point numbers from the Flocq library.</li>
<li><a href="https://gitlab.com/umb-svl/turing">Introduction to the
Theory of Computation</a> - Formalization to support an undergraduate
course on the theory of computation, including languages and Turing
machines.</li>
<li><a href="https://github.com/clarksmr/sf-lectures">Lectures on
Software Foundations</a> - Material on the Software Foundations series
of textbooks, including a series of YouTube videos.</li>
<li><a href="https://github.com/gares/math-comp-school-2022">MathComp
School</a> - Coq sources for lessons and exercises that introduce the
SSReflect proof language and the Mathematical Components library.</li>
<li><a href="https://github.com/xavierleroy/cdf-mech-sem">Mechanized
Semantics</a> - Companion Coq sources for a course on programming
language semantics at Collège de France.</li>
<li><a href="https://github.com/xavierleroy/cdf-program-logics">Program
Logics</a> - Companion Coq sources for a course on program logics at
Collège de France.</li>
<li><a
href="https://gitlab.science.ru.nl/program-verification/course-2023-2024">Program
verification with types and logic</a> - Lectures and exercise material
for a course in programming language semantics, type systems and program
logics, using Coq, at Radboud University Nijmegen.</li>
<li><a
href="https://team.inria.fr/stamp/proofs-and-reliable-programming-using-coq-2022/">Proofs
and Reliable Programming using Coq</a> - Introduction to developing and
verifying programs with Coq.</li>
</ul>
<h3 id="tutorials-and-hints">Tutorials and Hints</h3>
<ul>
<li><a href="https://github.com/coq-community/coq-art">CoqArt Exercises
and Tutorials</a> - Coq code and exercises from the CoqArt book,
including additional tutorials.</li>
<li><a href="http://cel.archives-ouvertes.fr/inria-00001173">Coq in a
Hurry</a> - Introduction to how Coq can be used to define logical
concepts and functions and reason about them.</li>
<li><a href="https://inria.hal.science/hal-04452421">Coq requirements in
Common Criteria evaluations</a> - Guide on how to write readable and
reviewable Coq code in high assurance applications.</li>
<li><a href="https://charlesaverill.github.io/ctpe/">Coq Tactics in
Plain English</a> - Guide to Coq tactics with explanations and
examples.</li>
<li><a href="https://learnxinyminutes.com/docs/coq/">Learn X in Y
minutes where X=Coq</a> - Whirlwind tour of Coq as a language.</li>
<li><a href="https://github.com/coq-community/lemma-overloading">Lemma
Overloading</a> - Demonstration of design patterns for programming and
proving with canonical structures.</li>
<li><a href="https://github.com/math-comp/tutorial_material">MathComp
Tutorial Materials</a> - Source code for Mathematical Components
tutorials.</li>
<li><a href="https://mdnahas.github.io/doc/nahas_tutorial.html">Mike
Nahass Coq Tutorial</a> - Basics of using Coq to write formal
proofs.</li>
<li><a href="https://github.com/coq-community/coq-tricks">Tricks in
Coq</a> - Tips, tricks, and features in Coq that are hard to
discover.</li>
</ul>
<p><a href="https://github.com/coq-community/awesome-coq">coq.md
Github</a></p>