• Stars
    star
    126
  • Rank 284,543 (Top 6 %)
  • Language Coq
  • License
    BSD 2-Clause "Sim...
  • Created over 12 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A library of Coq definitions, theorems, and tactics. [maintainers=@gmalecha,@liyishuai]

coq-ext-lib

Docker CI Contributing Code of Conduct Zulip

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

Meta

  • Author(s):
    • Gregory Malecha (initial)
  • Coq-community maintainer(s):
  • License: BSD 2-Clause "Simplified" License
  • Compatible Coq versions: Coq 8.11 or later or 8.9
  • Additional dependencies: none
  • Coq namespace: ExtLib
  • Related publication(s): none

Building and installation instructions

The easiest way to install the latest released version of coq-ext-lib is via OPAM:

opam repo add coq-released https://coq.inria.fr/opam/released
opam install coq-ext-lib

To instead build and install manually, do:

git clone --recurse-submodules https://github.com/coq-community/coq-ext-lib.git
cd coq-ext-lib
make theories  # or make -j <number-of-cores-on-your-machine> theories
make install

Ideas

  • Embrace new features, e.g. universe polymorphism, primitive projections, etc.
  • Use modules for controlling namespaces.
  • Use first-class abstractions where appropriate, e.g. type classes, canonical structures, etc.
    • The library is mostly built around type clases
  • Notations should be hidden by modules that are explicitly opened.
    • This avoids clashes between precedence.
    • TB: Actually, this does not completely avoid clashes, if we have to open two modules at the same time (for instance, I often need to open Equality, to get dependent destruction, which conflicts with the rest of my development)
    • TB: I like the idea of having to prefix operations by the name of the module (e.g., DList.fold, DList.map, DList.T), and yet to benefit from the support of notations, without opening this module. I implement that by having a module DList that contains the operations, inside the file DList. The notations live in the file DList, and I do Require Import DList everywhere...
  • Avoid the use of the 'core' hint database.
  • Avoid the use of dependent functions, e.g. dependendent decidable equality, in favor of their boolen counter-parts. Use type-classes to expose the proofs.

File Structure

  • theories/
    • Base directory to the provided theories

More Repositories

1

coq-tricks

Tricks you wish the Coq manual told you [maintainer=@tchajed]
Coq
497
star
2

vscoq

A Visual Studio Code extension for Coq [maintainers=@rtetley,@huynhtrankhanh,@thery,@Blaisorblade]
OCaml
333
star
3

awesome-coq

A curated list of awesome Coq libraries, plugins, tools, verification projects, and resources [maintainer=@palmskog]
304
star
4

math-classes

A library of abstract interfaces for mathematical structures in Coq [maintainer=@spitters,@Lysxia]
Coq
160
star
5

fourcolor

Formal proof of the Four Color Theorem [maintainer=@ybertot]
Coq
158
star
6

corn

Coq Repository at Nijmegen [maintainers=@spitters,@VincentSe,@Lysxia]
Coq
108
star
7

coq-art

Coq code and exercises from the Coq'Art book [maintainers=@ybertot,@Casteran]
Coq
107
star
8

coq-dpdgraph

Build dependency graphs between Coq objects [maintainers=@Karmaki,@ybertot]
Coq
86
star
9

manifesto

Documentation on goals of the coq-community organization, the shared contributing guide and code of conduct.
68
star
10

coqeal

The Coq Effective Algebra Library [maintainers=@CohenCyril,@proux01]
Coq
65
star
11

hydra-battles

Variations on Kirby & Paris' hydra battles and other entertaining math in Coq (collaborative, documented, includes exercises) [maintainer=@Casteran]
Coq
63
star
12

coq-100-theorems

Statements of famous theorems proven in Coq [maintainer=@jmadiot]
HTML
55
star
13

autosubst

Automation for de Bruijn syntax and substitution in Coq [maintainers=@RalfJung,@co-dan]
Coq
51
star
14

topology

General topology in Coq [maintainers=@amiloradovsky,@Columbus240,@stop-cran]
Coq
46
star
15

semantics

A survey of semantics styles in Coq, from natural semantics through structural operational, axiomatic, and denotational semantics, to abstract interpretation [maintainer=@k4rtik]
Coq
45
star
16

fav-ssr

Functional Algorithms Verified in SSReflect [maintainer=@clayrat]
Coq
45
star
17

paramcoq

Coq plugin for parametricity [maintainer=@proux01]
Coq
44
star
18

dedekind-reals

A formalization of the Dedekind real numbers in Coq [maintainer=@andrejbauer]
Coq
43
star
19

parseque

Total Parser Combinators in Coq [maintainer=@womeier]
Coq
42
star
20

reglang

Regular Language Representations in Coq [maintainers=@chdoc,@palmskog]
Coq
42
star
21

docker-coq

Docker images of the Coq proof assistant (see also: https://github.com/coq-community/docker-coq-action) [maintainers=@erikmd,@himito]
Dockerfile
37
star
22

coqdocjs

Collection of scripts to improve the output of coqdoc [maintainers=@chdoc,@palmskog]
JavaScript
36
star
23

coqffi

Automatically generates Coq FFI bindings to OCaml libraries [maintainer=@lthms]
OCaml
33
star
24

coq-nix-toolbox

Nix helper scripts to automate local builds and CI [maintainers=@CohenCyril,@Zimmi48]
Nix
32
star
25

graph-theory

Graph Theory [maintainers=@chdoc,@damien-pous]
Coq
32
star
26

chapar

A framework for verification of causal consistency for distributed key-value stores and their clients in Coq [maintainer=@palmskog]
Coq
32
star
27

aac-tactics

Coq plugin providing tactics for rewriting universally quantified equations, modulo associative (and possibly commutative) operators [maintainer=@palmskog]
OCaml
29
star
28

goedel

Archived since the contents have been moved to the Hydras & Co. repository
Coq
29
star
29

gaia

Implementation of books from Bourbaki's Elements of Mathematics in Coq [maintainer=@thery]
Coq
28
star
30

dblib

Coq library for working with de Bruijn indices [maintainer=@KevOrr]
Coq
28
star
31

coq-program-verification-template

Template project for program verification in Coq, showcasing reasoning on CompCert's Clight language using the Verified Software Toolchain [maintainer=@palmskog]
Coq
27
star
32

lemma-overloading

Libraries demonstrating design patterns for programming and proving with canonical structures in Coq [maintainer=@anton-trunov]
Coq
26
star
33

alea

Coq library for reasoning on randomized algorithms [maintainers=@anton-trunov,@volodeyka]
Coq
25
star
34

atbr

Coq library and tactic for deciding Kleene algebras [maintainer=@tchajed]
Coq
23
star
35

bits

A formalization of bitset operations in Coq and the corresponding axiomatization and extraction to OCaml native integers [maintainer=@anton-trunov]
Coq
22
star
36

bignums

Coq library of arbitrarily large numbers, providing BigN, BigZ, BigQ that used to be part of the standard library [maintainers=@proux01,@erikmd]
Coq
22
star
37

coqoban

Sokoban (in Coq) [maintainer=@erikmd]
Coq
21
star
38

sudoku

A certified Sudoku solver in Coq [maintainers=@siraben,@thery]
Coq
20
star
39

HighSchoolGeometry

Geometry in Coq for French high school [maintainer=@thery]
Coq
19
star
40

apery

A formal proof of the irrationality of zeta(3), the Apéry constant [maintainer=@amahboubi,@pi8027]
Coq
19
star
41

hoare-tut

A Tutorial on Reflecting in Coq the generation of Hoare proof obligations [maintainer=@k4rtik]
Coq
19
star
42

coq-plugin-template

Template project for Coq plugins using the Dune build system, showcasing some advanced features [maintainer=@ejgallego]
OCaml
17
star
43

trocq

A modular parametricity plugin for proof transfer in Coq [maintainers=@CohenCyril,@ecranceMERCE,@amahboubi]
Coq
17
star
44

metaprogramming-rosetta-stone

A rosetta stone for metaprogramming in Coq, with different examples of tactics, plugins, etc implemented in different metaprogramming languages [maintainer=@yforster]
Coq
16
star
45

coqtail-math

Coqtail is a library of mathematical theorems and tools proved inside the Coq proof assistant. Results range mostly from arithmetic to real and complex analysis. [maintainer=@jmadiot]
Coq
15
star
46

huffman

Correctness proof of the Huffman coding algorithm in Coq [maintainer=@palmskog]
Coq
14
star
47

templates

Templates for configuration files and scripts useful for maintaining Coq projects [maintainers=@palmskog,@Zimmi48]
Mustache
13
star
48

tarjan

Coq formalization of algorithms due to Tarjan and Kosaraju for finding strongly connected graph components using Mathematical Components and SSReflect [maintainers=@CohenCyril,@palmskog]
Coq
13
star
49

regexp-Brzozowski

Coq formalization of decision procedures for regular expression equivalence [maintainer=@anton-trunov]
Coq
12
star
50

qarith-stern-brocot

Binary rational numbers in Coq [maintainer=@herbelin]
Coq
12
star
51

docker-coq-action

GitHub Action using Docker-Coq [maintainers=@erikmd,@Zimmi48]
Shell
12
star
52

mmaps

Modular Finite Maps over Ordered Types in Coq [maintainers=@letouzey,@palmskog]
Coq
10
star
53

notation-gallery

Examples showing best practices for using Coq notations and custom entries [maintainer=@bcpierce00]
Coq
9
star
54

comp-dec-modal

Completeness and Decidability of Modal Logic Calculi [maintainer=@chdoc]
Coq
8
star
55

buchberger

Verified implementation in Coq of Buchberger's algorithm for computing Gröbner bases [maintainer=@palmskog]
Coq
8
star
56

proviola

Tool for reanimation of Coq proofs [maintainer=@JasonGross]
Python
7
star
57

coq-performance-tests

A library of Coq source files testing for performance regressions on Coq [maintainer=@JasonGross]
Coq
7
star
58

generic-environments

Coq library that provides an abstract data type for environments [maintainer=@aerabi]
Coq
6
star
59

zorns-lemma

Archived since the contents have been moved to the topology repository
Coq
6
star
60

reduction-effects

A Coq plugin to add reduction side effects to some Coq reduction strategies [maintainers=@liyishuai,@JasonGross]
Makefile
6
star
61

docker-base

Parent image for Docker images of the Coq proof assistant [maintainers=@erikmd,@himito]
Dockerfile
4
star
62

almost-full

Coq development of almost-full relations, including the Ramsey Theorem, useful for proving termination [maintainer=@palmskog]
Coq
3
star
63

jmlcoq

Coq definition of JML and a verified runtime assertion checker [maintainer=@palmskog]
Coq
3
star
64

bertrand

Coq proof of Bertrand's postulate on existence of primes [maintainer=@thery]
Coq
3
star
65

run-coq-bug-minimizer

Repository for triggering runs of the Coq bug minimizer using GitHub Actions [maintainer=@JasonGross]
Shell
2
star
66

pocklington

Pocklington's criterion for primality in Coq [maintainer=@Casteran]
Coq
2
star
67

vscoq-legacy

Legacy Visual Studio Code extension for Coq [maintainers=@huynhtrankhanh,@thery,@Blaisorblade]
TypeScript
1
star
68

stalmarck

Certified implementation in Coq of Stålmarck's algorithm for proving tautologies [maintainer=@palmskog]
Coq
1
star
69

exact-real-arithmetic

Exact Real Arithmetic [maintainers=@ybertot,@magaud]
Coq
1
star