awesome-rust-formalized-reasoning icon indicating copy to clipboard operation
awesome-rust-formalized-reasoning copied to clipboard

An exhaustive list of all Rust resources regarding automated or semi-automated formalization efforts in any area, constructive mathematics, formal algorithms, and program verification.

About

An exhaustive list of all Rust resources regarding automated or semi-automated formalization efforts in any area, constructive mathematics, formal algorithms, and program verification.

As of May 29, 2022, proof of computation & cryptographic stuff are considered off-topic.

awesome-rust-formalized-reasoning is an EDLA project.

The purpose of edla.org is to promote the state of the art in various domains.

Contents

  • Projects
    • Provers & Solvers
      • Provers TPTP compliant
      • SAT Solver
      • Proof assistant
      • Misc
    • Verification
      • Static Analysis & Rust verification tools
      • Misc
    • Libraries
      • Parser
      • Bindings
      • Translator
      • Misc
    • Books code
    • Programming Language
    • Kanren
    • Lambda Calculus
    • Propositional Logic
    • Unclassified
  • Resources
    • Books
    • Crates keywords
    • Research Paper & Thesis
    • Demos
    • Blogs
    • Posts
    • Community

Legend

  • Abandoned :skull:
  • Best in Class :diamonds:
  • Book implementation :book:
  • Crate(s) :package:
  • Crates keyword fully listed :100:
  • Deleted by author :recycle:
  • Exhumated :ghost:
  • Inactive :zzz:
  • List of resources :information_source:
  • Popular :star:
  • Research paper implementation :lab_coat:
  • Toy project :baby_chick:
  • Video :tv:
  • WIP :construction:

Projects

Provers and Solvers

Provers TPTP compliant

  • CoP :package: - reimplement automated theorem provers of the leanCoP family, such as leanCoP and nanoCoP.
  • lazyCoP - automatic theorem prover for first-order logic with equality.
  • lerna :skull: - proves theorems.
  • lickety - prototype system for linear resolution with splitting.
  • meancop :package::skull: - became CoP.
  • Serkr :ghost: :star: - automated theorem prover for first order logic with equality.

SAT Solver

Proof assistant

  • cobalt :construction: - a wip minimal proof assistant.
  • Esther :construction: - simple automated proof assistant.
  • LSTS :package::star: - proof assistant that is also a programming language.
  • Noq :tv::star: - Not Coq. Simple expression transformer that is not Coq.
  • Poi :package::star: - pragmatic point-free theorem prover assistant.
  • qbar :package: - experimental automated theorem verifier/prover and proof assistant.

Misc

Verification

Static Analysis & Rust verification tools

Misc

Libraries

Parser

Bindings

Translator

  • anthem - translate answer set programs to first-order theorem prover language.
  • Cnfpack :package: - converts between DIMACS CNF file format and the compressed binary Cnfpack format.
  • hz-to-mm0 - translator from HOL Zero / Common HOL to Metamath Zero.

Misc

Books code

There is numerous implementations of TAPL :book:, we keep only the most popular and keep an eye on implementations that worth attention.

  • logic-rs :book::skull::star: - parser of relational predicate logic & truth tree solver
  • plar-rs :book::ghost: - exploring John Harrison's Handbook of Practical Logic and Automated Reasoning.
  • tapl - implementation of TAPL.
  • TAPL in Rust :star: - another collection of implementations of TAPL.
  • tnt :book::package: - implementation of Hofstader's "Typographical Number Theory" from the book Gödel, Escher & Bach.
  • types-and-programming-languages :star: - Exercises from Benjamin Pierce's TAPL textbook + extras!

Programming Language

Kanren

Lambda Calculus

Propositional logic

Unclassified

  • formal-systems-learning-rs - simulations to learn formal systems as typed first-order term rewriting systems.
  • list-routine-learning-rs - simulations to learn typed first-order term rewriting systems that perform list routines.
  • Minimal models - uses a SAT solver to find minimal partial assignments that are model of a CNF formula.
  • n-queens-sat - modelling n-queens problem as conjunctive normal form and solving it with DPLL algorithm.
  • nonogrid :package: - lightning fast nonogram solver.
  • rummy_to_sat - implementation of a solver for Rummy.
  • sudoku_sat - solve Sudoku variants with SAT solvers.
  • Supermux - reduction of the superpermutation problem to Quantified Boolean Formula.
  • Supersat - attempt to find superpermutations by reducing the problem to SAT.
  • tarpit-rs :star: - type-level implementation of Smallfuck in Rust. Turing-completeness proof for Rust's type system.

Resources

Books

Research Paper & Thesis

Demos

Blogs

Posts

Crates keywords

Community