Update render script and Makefile

This commit is contained in:
Jonas Zeunert
2024-04-22 21:54:39 +02:00
parent 2d63fe63cd
commit 4d0cd768f7
10975 changed files with 47095 additions and 4031084 deletions

View File

@@ -1,11 +1,11 @@
 Awesome Coq !Awesome (https://awesome.re/badge.svg) (https://awesome.re)
 Awesome Coq !Awesome (https://awesome.re/badge.svg) (https://awesome.re)
 (https://github.com/coq-community/manifesto)
▐ A curated list of awesome Coq libraries, plugins, tools, and resources.
The Coq proof assistant (https://coq.inria.fr) provides a formal language to write mathematical definitions, executable algorithms, and theorems, together with an environment for semi-interactive development of 
machine-checked proofs.
The Coq proof assistant (https://coq.inria.fr) provides a formal language to write mathematical definitions, executable algorithms, and theorems, together with an environment for 
semi-interactive development of machine-checked proofs.
Contributions welcome! Read the contribution guidelines (https://github.com/coq-community/awesome-coq/blob/master/CONTRIBUTING.md) first.
@@ -28,7 +28,7 @@
 - Course Material (#course-material)
 - Tutorials and Hints (#tutorials-and-hints)
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
Projects
@@ -46,7 +46,8 @@
- SSProve (https://github.com/SSProve/ssprove) - Framework for modular cryptographic proofs based on the Mathematical Components library.
- VCFloat (https://github.com/VeriNum/vcfloat) - Framework for verifying C programs with floating-point computations.
- Verdi (https://github.com/uwplse/verdi) - Framework for formally verifying distributed systems implementations.
- VST (https://vst.cs.princeton.edu) - 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.
- VST (https://vst.cs.princeton.edu) - 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.
User Interfaces
@@ -110,9 +111,10 @@
- AAC Tactics (https://github.com/coq-community/aac-tactics) - Tactics for rewriting universally quantified equations, modulo associativity and commutativity of some operator.
- Coq-Elpi (https://github.com/LPCIC/coq-elpi) - Extension framework based on λProlog providing an extensive API to implement commands and tactics.
- Waterproof proof language (https://github.com/impermeable/coq-waterproof) - Plugin providing a language for writing proof scripts in a style that resembles non-mechanized mathematical proof.
- CoqHammer (https://github.com/lukaszcz/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.
- Waterproof proof language (https://github.com/impermeable/coq-waterproof) - Plugin providing a language for writing proof scripts in a style that resembles non-mechanized mathematical 
proof.
- CoqHammer (https://github.com/lukaszcz/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.
- Equations (https://github.com/mattam82/Coq-Equations) - Function definition package for Coq.
- Gappa (https://gitlab.inria.fr/gappa/coq) - Tactic for discharging goals about floating-point arithmetic and round-off errors.
- Hierarchy Builder (https://github.com/math-comp/hierarchy-builder) - Collection of commands for declaring Coq hierarchies based on packed classes.
@@ -123,8 +125,8 @@
- Paramcoq (https://github.com/coq-community/paramcoq) - Plugin to generate parametricity translations of Coq terms.
- QuickChick (https://github.com/QuickChick/QuickChick) - Plugin for randomized property-based testing.
- SMTCoq (https://github.com/smtcoq/smtcoq) - Tool that checks proof witnesses coming from external SAT and SMT solvers.
- Tactician (https://coq-tactician.github.io) - 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.
- Tactician (https://coq-tactician.github.io) - 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.
- Unicoq (https://github.com/unicoq/unicoq) - Plugin that replaces the existing unification algorithm with an enhanced one.
Puzzles and Games
@@ -149,7 +151,8 @@
- coq-scripts (https://github.com/JasonGross/coq-scripts) - Scripts for dealing with Coq files, including tabulating proof times.
- coq-tools (https://github.com/JasonGross/coq-tools) - Scripts for manipulating Coq developments.
 - find-bug.py (https://github.com/JasonGross/coq-tools/blob/master/find-bug.py) - Automatically minimizes source files producing an error, creating small test cases for Coq bugs.
 - absolutize-imports.py (https://github.com/JasonGross/coq-tools/blob/master/absolutize-imports.py) - Processes source files to make loading of dependencies robust against shadowing of file names.
 - absolutize-imports.py (https://github.com/JasonGross/coq-tools/blob/master/absolutize-imports.py) - Processes source files to make loading of dependencies robust against shadowing of file
names.
 - inline-imports.py (https://github.com/JasonGross/coq-tools/blob/master/inline-imports.py) - Creates stand-alone source files from developments by inlining the loading of all dependencies.
 - minimize-requires.py (https://github.com/JasonGross/coq-tools/blob/master/minimize-requires.py) - Removes loading of unused dependencies.
 - move-requires.py (https://github.com/JasonGross/coq-tools/blob/master/move-requires.py) - Moves all dependency loading statements to the top of source files.
@@ -195,11 +198,13 @@
- CompCert (http://compcert.inria.fr) - High-assurance compiler for almost all of the C language (ISO C99), generating efficient code for the PowerPC, ARM, RISC-V and x86 processors.
- Ceramist (https://github.com/certichain/ceramist) - Verified hash-based approximate membership structures such as Bloom filters.
- Fiat-Crypto (https://github.com/mit-plv/fiat-crypto) - Cryptographic primitive code generation.
- Functional Algorithms Verified in SSReflect (https://github.com/clayrat/fav-ssr) - Purely functional verified implementations of algorithms for searching, sorting, and other fundamental problems.
- Functional Algorithms Verified in SSReflect (https://github.com/clayrat/fav-ssr) - Purely functional verified implementations of algorithms for searching, sorting, and other fundamental 
problems.
- Incremental Cycles (https://gitlab.inria.fr/agueneau/incremental-cycles) - Verified OCaml implementation of an algorithm for incremental cycle detection in graphs.
- Jasmin (https://github.com/jasmin-lang/jasmin) - Formalized language and verified compiler for high-assurance and high-speed cryptography.
- JSCert (https://github.com/jscert/jscert) - Coq specification of ECMAScript 5 (JavaScript) with verified reference interpreter.
- lambda-rust (https://gitlab.mpi-sws.org/iris/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.
- lambda-rust (https://gitlab.mpi-sws.org/iris/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.
- Prosa (https://gitlab.mpi-sws.org/RT-PROOFS/rt-proofs) - Definitions and proofs for real-time system schedulability analysis.
- RISC-V Specification in Coq (https://github.com/mit-plv/riscv-coq) - Definition of the RISC-V processor instruction set architecture and extensions.
- Tarjan and Kosaraju (https://github.com/math-comp/tarjan) - Verified implementations of algorithms for topological sorting and finding strongly connected components in finite graphs.
@@ -247,27 +252,30 @@
Books
- Coq'Art (https://www.labri.fr/perso/casteran/CoqArt/) - The first book dedicated to Coq.
- Software Foundations (https://softwarefoundations.cis.upenn.edu) - Series of Coq-based textbooks on logic, functional programming, and foundations of programming languages, aimed at being accessible to 
beginners.
- Certified Programming with Dependent Types (http://adam.chlipala.net/cpdt/) - Textbook about practical engineering with Coq which teaches advanced practical tricks and a very specific style of proof.
- Program Logics for Certified Compilers (https://www.cs.princeton.edu/~appel/papers/plcc.pdf) - 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.
- Formal Reasoning About Programs (http://adam.chlipala.net/frap/) - Book that simultaneously provides a general introduction to formal logical reasoning about the correctness of programs and to using Coq for 
this purpose.
- Programs and Proofs (https://ilyasergey.net/pnp/) - 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.
- Software Foundations (https://softwarefoundations.cis.upenn.edu) - Series of Coq-based textbooks on logic, functional programming, and foundations of programming languages, aimed at being 
accessible to beginners.
- Certified Programming with Dependent Types (http://adam.chlipala.net/cpdt/) - Textbook about practical engineering with Coq which teaches advanced practical tricks and a very specific style
of proof.
- Program Logics for Certified Compilers (https://www.cs.princeton.edu/~appel/papers/plcc.pdf) - 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.
- Formal Reasoning About Programs (http://adam.chlipala.net/frap/) - Book that simultaneously provides a general introduction to formal logical reasoning about the correctness of programs and
to using Coq for this purpose.
- Programs and Proofs (https://ilyasergey.net/pnp/) - 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.
- Computer Arithmetic and Formal Proofs (http://iste.co.uk/book.php?id=1238) - Book that describes how to formally specify and verify floating-point algorithms in Coq using the Flocq library.
- The Mathematical Components book (https://math-comp.github.io/mcb/) - Book oriented towards mathematically inclined users, focusing on the Mathematical Components library and the SSReflect proof language.
- Modeling and Proving in Computational Type Theory (https://github.com/uds-psl/MPCTT) - Book covering topics in computational logic using Coq, including foundations, canonical case studies, and practical 
programming.
- Hydras & Co. (https://github.com/coq-community/hydra-battles) - 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.
- The Mathematical Components book (https://math-comp.github.io/mcb/) - Book oriented towards mathematically inclined users, focusing on the Mathematical Components library and the SSReflect 
proof language.
- Modeling and Proving in Computational Type Theory (https://github.com/uds-psl/MPCTT) - Book covering topics in computational logic using Coq, including foundations, canonical case studies, 
and practical programming.
- Hydras & Co. (https://github.com/coq-community/hydra-battles) - 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.
Course Material
- Foundations of Separation Logic (https://chargueraud.org/teach/verif/) - Introduction to using separation logic to reason about sequential imperative programs in Coq.
- Floating-Point Numbers and Formal Proof (https://github.com/thery/FlocqLecture) - Introductory course on Coq real numbers and floating-point numbers from the Flocq library.
- Introduction to the Theory of Computation (https://gitlab.com/umb-svl/turing) - Formalization to support an undergraduate course on the theory of computation, including languages and Turing machines.
- Introduction to the Theory of Computation (https://gitlab.com/umb-svl/turing) - Formalization to support an undergraduate course on the theory of computation, including languages and Turing
machines.
- Lectures on Software Foundations (https://github.com/clarksmr/sf-lectures) - Material on the Software Foundations series of textbooks, including a series of YouTube videos.
- MathComp School (https://github.com/gares/math-comp-school-2022) - Coq sources for lessons and exercises that introduce the SSReflect proof language and the Mathematical Components library.
- Mechanized Semantics (https://github.com/xavierleroy/cdf-mech-sem) - Companion Coq sources for a course on programming language semantics at Collège de France.