Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-coq

A curated list of awesome Coq libraries, plugins, tools, verification projects, and resources [maintainers=@anton-trunov,@palmskog]
https://github.com/coq-community/awesome-coq

Last synced: 5 days ago
JSON representation

  • Resources

  • Projects

    • Frameworks

      • 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.
      • Hybrid - System for reasoning using higher-order abstract syntax representations of object logics.
      • Iris - Higher-order concurrent separation logic framework.
      • CoqEAL - Framework to ease change of data representations in proofs.
      • Iris - Higher-order concurrent separation logic framework.
      • 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.
      • ConCert - Framework for smart contract testing and verification featuring a code extraction pipeline to several smart contract languages.
      • CoqEAL - Framework to ease change of data representations in proofs.
      • FCF - Framework for proofs of cryptography.
      • Fiat - Mostly automated synthesis of correct-by-construction programs.
      • FreeSpec - Framework for modularly verifying programs with effects and effect handlers.
      • Q\*cert - Platform for implementing and verifying query compilers.
      • SSProve - Framework for modular cryptographic proofs based on the Mathematical Components library.
      • VCFloat - Framework for verifying C programs with floating-point computations.
      • Verdi - Framework for formally verifying distributed systems implementations.
    • User Interfaces

      • CoqIDE - Standalone graphical tool for interacting with Coq.
      • Proof General - Generic interface for proof assistants based on the extensible, customizable text editor Emacs.
      • VsCoq Legacy - Backwards-compatible extension for the Visual Studio Code and VSCodium editors using Coq's legacy XML protocol.
      • Proof General - Generic interface for proof assistants based on the extensible, customizable text editor Emacs.
      • Coqtail - Interface for Coq based on the Vim text editor.
      • Coq LSP - Language server and extension for the Visual Studio Code and VSCodium editors with custom document checking engine.
      • Company-Coq - IDE extensions for Proof General's Coq mode.
      • opam-switch-mode - IDE extension for Proof General to locally change or reset the opam switch from a menu or using a command.
      • jsCoq - Port of Coq to JavaScript, which enables running Coq projects in a browser.
      • Jupyter kernel for Coq - Coq support for the Jupyter Notebook web environment.
      • VsCoq - Language server and extension for the Visual Studio Code and VSCodium editors.
      • Waterproof editor - Educational environment for writing mathematical proofs in interactive notebooks.
    • Package and Build Management

      • opam - Flexible and Git-friendly package manager for OCaml and Coq with multiple compiler support.
      • coq_makefile - Build tool distributed with Coq and based on generating a makefile.
      • Coq Package Index - Collection of Coq packages based on opam.
      • Debian Coq packages - Coq-related packages available in the testing distribution of Debian.
      • Docker-Coq GitHub Action - GitHub container action that can be used with Docker-Coq or Docker-MathComp.
      • Dune - Composable and opinionated build system for OCaml and Coq (former jbuilder).
      • Nix - Package manager for Linux and other Unix systems, supporting atomic upgrades and rollbacks.
      • Nix Coq packages - Collection of Coq-related packages for Nix.
      • Dune - Composable and opinionated build system for OCaml and Coq (former jbuilder).
      • Nix - Package manager for Linux and other Unix systems, supporting atomic upgrades and rollbacks.
      • opam - Flexible and Git-friendly package manager for OCaml and Coq with multiple compiler support.
    • Libraries

      • CoqInterval - Tactics for performing proofs of inequalities on expressions of real numbers.
      • Coq-std++ - Extended alternative standard library for Coq.
      • Flocq - Formalization of floating-point numbers and computations.
      • Paco - Library for parameterized coinduction.
      • Bignums - Library of arbitrarily large numbers.
      • CertiGraph - Library for reasoning about directed graphs and their embedding in separation logic.
      • Paco - Library for parameterized coinduction.
      • ALEA - Library for reasoning on randomized algorithms.
      • Algebra Tactics - Ring and field tactics for Mathematical Components.
      • Bignums - Library of arbitrarily large numbers.
      • Bedrock Bit Vectors - Library for reasoning on fixed precision machine words.
      • CoLoR - Library on rewriting theory, lambda-calculus and termination, with sub-libraries on common data structures extending the Coq standard library.
      • coq-haskell - Library smoothing the transition to Coq for Haskell users.
      • Coq-Kruskal - Collection of libraries related to rose trees and Kruskal's tree theorem.
      • Coq record update - Library which provides a generic way to update Coq record fields.
      • ExtLib - Collection of theories and plugins that may be useful in other Coq developments.
      • FCSL-PCM - Formalization of partial commutative monoids as used in verification of pointer-manipulating programs.
      • Formalised Undecidable Problems - Library of undecidable problems and reductions between them.
      • Hahn - Library for reasoning on lists and binary relations.
      • Interaction Trees - Library for representing recursive and impure programs.
      • LibHyps - Library of Ltac tactics to manage and manipulate hypotheses in proofs.
      • MathComp Extra - Extra material for the Mathematical Components library, including the AKS primality test and RSA encryption and decryption.
      • Mczify - Library enabling Micromega arithmetic solvers to work when using Mathematical Components number definitions.
      • Metalib - Library for programming language metatheory using locally nameless variable binding representations.
      • CertiGraph - Library for reasoning about directed graphs and their embedding in separation logic.
    • Plugins

      • Gappa - Tactic for discharging goals about floating-point arithmetic and round-off errors.
      • Itauto - SMT-like tactics for combined propositional reasoning about function symbols, constructors, and arithmetic.
      • Ltac2 - Experimental typed tactic language similar to Coq's classic Ltac language.
      • 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.
      • 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.
    • Tools

      • CFML - Tool for proving properties of OCaml programs in separation logic.
      • coqdoc - Standard documentation tool that generates LaTeX or HTML files from Coq code.
      • CoqOfOCaml - Tool for generating idiomatic Coq from OCaml code.
      • `find-bug.py` - Automatically minimizes source files producing an error, creating small test cases for Coq bugs.
      • `absolutize-imports.py` - Processes source files to make loading of dependencies robust against shadowing of file names.
      • `inline-imports.py` - Creates stand-alone source files from developments by inlining the loading of all dependencies.
      • `minimize-requires.py` - Removes loading of unused dependencies.
      • `move-requires.py` - Moves all dependency loading statements to the top of source files.
      • `move-vernaculars.py` - Lifts many vernacular commands and inner lemmas out of proof script blocks.
      • `proof-using-helper.py` - Modifies source files to include proof annotations for faster parallel proving.
      • Menhir - Parser generator that can output Coq code for verified parsers.
      • CoqOfOCaml - Tool for generating idiomatic Coq from OCaml code.
    • Type Theory and Mathematics

      • Coquelicot - Formalization of classical real analysis compatible with the standard library and focusing on usability.
      • Mathematical Components - Formalization of mathematical theories, focusing in particular on group theory.
      • Mathematical Components - Formalization of mathematical theories, focusing in particular on group theory.
    • Verified Software

      • 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.
      • Incremental Cycles - Verified OCaml implementation of an algorithm for incremental cycle detection in graphs.
      • 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 - Definitions and proofs for real-time system schedulability analysis.
      • Vélus - Verified compiler for a Lustre/Scade-like dataflow synchronous language.
      • 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.
      • Ceramist - Verified hash-based approximate membership structures such as Bloom filters.
      • Tarjan and Kosaraju - Verified implementations of algorithms for topological sorting and finding strongly connected components in finite graphs.
      • Vélus - Verified compiler for a Lustre/Scade-like dataflow synchronous language.