{"slug": "coq-community--awesome-coq", "title": "Coq", "description": "A curated list of awesome Coq libraries, plugins, tools, verification projects, and resources [maintainer=@palmskog]", "github_url": "https://github.com/rocq-community/awesome-coq", "stars": "364", "tag": "Programming Languages", "entry_count": 204, "subcategory_count": 15, "subcategories": [{"name": "General", "parent": "", "entries": [{"name": "Projects", "url": "#projects", "description": ""}, {"name": "Resources", "url": "#resources", "description": ""}]}, {"name": "Frameworks", "parent": "Projects", "entries": [{"name": "ConCert", "url": "https://github.com/AU-COBRA/ConCert", "description": "Framework for smart contract testing and verification featuring a code extraction pipeline to several smart contract languages.", "stars": "124"}, {"name": "CoqEAL", "url": "https://github.com/CoqEAL/CoqEAL", "description": "Framework to ease change of data representations in proofs.", "stars": "73"}, {"name": "FCF", "url": "https://github.com/adampetcher/fcf", "description": "Framework for proofs of cryptography.", "stars": "53"}, {"name": "Fiat", "url": "https://github.com/mit-plv/fiat", "description": "Mostly automated synthesis of correct-by-construction programs.", "stars": "154"}, {"name": "FreeSpec", "url": "https://github.com/lthms/FreeSpec", "description": "Framework for modularly verifying programs with effects and effect handlers.", "stars": "53"}, {"name": "Hoare Type Theory", "url": "https://github.com/imdea-software/htt/", "description": "A shallow embedding of sequential separation logic formulated as a type theory.", "stars": "83"}, {"name": "Hybrid", "url": "https://www.site.uottawa.ca/~afelty/HybridCoq/", "description": "System for reasoning using higher-order abstract syntax representations of object logics."}, {"name": "Iris", "url": "https://iris-project.org", "description": "Higher-order concurrent separation logic framework."}, {"name": "Q\\*cert", "url": "https://github.com/querycert/qcert", "description": "Platform for implementing and verifying query compilers.", "stars": "58"}, {"name": "SSProve", "url": "https://github.com/SSProve/ssprove", "description": "Framework for modular cryptographic proofs based on the Mathematical Components library.", "stars": "70"}, {"name": "VCFloat", "url": "https://github.com/VeriNum/vcfloat", "description": "Framework for verifying C programs with floating-point computations.", "stars": "32"}, {"name": "Verdi", "url": "https://github.com/uwplse/verdi", "description": "Framework for formally verifying distributed systems implementations.", "stars": "610"}, {"name": "VST", "url": "https://vst.cs.princeton.edu", "description": "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."}]}, {"name": "User Interfaces", "parent": "Projects", "entries": [{"name": "CoqIDE", "url": "https://coq.inria.fr/refman/practical-tools/coqide.html", "description": "Standalone graphical tool for interacting with Coq."}, {"name": "Coqtail", "url": "https://github.com/whonore/Coqtail", "description": "Interface for Coq based on the Vim text editor.", "stars": "307"}, {"name": "Coq LSP", "url": "https://github.com/ejgallego/coq-lsp", "description": "Language server and extension for the Visual Studio Code and VSCodium editors with custom document checking engine.", "stars": "191"}, {"name": "Proof General", "url": "https://proofgeneral.github.io", "description": "Generic interface for proof assistants based on the extensible, customizable text editor Emacs."}, {"name": "Company-Coq", "url": "https://github.com/cpitclaudel/company-coq", "description": "IDE extensions for Proof General's Coq mode.", "stars": "355"}, {"name": "opam-switch-mode", "url": "https://github.com/ProofGeneral/opam-switch-mode", "description": "IDE extension for Proof General to locally change or reset the opam switch from a menu or using a command.", "stars": "7"}, {"name": "jsCoq", "url": "https://github.com/jscoq/jscoq", "description": "Port of Coq to JavaScript, which enables running Coq projects in a browser.", "stars": "535"}, {"name": "Jupyter kernel for Coq", "url": "https://github.com/EugeneLoy/coq_jupyter", "description": "Coq support for the Jupyter Notebook web environment.", "stars": "95"}, {"name": "VsCoq", "url": "https://github.com/coq-community/vscoq", "description": "Language server and extension for the Visual Studio Code and VSCodium editors.", "stars": "417"}, {"name": "VsCoq Legacy", "url": "https://github.com/coq-community/vscoq/tree/vscoq1", "description": "Backwards-compatible extension for the Visual Studio Code and VSCodium editors using Coq's legacy XML protocol.", "stars": "417"}, {"name": "Waterproof editor", "url": "https://github.com/impermeable/waterproof", "description": "Educational environment for writing mathematical proofs in interactive notebooks.", "stars": "43"}, {"name": "Tree Sitter Rocq", "url": "https://github.com/lamg/tree-sitter-rocq", "description": "Partial Rocq tree-sitter grammar useful for syntax highlighting in text editors like [Helix (\u2b5041k)](https://github.com/helix-editor/helix), but not recommended for full parsing of Rocq code.", "stars": "1"}]}, {"name": "Libraries", "parent": "Projects", "entries": [{"name": "ALEA", "url": "https://github.com/coq-community/alea", "description": "Library for reasoning on randomized algorithms.", "stars": "25"}, {"name": "Algebra Tactics", "url": "https://github.com/math-comp/algebra-tactics", "description": "Ring and field tactics for Mathematical Components.", "stars": "37"}, {"name": "Bignums", "url": "https://github.com/coq/bignums", "description": "Library of arbitrarily large numbers.", "stars": "25"}, {"name": "Bedrock Bit Vectors", "url": "https://github.com/mit-plv/bbv", "description": "Library for reasoning on fixed precision machine words.", "stars": "28"}, {"name": "CertiGraph", "url": "https://github.com/Salamari/CertiGraph", "description": "Library for reasoning about directed graphs and their embedding in separation logic.", "stars": "18"}, {"name": "CoLoR", "url": "https://github.com/fblanqui/color", "description": "Library on rewriting theory, lambda-calculus and termination, with sub-libraries on common data structures extending the Coq standard library.", "stars": "37"}, {"name": "coq-haskell", "url": "https://github.com/jwiegley/coq-haskell", "description": "Library smoothing the transition to Coq for Haskell users.", "stars": "170"}, {"name": "Coq-Kruskal", "url": "https://github.com/DmxLarchey/Coq-Kruskal", "description": "Collection of libraries related to rose trees and Kruskal's tree theorem.", "stars": "0"}, {"name": "CoqInterval", "url": "https://gitlab.inria.fr/coqinterval/interval/", "description": "Tactics for performing proofs of inequalities on expressions of real numbers."}, {"name": "Coq record update", "url": "https://github.com/tchajed/coq-record-update", "description": "Library which provides a generic way to update Coq record fields.", "stars": "48"}, {"name": "Coq-std++", "url": "https://gitlab.mpi-sws.org/iris/stdpp", "description": "Extended alternative standard library for Coq."}, {"name": "ExtLib", "url": "https://github.com/coq-community/coq-ext-lib", "description": "Collection of theories and plugins that may be useful in other Coq developments.", "stars": "136"}, {"name": "FCSL-PCM", "url": "https://github.com/imdea-software/fcsl-pcm", "description": "Formalization of partial commutative monoids as used in verification of pointer-manipulating programs.", "stars": "32"}, {"name": "Flocq", "url": "https://gitlab.inria.fr/flocq/flocq", "description": "Formalization of floating-point numbers and computations."}, {"name": "Formalised Undecidable Problems", "url": "https://github.com/uds-psl/coq-library-undecidability", "description": "Library of undecidable problems and reductions between them.", "stars": "125"}, {"name": "Hahn", "url": "https://github.com/vafeiadis/hahn", "description": "Library for reasoning on lists and binary relations.", "stars": "29"}, {"name": "Interaction Trees", "url": "https://github.com/DeepSpec/InteractionTrees", "description": "Library for representing recursive and impure programs.", "stars": "236"}, {"name": "LibHyps", "url": "https://github.com/Matafou/LibHyps", "description": "Library of Ltac tactics to manage and manipulate hypotheses in proofs.", "stars": "21"}, {"name": "MathComp Extra", "url": "https://github.com/thery/mathcomp-extra", "description": "Extra material for the Mathematical Components library, including the AKS primality test and RSA encryption and decryption.", "stars": "5"}, {"name": "Mczify", "url": "https://github.com/math-comp/mczify", "description": "Library enabling Micromega arithmetic solvers to work when using Mathematical Components number definitions.", "stars": "28"}, {"name": "Metalib", "url": "https://github.com/plclub/metalib", "description": "Library for programming language metatheory using locally nameless variable binding representations.", "stars": "76"}, {"name": "Paco", "url": "http://plv.mpi-sws.org/paco/", "description": "Library for parameterized coinduction."}, {"name": "Regular Language Representations", "url": "https://github.com/coq-community/reglang", "description": "Translations between different definitions of regular languages, including regular expressions and automata.", "stars": "47"}, {"name": "Relation Algebra", "url": "https://github.com/damien-pous/relation-algebra", "description": "Modular formalization of algebras with heterogeneous binary relations as models.", "stars": "48"}, {"name": "Simple IO", "url": "https://github.com/Lysxia/coq-simple-io", "description": "Input/output monad with user-definable primitive operations.", "stars": "32"}, {"name": "TLC", "url": "https://github.com/charguer/tlc", "description": "Non-constructive alternative to Coq's standard library.", "stars": "39"}]}, {"name": "Package and Build Management", "parent": "Projects", "entries": [{"name": "coq\\_makefile", "url": "https://coq.inria.fr/refman/practical-tools/utilities.html", "description": "Build tool distributed with Coq and based on generating a makefile."}, {"name": "Coq Nix Toolbox", "url": "https://github.com/coq-community/coq-nix-toolbox", "description": "Nix helper scripts to automate local builds and continuous integration for Coq.", "stars": "48"}, {"name": "Coq Package Index", "url": "https://coq.inria.fr/opam/www/", "description": "Collection of Coq packages based on opam."}, {"name": "Coq Platform", "url": "https://github.com/coq/platform", "description": "Curated collection of packages to support Coq use in industry, education, and research.", "stars": "215"}, {"name": "coq-community Templates", "url": "https://github.com/coq-community/templates", "description": "Templates for generating configuration files for Coq projects.", "stars": "17"}, {"name": "Debian Coq packages", "url": "https://people.debian.org/~jpuydt/coq_platform.html", "description": "Coq-related packages available in the testing distribution of Debian."}, {"name": "Docker-Coq", "url": "https://github.com/coq-community/docker-coq", "description": "Docker images for many versions of Coq.", "stars": "39"}, {"name": "Docker-MathComp", "url": "https://github.com/math-comp/docker-mathcomp", "description": "Docker images for many combinations of versions of Coq and the Mathematical Components library.", "stars": "6"}, {"name": "Docker-Coq GitHub Action", "url": "https://github.com/marketplace/actions/docker-coq-action", "description": "GitHub container action that can be used with Docker-Coq or Docker-MathComp."}, {"name": "Dune", "url": "https://dune.build", "description": "Composable and opinionated build system for OCaml and Coq (former jbuilder)."}, {"name": "Nix", "url": "https://nixos.org/nix/", "description": "Package manager for Linux and other Unix systems, supporting atomic upgrades and rollbacks."}, {"name": "Nix Coq packages", "url": "https://search.nixos.org/packages?channel=unstable\\&query=coqPackages", "description": "Collection of Coq-related packages for Nix."}, {"name": "opam", "url": "https://opam.ocaml.org", "description": "Flexible and Git-friendly package manager for OCaml and Coq with multiple compiler support."}]}, {"name": "Plugins", "parent": "Projects", "entries": [{"name": "AAC Tactics", "url": "https://github.com/coq-community/aac-tactics", "description": "Tactics for rewriting universally quantified equations, modulo associativity and commutativity of some operator.", "stars": "36"}, {"name": "Coinduction", "url": "https://github.com/damien-pous/coinduction", "description": "Plugin for doing proofs by enhanced coinduction.", "stars": "21"}, {"name": "Coq-Elpi", "url": "https://github.com/LPCIC/coq-elpi", "description": "Extension framework based on \u03bbProlog providing an extensive API to implement commands and tactics.", "stars": "177"}, {"name": "CoqHammer", "url": "https://github.com/lukaszcz/coqhammer", "description": "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.", "stars": "231"}, {"name": "Equations", "url": "https://github.com/mattam82/Coq-Equations", "description": "Function definition package for Coq.", "stars": "234"}, {"name": "Gappa", "url": "https://gitlab.inria.fr/gappa/coq", "description": "Tactic for discharging goals about floating-point arithmetic and round-off errors."}, {"name": "Hierarchy Builder", "url": "https://github.com/math-comp/hierarchy-builder", "description": "Collection of commands for declaring Coq hierarchies based on packed classes.", "stars": "103"}, {"name": "Itauto", "url": "https://gitlab.inria.fr/fbesson/itauto", "description": "SMT-like tactics for combined propositional reasoning about function symbols, constructors, and arithmetic."}, {"name": "Ltac2", "url": "https://coq.inria.fr/refman/proof-engine/ltac2.html", "description": "Experimental typed tactic language similar to Coq's classic Ltac language."}, {"name": "MetaCoq", "url": "https://github.com/MetaCoq/metacoq", "description": "Project formalizing Coq in Coq and providing tools for manipulating Coq terms and developing certified plugins.", "stars": "483"}, {"name": "Mtac2", "url": "https://github.com/Mtac2/Mtac2", "description": "Plugin adding typed tactics for backward reasoning.", "stars": "56"}, {"name": "Paramcoq", "url": "https://github.com/coq-community/paramcoq", "description": "Plugin to generate parametricity translations of Coq terms.", "stars": "44"}, {"name": "QuickChick", "url": "https://github.com/QuickChick/QuickChick", "description": "Plugin for randomized property-based testing.", "stars": "276"}, {"name": "SMTCoq", "url": "https://github.com/smtcoq/smtcoq", "description": "Tool that checks proof witnesses coming from external SAT and SMT solvers.", "stars": "160"}, {"name": "Tactician", "url": "https://coq-tactician.github.io", "description": "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."}, {"name": "Unicoq", "url": "https://github.com/unicoq/unicoq", "description": "Plugin that replaces the existing unification algorithm with an enhanced one.", "stars": "58"}, {"name": "Waterproof proof language", "url": "https://github.com/impermeable/coq-waterproof", "description": "Plugin providing a language for writing proof scripts in a style that resembles non-mechanized mathematical proof.", "stars": "45"}]}, {"name": "Puzzles and Games", "parent": "Projects", "entries": [{"name": "Coqoban", "url": "https://github.com/coq-community/coqoban", "description": "Coq implementation of Sokoban, the Japanese warehouse keepers' game.", "stars": "24"}, {"name": "Hanoi", "url": "https://github.com/thery/hanoi", "description": "The Tower of Hanoi puzzle in Coq, including generalizations and theorems about configurations.", "stars": "26"}, {"name": "Mini-Rubik", "url": "https://github.com/thery/minirubik", "description": "Coq formalization and solver of the 2x2x2 version of the Rubik's Cube puzzle.", "stars": "5"}, {"name": "Name the Biggest Number", "url": "https://github.com/codyroux/name-the-biggest-number", "description": "Repository for submitting proven contenders for the title of biggest number in Coq.", "stars": "64"}, {"name": "Natural Number Game", "url": "https://github.com/uncomputable/natural-number-game", "description": "Coq version of the natural number game developed for the Lean prover.", "stars": "6"}, {"name": "Sudoku", "url": "https://github.com/coq-community/sudoku", "description": "Formalization and solver of the Sudoku number-placement puzzle in Coq.", "stars": "19"}, {"name": "T2048", "url": "https://github.com/thery/T2048", "description": "Coq version of the 2048 sliding tile game.", "stars": "22"}]}, {"name": "Tools", "parent": "Projects", "entries": [{"name": "Alectryon", "url": "https://github.com/cpitclaudel/alectryon", "description": "Collection of tools for writing technical documents that mix Coq code and prose.", "stars": "279"}, {"name": "Autosubst-ocaml", "url": "https://github.com/uds-psl/autosubst-ocaml", "description": "Tool that generates Coq code for handling binders in syntax, such as for renaming and substitutions.", "stars": "18"}, {"name": "CFML", "url": "https://gitlab.inria.fr/charguer/cfml2", "description": "Tool for proving properties of OCaml programs in separation logic."}, {"name": "coq2html", "url": "https://github.com/xavierleroy/coq2html", "description": "Alternative HTML documentation generator for Coq.", "stars": "31"}, {"name": "coqdoc", "url": "https://coq.inria.fr/refman/using/tools/coqdoc.html", "description": "Standard documentation tool that generates LaTeX or HTML files from Coq code."}, {"name": "CoqOfOCaml", "url": "https://github.com/clarus/coq-of-ocaml", "description": "Tool for generating idiomatic Coq from OCaml code.", "stars": "269"}, {"name": "coq-dpdgraph", "url": "https://github.com/coq-community/coq-dpdgraph", "description": "Tool for building dependency graphs between Coq objects.", "stars": "95"}, {"name": "coq-scripts", "url": "https://github.com/JasonGross/coq-scripts", "description": "Scripts for dealing with Coq files, including tabulating proof times.", "stars": "9"}, {"name": "coq-tools", "url": "https://github.com/JasonGross/coq-tools", "description": "Scripts for manipulating Coq developments.", "stars": "43"}, {"name": "Cosette", "url": "https://github.com/uwdb/Cosette", "description": "Automated solver for reasoning about SQL query equivalences.", "stars": "680"}, {"name": "hs-to-coq", "url": "https://github.com/plclub/hs-to-coq", "description": "Converter from Haskell code to equivalent Coq code.", "stars": "92"}, {"name": "lngen", "url": "https://github.com/plclub/lngen", "description": "Tool for generating locally nameless Coq definitions and proofs.", "stars": "32"}, {"name": "Menhir", "url": "http://gallium.inria.fr/~fpottier/menhir/", "description": "Parser generator that can output Coq code for verified parsers."}, {"name": "mCoq", "url": "https://github.com/EngineeringSoftware/mcoq", "description": "Mutation analysis tool for Coq projects.", "stars": "29"}, {"name": "Ott", "url": "https://github.com/ott-lang/ott", "description": "Tool for writing definitions of programming languages and calculi that can be translated to Coq.", "stars": "393"}, {"name": "PyCoq", "url": "https://github.com/ejgallego/pycoq", "description": "Set of bindings and libraries for interacting with Coq from inside Python 3.", "stars": "56"}, {"name": "Rocqnavi", "url": "https://github.com/affeldt-aist/rocqnavi", "description": "Fork of coq2html that adds indexes, clickable notations, Markdown and LaTeX formatting in comments, and more.", "stars": "3"}, {"name": "Roosterize", "url": "https://github.com/EngineeringSoftware/roosterize", "description": "Tool for suggesting lemma names in Coq projects.", "stars": "22"}, {"name": "Sail", "url": "https://github.com/rems-project/sail", "description": "Tool for specifying instruction set architecture (ISA) semantics of processors and generating Coq definitions.", "stars": "807"}, {"name": "SerAPI", "url": "https://github.com/ejgallego/coq-serapi", "description": "Tools and OCaml library for (de)serialization of Coq code to and from JSON and S-expressions.", "stars": "134"}, {"name": "Trakt", "url": "https://github.com/ecranceMERCE/trakt", "description": "Generic goal preprocessing tool for proof automation tactics.", "stars": "15"}]}, {"name": "Type Theory and Mathematics", "parent": "Projects", "entries": [{"name": "Analysis", "url": "https://github.com/math-comp/analysis", "description": "Library for classical real analysis compatible with Mathematical Components.", "stars": "229"}, {"name": "Category Theory in Coq", "url": "https://github.com/jwiegley/category-theory", "description": "Axiom-free formalization of category theory.", "stars": "786"}, {"name": "Completeness and Decidability of Modal Logic Calculi", "url": "https://github.com/coq-community/comp-dec-modal", "description": "Soundness, completeness, and decidability for the logics K, K\\*, CTL, and PDL.", "stars": "12"}, {"name": "CoqPrime", "url": "https://github.com/thery/coqprime", "description": "Library for certifying primality using Pocklington and Elliptic Curve certificates.", "stars": "41"}, {"name": "CoRN", "url": "https://github.com/coq-community/corn", "description": "Library of constructive real analysis and algebra.", "stars": "115"}, {"name": "Coqtail Math", "url": "https://github.com/coq-community/coqtail-math", "description": "Library of mathematical results ranging from arithmetic to real and complex analysis.", "stars": "16"}, {"name": "Coquelicot", "url": "https://gitlab.inria.fr/coquelicot/coquelicot", "description": "Formalization of classical real analysis compatible with the standard library and focusing on usability."}, {"name": "Finmap", "url": "https://github.com/math-comp/finmap", "description": "Extension of Mathematical Components with finite maps, sets, and multisets.", "stars": "51"}, {"name": "Four Color Theorem", "url": "https://github.com/coq-community/fourcolor", "description": "Formal proof of the Four Color Theorem, a landmark result of graph theory.", "stars": "223"}, {"name": "Gaia", "url": "https://github.com/coq-community/gaia", "description": "Implementation of books from Bourbaki's Elements of Mathematics, including set theory and number theory.", "stars": "31"}, {"name": "GeoCoq", "url": "https://github.com/GeoCoq/GeoCoq", "description": "Formalization of geometry based on Tarski's axiom system.", "stars": "200"}, {"name": "Graph Theory", "url": "https://github.com/coq-community/graph-theory", "description": "Formalized graph theory results.", "stars": "40"}, {"name": "Homotopy Type Theory", "url": "https://github.com/HoTT/Coq-HoTT", "description": "Development of homotopy-theoretic ideas.", "stars": "1.4k"}, {"name": "Infotheo", "url": "https://github.com/affeldt-aist/infotheo", "description": "Formalization of information theory and linear error-correcting codes.", "stars": "72"}, {"name": "Mathematical Components", "url": "http://math-comp.github.io", "description": "Formalization of mathematical theories, focusing in particular on group theory."}, {"name": "Math Classes", "url": "https://github.com/coq-community/math-classes", "description": "Abstract interfaces for mathematical structures based on type classes.", "stars": "166"}, {"name": "Monae", "url": "https://github.com/affeldt-aist/monae", "description": "Monadic effects and equational reasoning.", "stars": "73"}, {"name": "Odd Order Theorem", "url": "https://github.com/math-comp/odd-order", "description": "Formal proof of the Odd Order Theorem, a landmark result of finite group theory.", "stars": "36"}, {"name": "Puiseuxth", "url": "https://github.com/roglo/puiseuxth", "description": "Proof of Puiseux's theorem and computation of roots of polynomials of Puiseux's series.", "stars": "4"}, {"name": "UniMath", "url": "https://github.com/UniMath/UniMath", "description": "Library which aims to formalize a substantial body of mathematics using the univalent point of view.", "stars": "992"}]}, {"name": "Verified Software", "parent": "Projects", "entries": [{"name": "CompCert", "url": "http://compcert.inria.fr", "description": "High-assurance compiler for almost all of the C language (ISO C99), generating efficient code for the PowerPC, ARM, RISC-V and x86 processors."}, {"name": "Ceramist", "url": "https://github.com/certichain/ceramist", "description": "Verified hash-based approximate membership structures such as Bloom filters.", "stars": "124"}, {"name": "CertiCoq", "url": "https://github.com/CertiCoq/certicoq", "description": "Verified compiler from Gallina, the internal language of Coq, down to CompCert's Clight language.", "stars": "157"}, {"name": "Fiat-Crypto", "url": "https://github.com/mit-plv/fiat-crypto", "description": "Cryptographic primitive code generation.", "stars": "782"}, {"name": "Functional Algorithms Verified in SSReflect", "url": "https://github.com/clayrat/fav-ssr", "description": "Purely functional verified implementations of algorithms for searching, sorting, and other fundamental problems.", "stars": "49"}, {"name": "Incremental Cycles", "url": "https://gitlab.inria.fr/agueneau/incremental-cycles", "description": "Verified OCaml implementation of an algorithm for incremental cycle detection in graphs."}, {"name": "Jasmin", "url": "https://github.com/jasmin-lang/jasmin", "description": "Formalized language and verified compiler for high-assurance and high-speed cryptography.", "stars": "316"}, {"name": "JSCert", "url": "https://github.com/jscert/jscert", "description": "Coq specification of ECMAScript 5 (JavaScript) with verified reference interpreter.", "stars": "203"}, {"name": "lambda-rust", "url": "https://gitlab.mpi-sws.org/iris/lambda-rust", "description": "Formal model of a Rust core language and type system, a logical relation for the type system, and safety proofs for some Rust libraries."}, {"name": "Prosa", "url": "https://gitlab.mpi-sws.org/RT-PROOFS/rt-proofs", "description": "Definitions and proofs for real-time system schedulability analysis."}, {"name": "RISC-V Specification in Coq", "url": "https://github.com/mit-plv/riscv-coq", "description": "Definition of the RISC-V processor instruction set architecture and extensions.", "stars": "116"}, {"name": "Stable sort algorithms in Coq", "url": "https://github.com/pi8027/stablesort", "description": "Generic and modular proofs of correctness, including stability, of mergesort functions.", "stars": "25"}, {"name": "Tarjan and Kosaraju", "url": "https://github.com/math-comp/tarjan", "description": "Verified implementations of algorithms for topological sorting and finding strongly connected components in finite graphs.", "stars": "18"}, {"name": "V\u00e9lus", "url": "http://velus.inria.fr", "description": "Verified compiler for a Lustre/Scade-like dataflow synchronous language."}, {"name": "Verdi Raft", "url": "https://github.com/uwplse/verdi-raft", "description": "Implementation of the Raft distributed consensus protocol, verified in Coq using the Verdi framework.", "stars": "191"}, {"name": "WasmCert-Coq", "url": "https://github.com/WasmCert/WasmCert-Coq/", "description": "Formalization in Coq of the WebAssembly (aka Wasm) 1.0 specification.", "stars": "111"}]}, {"name": "Community", "parent": "Resources", "entries": [{"name": "Official Coq website", "url": "https://coq.inria.fr", "description": ""}, {"name": "Official Coq manual", "url": "https://coq.inria.fr/refman/", "description": ""}, {"name": "Official Coq standard library", "url": "https://coq.inria.fr/stdlib/", "description": ""}, {"name": "Official Coq Discourse forum", "url": "https://coq.discourse.group", "description": ""}, {"name": "Official Coq Zulip chat", "url": "https://coq.zulipchat.com", "description": ""}, {"name": "Official Coq-Club mailing list", "url": "https://sympa.inria.fr/sympa/arc/coq-club", "description": ""}, {"name": "Official Coq wiki", "url": "https://github.com/coq/coq/wiki", "description": "", "stars": "5.3k"}, {"name": "Official Coq X/Twitter", "url": "https://x.com/CoqLang", "description": ""}, {"name": "Coq Zulip chat archive", "url": "https://coq.gitlab.io/zulip-archive/", "description": ""}, {"name": "Coq subreddit", "url": "https://www.reddit.com/r/Coq/", "description": ""}, {"name": "Coq tag on Stack Overflow", "url": "https://stackoverflow.com/questions/tagged/coq", "description": ""}, {"name": "Coq tag on Theoretical Computer Science Stack Exchange", "url": "https://cstheory.stackexchange.com/questions/tagged/coq", "description": ""}, {"name": "Coq tag on Proof Assistants Stack Exchange", "url": "https://proofassistants.stackexchange.com/questions/tagged/coq", "description": ""}, {"name": "Coq keyword on Zenodo", "url": "https://zenodo.org/search?q=keywords%3A%22Coq%22", "description": ""}, {"name": "Coq-community package maintenance project", "url": "https://github.com/coq-community/manifesto", "description": "", "stars": "68"}, {"name": "Mathematical Components wiki", "url": "https://github.com/math-comp/math-comp/wiki", "description": "", "stars": "656"}, {"name": "100 famous theorems proved using Coq", "url": "https://github.com/coq-community/coq-100-theorems", "description": "", "stars": "60"}, {"name": "Planet Coq link aggregator", "url": "https://coq.pl-a.net", "description": ""}]}, {"name": "Blogs", "parent": "Resources", "entries": [{"name": "Coq Exchange: ideas and experiment reports about Coq", "url": "https://project.inria.fr/coqexchange/news/", "description": ""}, {"name": "Gagallium", "url": "http://gallium.inria.fr/blog", "description": ""}, {"name": "Gregory Malecha's blog", "url": "https://gmalecha.github.io", "description": ""}, {"name": "Joachim Breitner's blog posts on Coq", "url": "http://www.joachim-breitner.de/blog/tag/Coq", "description": ""}, {"name": "Lysxia's blog", "url": "https://blog.poisson.chat", "description": ""}, {"name": "MIT PLV blog posts on Coq", "url": "http://plv.csail.mit.edu/blog/category/coq.html", "description": ""}, {"name": "PLClub Blog", "url": "https://www.seas.upenn.edu/~plclub/blog/", "description": ""}, {"name": "Poleiro: a Coq blog by Arthur Azevedo de Amorim", "url": "http://poleiro.info", "description": ""}, {"name": "Ralf Jung's blog posts on Coq", "url": "https://www.ralfj.de/blog/categories/coq.html", "description": ""}, {"name": "Thomas Letan's blog posts on Coq", "url": "https://soap.coffee/~lthms/tags/coq.html", "description": ""}]}, {"name": "Books", "parent": "Resources", "entries": [{"name": "Coq'Art", "url": "https://www.labri.fr/perso/casteran/CoqArt/", "description": "The first book dedicated to Coq."}, {"name": "Software Foundations", "url": "https://softwarefoundations.cis.upenn.edu", "description": "Series of Coq-based textbooks on logic, functional programming, and foundations of programming languages, aimed at being accessible to beginners."}, {"name": "Certified Programming with Dependent Types", "url": "http://adam.chlipala.net/cpdt/", "description": "Textbook about practical engineering with Coq which teaches advanced practical tricks and a very specific style of proof."}, {"name": "Program Logics for Certified Compilers", "url": "https://www.cs.princeton.edu/~appel/papers/plcc.pdf", "description": "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."}, {"name": "Formal Reasoning About Programs", "url": "http://adam.chlipala.net/frap/", "description": "Book that simultaneously provides a general introduction to formal logical reasoning about the correctness of programs and to using Coq for this purpose."}, {"name": "Programs and Proofs", "url": "https://ilyasergey.net/pnp/", "description": "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."}, {"name": "Computer Arithmetic and Formal Proofs", "url": "https://www.sciencedirect.com/book/9781785481123/computer-arithmetic-and-formal-proofs", "description": "Book that describes how to formally specify and verify floating-point algorithms in Coq using the Flocq library."}, {"name": "The Mathematical Components book", "url": "https://math-comp.github.io/mcb/", "description": "Book oriented towards mathematically inclined users, focusing on the Mathematical Components library and the SSReflect proof language."}, {"name": "Modeling and Proving in Computational Type Theory", "url": "https://github.com/uds-psl/MPCTT", "description": "Book covering topics in computational logic using Coq, including foundations, canonical case studies, and practical programming.", "stars": "118"}, {"name": "Hydras & Co.", "url": "https://github.com/coq-community/hydra-battles", "description": "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\u00f6del-Rosser first incompleteness theorem.", "stars": "80"}]}, {"name": "Course Material", "parent": "Resources", "entries": [{"name": "An Introduction to MathComp-Analysis", "url": "https://staff.aist.go.jp/reynald.affeldt/documents/karate-coq.pdf", "description": "Lecture notes on getting started with the Mathematical Components library and using it for classical reasoning and real analysis."}, {"name": "Foundations of Separation Logic", "url": "https://chargueraud.org/teach/verif/", "description": "Introduction to using separation logic to reason about sequential imperative programs in Coq."}, {"name": "Floating-Point Numbers and Formal Proof", "url": "https://github.com/thery/FlocqLecture", "description": "Introductory course on Coq real numbers and floating-point numbers from the Flocq library.", "stars": "8"}, {"name": "Introduction to the Theory of Computation", "url": "https://gitlab.com/umb-svl/turing", "description": "Formalization to support an undergraduate course on the theory of computation, including languages and Turing machines."}, {"name": "Lectures on Software Foundations", "url": "https://github.com/clarksmr/sf-lectures", "description": "Material on the Software Foundations series of textbooks, including a series of YouTube videos.", "stars": "145"}, {"name": "MathComp School", "url": "https://github.com/gares/math-comp-school-2022", "description": "Coq sources for lessons and exercises that introduce the SSReflect proof language and the Mathematical Components library.", "stars": "6"}, {"name": "Mechanized Semantics", "url": "https://github.com/xavierleroy/cdf-mech-sem", "description": "Companion Coq sources for a course on programming language semantics at Coll\u00e8ge de France.", "stars": "69"}, {"name": "Program Logics", "url": "https://github.com/xavierleroy/cdf-program-logics", "description": "Companion Coq sources for a course on program logics at Coll\u00e8ge de France.", "stars": "40"}, {"name": "Program verification with types and logic", "url": "https://gitlab.science.ru.nl/program-verification/course-2023-2024", "description": "Lectures and exercise material for a course in programming language semantics, type systems and program logics, using Coq, at Radboud University Nijmegen."}, {"name": "Proofs and Reliable Programming using Coq", "url": "https://team.inria.fr/stamp/proofs-and-reliable-programming-using-coq-2022/", "description": "Introduction to developing and verifying programs with Coq."}]}, {"name": "Tutorials and Hints", "parent": "Resources", "entries": [{"name": "Coq'Art Exercises and Tutorials", "url": "https://github.com/coq-community/coq-art", "description": "Coq code and exercises from the Coq'Art book, including additional tutorials.", "stars": "127"}, {"name": "Coq in a Hurry", "url": "http://cel.archives-ouvertes.fr/inria-00001173", "description": "Introduction to how Coq can be used to define logical concepts and functions and reason about them."}, {"name": "Coq requirements in Common Criteria evaluations", "url": "https://inria.hal.science/hal-04452421", "description": "Guide on how to write readable and reviewable Coq code in high assurance applications."}, {"name": "Coq Tactics in Plain English", "url": "https://charlesaverill.github.io/ctpe/", "description": "Guide to Coq tactics with explanations and examples."}, {"name": "Learn X in Y minutes where X=Coq", "url": "https://learnxinyminutes.com/docs/coq/", "description": "Whirlwind tour of Coq as a language."}, {"name": "Lemma Overloading", "url": "https://github.com/coq-community/lemma-overloading", "description": "Demonstration of design patterns for programming and proving with canonical structures.", "stars": "27"}, {"name": "MathComp Tutorial Materials", "url": "https://github.com/math-comp/tutorial_material", "description": "Source code for Mathematical Components tutorials.", "stars": "17"}, {"name": "Mike Nahas's Coq Tutorial", "url": "https://mdnahas.github.io/doc/nahas_tutorial.html", "description": "Basics of using Coq to write formal proofs."}, {"name": "Tricks in Coq", "url": "https://github.com/coq-community/coq-tricks", "description": "Tips, tricks, and features in Coq that are hard to discover.", "stars": "534"}]}], "name": ""}