Coq

Formal language and environment for programming and specification which facilitates interactive development of machine-checked proofs.

213 resources2 categoriesView Original

Projects(150 items)

A

AAC Tactics

Tactics for rewriting universally quantified equations, modulo associativity and commutativity of some operator.

Projects
A

ALEA

Library for reasoning on randomized algorithms.

Projects
A

Alectryon

Collection of tools for writing technical documents that mix Coq code and prose.

Projects
A

Algebra Tactics

Ring and field tactics for Mathematical Components.

Projects
A

Analysis

Library for classical real analysis compatible with Mathematical Components.

Projects
A

Autosubst-ocaml

Tool that generates Coq code for handling binders in syntax, such as for renaming and substitutions.

Projects
B

Bedrock Bit Vectors

Library for reasoning on fixed precision machine words.

Projects
B

Bignums

Library of arbitrarily large numbers.

Projects
C

Category Theory in Coq

Axiom-free formalization of category theory.

Projects
C

Ceramist

Verified hash-based approximate membership structures such as Bloom filters.

Projects
C

CertiCoq

Verified compiler from Gallina, the internal language of Coq, down to CompCert's Clight language.

Projects
C

CertiGraph

Library for reasoning about directed graphs and their embedding in separation logic.

Projects
C

CFML

Tool for proving properties of OCaml programs in separation logic.

Projects
C

Coinduction

Plugin for doing proofs by enhanced coinduction.

Projects
C

CoLoR

Library on rewriting theory, lambda-calculus and termination, with sub-libraries on common data structures extending the Coq standard library.

Projects
C

Company-Coq

IDE extensions for Proof General's Coq mode.

Projects
C

CompCert

High-assurance compiler for almost all of the C language (ISO C99), generating efficient code for the PowerPC, ARM, RISC-V and x86 processors.

Projects
C

Completeness and Decidability of Modal Logic Ca...

Soundness, completeness, and decidability for the logics K, K*, CTL, and PDL.

Projects
C

ConCert

Framework for smart contract testing and verification featuring a code extraction pipeline to several smart contract languages.

Projects
C

Coq LSP

Language server and extension for the Visual Studio Code and VSCodium editors with custom document checking engine.

Projects
C

Coq Nix Toolbox

Nix helper scripts to automate local builds and continuous integration for Coq.

Projects
C

Coq Package Index

Collection of Coq packages based on opam.

Projects
C

Coq Platform

Curated collection of packages to support Coq use in industry, education, and research.

Projects
C

Coq record update

Library which provides a generic way to update Coq record fields.

Projects
C

coq-community Templates

Templates for generating configuration files for Coq projects.

Projects
C

coq-dpdgraph

Tool for building dependency graphs between Coq objects.

Projects
C

Coq-Elpi

Extension framework based on λProlog providing an extensive API to implement commands and tactics.

Projects
C

coq-haskell

Library smoothing the transition to Coq for Haskell users.

Projects
C

Coq-Kruskal

Collection of libraries related to rose trees and Kruskal's tree theorem.

Projects
C

coq-scripts

Scripts for dealing with Coq files, including tabulating proof times.

Projects
C

Coq-std++

Extended alternative standard library for Coq.

Projects
C

coq-tools

Scripts for manipulating Coq developments.

Projects
C

coq2html

Alternative HTML documentation generator for Coq.

Projects
C

coqdoc

Standard documentation tool that generates LaTeX or HTML files from Coq code.

Projects
C

CoqEAL

Framework to ease change of data representations in proofs.

Projects
C

CoqHammer

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.

Projects
C

CoqIDE

Standalone graphical tool for interacting with Coq.

Projects
C

CoqInterval

Tactics for performing proofs of inequalities on expressions of real numbers.

Projects
C

Coqoban

Coq implementation of Sokoban, the Japanese warehouse keepers' game.

Projects
C

CoqOfOCaml

Tool for generating idiomatic Coq from OCaml code.

Projects
C

CoqPrime

Library for certifying primality using Pocklington and Elliptic Curve certificates.

Projects
C

Coqtail

Interface for Coq based on the Vim text editor.

Projects
C

Coqtail Math

Library of mathematical results ranging from arithmetic to real and complex analysis.

Projects
C

Coquelicot

Formalization of classical real analysis compatible with the standard library and focusing on usability.

Projects
C

coq_makefile

Build tool distributed with Coq and based on generating a makefile.

Projects
C

CoRN

Library of constructive real analysis and algebra.

Projects
C

Cosette

Automated solver for reasoning about SQL query equivalences.

Projects
D

Debian Coq packages

Coq-related packages available in the testing distribution of Debian.

Projects
D

Docker-Coq

Docker images for many versions of Coq.

Projects
D

Docker-Coq GitHub Action

GitHub container action that can be used with Docker-Coq or Docker-MathComp.

Projects
D

Docker-MathComp

Docker images for many combinations of versions of Coq and the Mathematical Components library.

Projects
D

Dune

Composable and opinionated build system for OCaml and Coq (former jbuilder).

Projects
E

Equations

Function definition package for Coq.

Projects
E

ExtLib

Collection of theories and plugins that may be useful in other Coq developments.

Projects
F

FCF

Framework for proofs of cryptography.

Projects
F

FCSL-PCM

Formalization of partial commutative monoids as used in verification of pointer-manipulating programs.

Projects
F

Fiat

Mostly automated synthesis of correct-by-construction programs.

Projects
F

Fiat-Crypto

Cryptographic primitive code generation.

Projects
F

Finmap

Extension of Mathematical Components with finite maps, sets, and multisets.

Projects
F

Flocq

Formalization of floating-point numbers and computations.

Projects
F

Formalised Undecidable Problems

Library of undecidable problems and reductions between them.

Projects
F

Four Color Theorem

Formal proof of the Four Color Theorem, a landmark result of graph theory.

Projects
F

FreeSpec

Framework for modularly verifying programs with effects and effect handlers.

Projects
F

Functional Algorithms Verified in SSReflect

Purely functional verified implementations of algorithms for searching, sorting, and other fundamental problems.

Projects
G

Gaia

Implementation of books from Bourbaki's Elements of Mathematics, including set theory and number theory.

Projects
G

Gappa

Tactic for discharging goals about floating-point arithmetic and round-off errors.

Projects
G

GeoCoq

Formalization of geometry based on Tarski's axiom system.

Projects
G

Graph Theory

Formalized graph theory results.

Projects
H

Hahn

Library for reasoning on lists and binary relations.

Projects
H

Hanoi

The Tower of Hanoi puzzle in Coq, including generalizations and theorems about configurations.

Projects
H

Hierarchy Builder

Collection of commands for declaring Coq hierarchies based on packed classes.

Projects
H

Hoare Type Theory

A shallow embedding of sequential separation logic formulated as a type theory.

Projects
H

Homotopy Type Theory

Development of homotopy-theoretic ideas.

Projects
H

hs-to-coq

Converter from Haskell code to equivalent Coq code.

Projects
H

Hybrid

System for reasoning using higher-order abstract syntax representations of object logics.

Projects
I

Incremental Cycles

Verified OCaml implementation of an algorithm for incremental cycle detection in graphs.

Projects
I

Infotheo

Formalization of information theory and linear error-correcting codes.

Projects
I

Interaction Trees

Library for representing recursive and impure programs.

Projects
I

Iris

Higher-order concurrent separation logic framework.

Projects
I

Itauto

SMT-like tactics for combined propositional reasoning about function symbols, constructors, and arithmetic.

Projects
J

Jasmin

Formalized language and verified compiler for high-assurance and high-speed cryptography.

Projects
J

JSCert

Coq specification of ECMAScript 5 (JavaScript) with verified reference interpreter.

Projects
J

jsCoq

Port of Coq to JavaScript, which enables running Coq projects in a browser.

Projects
J

Jupyter kernel for Coq

Coq support for the Jupyter Notebook web environment.

Projects
L

lambda-rust

Formal model of a Rust core language and type system, a logical relation for the type system, and safety proofs for some Rust libraries.

Projects
L

LibHyps

Library of Ltac tactics to manage and manipulate hypotheses in proofs.

Projects
L

lngen

Tool for generating locally nameless Coq definitions and proofs.

Projects
L

Ltac2

Experimental typed tactic language similar to Coq's classic Ltac language.

Projects
M

Math Classes

Abstract interfaces for mathematical structures based on type classes.

Projects
M

MathComp Extra

Extra material for the Mathematical Components library, including the AKS primality test and RSA encryption and decryption.

Projects
M

Mathematical Components

Formalization of mathematical theories, focusing in particular on group theory.

Projects
M

mCoq

Mutation analysis tool for Coq projects.

Projects
M

Mczify

Library enabling Micromega arithmetic solvers to work when using Mathematical Components number definitions.

Projects
M

Menhir

Parser generator that can output Coq code for verified parsers.

Projects
M

MetaCoq

Project formalizing Coq in Coq and providing tools for manipulating Coq terms and developing certified plugins.

Projects
M

Metalib

Library for programming language metatheory using locally nameless variable binding representations.

Projects
M

Mini-Rubik

Coq formalization and solver of the 2x2x2 version of the Rubik's Cube puzzle.

Projects
M

Monae

Monadic effects and equational reasoning.

Projects
M

Mtac2

Plugin adding typed tactics for backward reasoning.

Projects
N

Name the Biggest Number

Repository for submitting proven contenders for the title of biggest number in Coq.

Projects
N

Natural Number Game

Coq version of the natural number game developed for the Lean prover.

Projects
N

Nix

Package manager for Linux and other Unix systems, supporting atomic upgrades and rollbacks.

Projects
N

Nix Coq packages

Collection of Coq-related packages for Nix.

Projects
O

Odd Order Theorem

Formal proof of the Odd Order Theorem, a landmark result of finite group theory.

Projects
O

opam

Flexible and Git-friendly package manager for OCaml and Coq with multiple compiler support.

Projects
O

opam-switch-mode

IDE extension for Proof General to locally change or reset the opam switch from a menu or using a command.

Projects
O

Ott

Tool for writing definitions of programming languages and calculi that can be translated to Coq.

Projects
P

Paco

Library for parameterized coinduction.

Projects
P

Paramcoq

Plugin to generate parametricity translations of Coq terms.

Projects
P

Proof General

Generic interface for proof assistants based on the extensible, customizable text editor Emacs.

Projects
P

Prosa

Definitions and proofs for real-time system schedulability analysis.

Projects
P

Puiseuxth

Proof of Puiseux's theorem and computation of roots of polynomials of Puiseux's series.

Projects
P

PyCoq

Set of bindings and libraries for interacting with Coq from inside Python 3.

Projects
Q

QuickChick

Plugin for randomized property-based testing.

Projects
Q

Q\*cert

Platform for implementing and verifying query compilers.

Projects
R

Regular Language Representations

Translations between different definitions of regular languages, including regular expressions and automata.

Projects
R

Relation Algebra

Modular formalization of algebras with heterogeneous binary relations as models.

Projects
R

RISC-V Specification in Coq

Definition of the RISC-V processor instruction set architecture and extensions.

Projects
R

Roosterize

Tool for suggesting lemma names in Coq projects.

Projects
S

Sail

Tool for specifying instruction set architecture (ISA) semantics of processors and generating Coq definitions.

Projects
S

SerAPI

Tools and OCaml library for (de)serialization of Coq code to and from JSON and S-expressions.

Projects
S

Simple IO

Input/output monad with user-definable primitive operations.

Projects
S

SMTCoq

Tool that checks proof witnesses coming from external SAT and SMT solvers.

Projects
S

SSProve

Framework for modular cryptographic proofs based on the Mathematical Components library.

Projects
S

Stable sort algorithms in Coq

Generic and modular proofs of correctness, including stability, of mergesort functions.

Projects
S

Sudoku

Formalization and solver of the Sudoku number-placement puzzle in Coq.

Projects
T

T2048

Coq version of the 2048 sliding tile game.

Projects
T

Tactician

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.

Projects
T

Tarjan and Kosaraju

Verified implementations of algorithms for topological sorting and finding strongly connected components in finite graphs.

Projects
T

TLC

Non-constructive alternative to Coq's standard library.

Projects
T

Trakt

Generic goal preprocessing tool for proof automation tactics.

Projects
U

Unicoq

Plugin that replaces the existing unification algorithm with an enhanced one.

Projects
U

UniMath

Library which aims to formalize a substantial body of mathematics using the univalent point of view.

Projects
V

VCFloat

Framework for verifying C programs with floating-point computations.

Projects
V

Vélus

Verified compiler for a Lustre/Scade-like dataflow synchronous language.

Projects
V

Verdi

Framework for formally verifying distributed systems implementations.

Projects
V

Verdi Raft

Implementation of the Raft distributed consensus protocol, verified in Coq using the Verdi framework.

Projects
V

VsCoq

Language server and extension for the Visual Studio Code and VSCodium editors.

Projects
V

VsCoq Legacy

Backwards-compatible extension for the Visual Studio Code and VSCodium editors using Coq's legacy XML protocol.

Projects
V

VST

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.

Projects
W

WasmCert-Coq

Formalization in Coq of the WebAssembly (aka Wasm) 1.0 specification.

Projects
W

Waterproof editor

Educational environment for writing mathematical proofs in interactive notebooks.

Projects
W

Waterproof proof language

Plugin providing a language for writing proof scripts in a style that resembles non-mechanized mathematical proof.

Projects
`

`absolutize-imports.py`

Processes source files to make loading of dependencies robust against shadowing of file names.

Projects
`

`find-bug.py`

Automatically minimizes source files producing an error, creating small test cases for Coq bugs.

Projects
`

`inline-imports.py`

Creates stand-alone source files from developments by inlining the loading of all dependencies.

Projects
`

`minimize-requires.py`

Removes loading of unused dependencies.

Projects
`

`move-requires.py`

Moves all dependency loading statements to the top of source files.

Projects
`

`move-vernaculars.py`

Lifts many vernacular commands and inner lemmas out of proof script blocks.

Projects
`

`proof-using-helper.py`

Modifies source files to include proof annotations for faster parallel proving.

Projects

Resources(63 items)

1

100 famous theorems proved using Coq

Resources
A

An Introduction to MathComp-Analysis

Lecture notes on getting started with the Mathematical Components library and using it for classical reasoning and real analysis.

Resources
C

Certified Programming with Dependent Types

Textbook about practical engineering with Coq which teaches advanced practical tricks and a very specific style of proof.

Resources
C

Computer Arithmetic and Formal Proofs

Book that describes how to formally specify and verify floating-point algorithms in Coq using the Flocq library.

Resources
C

Coq Exchange: ideas and experiment reports abou...

Resources
C

Coq in a Hurry

Introduction to how Coq can be used to define logical concepts and functions and reason about them.

Resources
C

Coq keyword on Zenodo

Resources
C

Coq requirements in Common Criteria evaluations

Guide on how to write readable and reviewable Coq code in high assurance applications.

Resources
C

Coq subreddit

Resources
C

Coq Tactics in Plain English

Guide to Coq tactics with explanations and examples.

Resources
C

Coq tag on Proof Assistants Stack Exchange

Resources
C

Coq tag on Stack Overflow

Resources
C

Coq tag on Theoretical Computer Science Stack E...

Resources
C

Coq Zulip chat archive

Resources
C

Coq'Art

The first book dedicated to Coq.

Resources
C

Coq'Art Exercises and Tutorials

Coq code and exercises from the Coq'Art book, including additional tutorials.

Resources
C

Coq-community package maintenance project

Resources
F

Floating-Point Numbers and Formal Proof

Introductory course on Coq real numbers and floating-point numbers from the Flocq library.

Resources
F

Formal Reasoning About Programs

Book that simultaneously provides a general introduction to formal logical reasoning about the correctness of programs and to using Coq for this purpose.

Resources
F

Foundations of Separation Logic

Introduction to using separation logic to reason about sequential imperative programs in Coq.

Resources
G

Gagallium

Resources
G

Gregory Malecha's blog

Resources
H

Hydras & Co.

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.

Resources
I

Introduction to the Theory of Computation

Formalization to support an undergraduate course on the theory of computation, including languages and Turing machines.

Resources
J

Joachim Breitner's blog posts on Coq

Resources
L

Learn X in Y minutes where X=Coq

Whirlwind tour of Coq as a language.

Resources
L

Lectures on Software Foundations

Material on the Software Foundations series of textbooks, including a series of YouTube videos.

Resources
L

Lemma Overloading

Demonstration of design patterns for programming and proving with canonical structures.

Resources
L

Lysxia's blog

Resources
M

MathComp School

Coq sources for lessons and exercises that introduce the SSReflect proof language and the Mathematical Components library.

Resources
M

MathComp Tutorial Materials

Source code for Mathematical Components tutorials.

Resources
M

Mathematical Components wiki

Resources
M

Mechanized Semantics

Companion Coq sources for a course on programming language semantics at Collège de France.

Resources
M

Mike Nahas's Coq Tutorial

Basics of using Coq to write formal proofs.

Resources
M

MIT PLV blog posts on Coq

Resources
M

Modeling and Proving in Computational Type Theory

Book covering topics in computational logic using Coq, including foundations, canonical case studies, and practical programming.

Resources
O

Official Coq Discourse forum

Resources
O

Official Coq manual

Resources
O

Official Coq standard library

Resources
O

Official Coq website

Resources
O

Official Coq wiki

Resources
O

Official Coq X/Twitter

Resources
O

Official Coq Zulip chat

Resources
O

Official Coq-Club mailing list

Resources
P

Planet Coq link aggregator

Resources
P

PLClub Blog

Resources
P

Poleiro: a Coq blog by Arthur Azevedo de Amorim

Resources
P

Program Logics

Companion Coq sources for a course on program logics at Collège de France.

Resources
P

Program Logics for Certified Compilers

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.

Resources
P

Program verification with types and logic

Lectures and exercise material for a course in programming language semantics, type systems and program logics, using Coq, at Radboud University Nijmegen.

Resources
P

Programs and Proofs

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.

Resources
P

Proofs and Reliable Programming using Coq

Introduction to developing and verifying programs with Coq.

Resources
R

Ralf Jung's blog posts on Coq

Resources
S

Software Foundations

Series of Coq-based textbooks on logic, functional programming, and foundations of programming languages, aimed at being accessible to beginners.

Resources
T

The Mathematical Components book

Book oriented towards mathematically inclined users, focusing on the Mathematical Components library and the SSReflect proof language.

Resources
T

Thomas Letan's blog posts on Coq

Resources
T

Tricks in Coq

Tips, tricks, and features in Coq that are hard to discover.

Resources
V

Volume 1: Logical Foundations

Introduction to functional programming, basic concepts of logic, and computer-assisted theorem proving.

Resources
V

Volume 2: Programming Language Foundations

Introduction to the theory of programming languages, including operational semantics, Hoare logic, and static type systems.

Resources
V

Volume 3: Verified Functional Algorithms

Demonstration of how a variety of fundamental data structures can be specified and verified.

Resources
V

Volume 4: QuickChick

Introduction to tools for combining randomized property-based testing with formal specification and proof.

Resources
V

Volume 5: Verifiable C

An extended tutorial on specifying and verifying C programs using the Verified Software Toolchain.

Resources
V

Volume 6: Separation Logic Foundations

An introduction to separation logic and how to build program verification tools on top of it.

Resources