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

awesome-rust-formalized-reasoning

An exhaustive list of all Rust resources regarding automated or semi-automated formalization efforts in any area, constructive mathematics, formal algorithms, and program verification.
https://github.com/newca12/awesome-rust-formalized-reasoning

Last synced: 5 days ago
JSON representation

About ##

Books code

Libraries

  • numerous
  • logic-rs - meaning-and-argument/lepore-about-the-book)β­πŸ’€ - parser of relational predicate logic & truth tree solver
  • plar-rs - rs) - exploring John Harrison's Handbook of Practical Logic and Automated Reasoning.
  • tapl - implementation of TAPL.
  • TAPL in Rust - collection of implementations of TAPL (Chap 3-10,17,25).
  • The Little Prover - little-prover) - transpiled J-Bob assistant & GUI frontend.
  • the-little-typer - little-typer) - a Rust take on D.Friedman's book.
  • tnt - implementation of Hofstader's "Typographical Number Theory" from the book GΓΆdel, Escher & Bach.
  • types-and-programming-languages - Exercises from TAPL textbook + extras! (Chap 5-7,9-10)
  • TAPL Implementations - collection of implementations of TAPL (Chap 3-7,9,11,13-14,19,22).
  • program-proofs-prusti - proofs.com/) - examples and exercises from the book Program Proofs by K. Rustan M. Leino.
  • harrison-rust - library for SAT solving and automated theorem proving derived from the book.

Kanren

Libraries

  • Canrun - logic programming library inspired by the *Kanren family of language DSLs.
  • miniKANREN - kanren)πŸ’€ - miniKANREN as a DSL.
  • rslogic - logic programming framework for Rust inspired by Β΅Kanren.
  • rust-kanren - loose interpretation of miniKanren and cKanren.
  • Β΅Kanren-rs - implementation of Β΅Kanren.

Lambda Calculus

Libraries

  • ~~lambda_calc~~ - command-line untyped lambda calculus interpreter.
  • lalrpop-lambda - lambda)⭐ - Ξ»-calculus grammar/interpretor written using LALRPOP and Ξ»!.
  • blc - implementation of the binary lambda calculus.
  • Closure Calculus - library for Barry Jay's Closure Calculus.
  • lam - lambda calculus evaluator.
  • Lamb - implementation of the pure untyped lambda calculus in modern, safe Rust.
  • lambash - Ξ»-calculus shell.
  • lambda_calculus - simple, zero-dependency implementation of pure lambda calculus in safe Rust.
  • lambda_calculus - lambda calculus with antlr grammar.
  • lambdacube - implementation of the lambda cube (and other type stuff).
  • Lambda Shell - simple REPL shell for untyped lambda expressions.
  • Lambdascript - educational tool illustrating beta reduction of untyped lamba terms.
  • Lamcal - repl)πŸ’€ - lambda calculus parser and evaluator and a separate command line REPL.
  • Pun Calculus - variant of Typed Lambda Calculus with generalized variable punning (ad-hoc polymorphism).
  • RLCI - Overly-documented Lambda Calculus Interpreter.
  • type-theory - typed Ξ»-calculus.

Programming Language

Libraries

  • beta - dependently-typed programming language, aiming to support a cubical interpretation of univalence.
  • egglog - language that combines the benefits of equality saturation and datalog.
  • Fathom - declarative data definition language for formally specifying binary data formats.
  • High-order Virtual Machine (HVM) - massively parallel, optimal functional runtime.
  • isotope-prover-experiments - proposal/-/blob/main/report.tex)πŸ₯ΌπŸ’€ - experimental dependently typed language supporting borrow checking.
  • Kind - next-gen functional language and proof assistant.
  • Last Order Logic - experimental logical language.
  • minihl - formal methods playgorund for MiniHeapLang language.
  • minitt-rs - util)β­πŸ’€ - became Voile.
  • Narc - dependently-typed programming language with Agda style dependent pattern matching.
  • Pika - small, performance-oriented, dependently typed ML with algebraic effects and unboxed types..
  • Pikelet - small, functional, dependently typed programming language.
  • proto-vulcan - vulcan)πŸ“¦ - miniKanren-family relational logic programming language.
  • Rust pi-forall - forall/blob/2022/doc/oplss.pdf) - partial re-implementation of pi-forall.
  • Scryer Prolog - prolog)⭐ - modern Prolog implementation.
  • SMT-language - lang) - Sat Modulo Theory Language.
  • stupid-see - symbolic execution engine. Mainly targeted at the verification course in THU.
  • tako - experimental programming language for ergonomic software verification.
  • TIP - programming language aimed at teaching fundamental concepts of static program analysis.
  • Untyped Concatenative Calculus - toy programming language and prototype for Dawn.
  • Untyped Multistack Concatenative Calculus - toy programming language and prototype for Dawn.
  • Voile - util)β­πŸ’€ - became Narc.
  • zz - zymbolic verifier and tranzpiler to bare metal C.
  • rooc - a language for compiling formal mathematical models into static models.
  • Interaction Calculus - calculus)⭐ - programming language (fit the optimal Ξ»-calculus reduction algorithm perfectly).
  • norem-lang - pure functional programming language with automatic verification and effect system.
  • reckon - programming language designed for reasoning tasks, proof checking, and logical inferencing.
  • Last Order Logic - experimental logical language.
  • Logicaffeine - language)πŸ“¦πŸ“¦πŸ“¦πŸ“¦πŸ“¦πŸ“¦πŸ“¦πŸ“¦πŸ“¦β­ - LOGOS compiles your words into programs, proofs, and formal systems.
  • Lean-Claude - rewrite Lean4 Compiler in Rust, using only Claude Code.
  • High-order Virtual Machine (HVM) - massively parallel, optimal functional runtime.

Projects

Libraries

  • logic-parser - parser)πŸŽ“ - library for lexing, parsing and visualizing logical expressions.
  • mm0-rs - slides.pdf)πŸ₯Ό - MM0/MM1 server and utilities.
  • ~~rust-unify~~ - unify) ♻️πŸ₯Ό - unification algorithum implementation.
  • lpsolve - sys)πŸ’€ - high-level lpsolve wrapper.
  • CNF Parser - parser)πŸ’€ - efficient and customizable parser for the .cnf file format.
  • coq-rs - this program can parse Coq .vo files.
  • DIMACS Parser - utilities to parse files in DIMACS .cnf or .sat file format.
  • Exec-SAT - sat)🐀 - provides routines to parse SAT solver output and to execute SAT solver.
  • Flussab CNF - cnf) - parsing and writing of the DIMACS CNF file format.
  • FRAT-rs - toolchain for processing and transforming files in the FRAT format.
  • Lambda Calculus Parser - Ξ»-calculus parser.
  • Lambda Term Parsing - explores different parser designs for a simple lambda term grammar.
  • logic-form - form)🐀 - library for representing Cube, Clause, CNF and DNF.
  • lp_parser_rs - LP file parser.
  • mmb-parser - parser) - parser for the Metamath Zero binary proof format.
  • mps - fast MPS parser.
  • olean-rs - parser/viewer for olean files.
  • RustLogic - march1917) - parsing and handling simple logical expressings.
  • smt2 - SMT-LIB 2 parsing library.
  • tptp - parse the TPTP format.
  • boolector - safe high-level bindings for the Boolector SMT solver.
  • bitwuzla-sys - sys) - low-level bindings for the Bitwuzla SMT solver.
  • boolector-sys - sys) - low-level bindings for the Boolector SMT solver.
  • cadical-rs - bindings for the CaDiCaL SAT solver.
  • cat_solver - bindings for the Kissat SAT solver.
  • cplex-rs - rs)πŸ“¦ - safe rust bindings for CPLEX.
  • cryptominisat-rs - bindings for CryptoMiniSat.
  • falcon-z3 - z3) - bindings for Z3.
  • highs - safe rust bindings for the HiGHS linear programming solver.
  • highs-sys - sys) - bindings for the HiGHS linear programming solver.
  • IPASIR - FFI bindings for the IPASIR incremental SAT solver interface.
  • isabelle-client - client) - client to interact with an Isabelle server.
  • Kissat-rs - bindings for the Kissat SAT solver.
  • lean-sys - sys) - bindings to Lean 4's C API.
  • libsmt.rs - bindings for SMTLIB2.
  • LogicNG - library for creating, manipulating and solving Boolean and Pseudo-Boolean formulas.
  • maxpre-rs - bindings for the (multi-objective) MaxSAT preprocessor MaxPre.
  • pblib-rs - rs) - safe bindings for pblib.
  • rplex - bindings for CPLEX.
  • rsmt2 - zz)β­πŸ’€ - generic library to interact with SMT-LIB 2 compliant solvers.
  • russcip - safe Rust interface for SCIP.
  • Rust-SMT-LIB-API - generic high-level API for interacting with SMT solvers.
  • rust_z3prover - use Z3 SMT solver from rust.
  • rustproof-libsmt - libsmt)πŸ’€ - fork of libsmt.rs.
  • SAT Nexus - interfaces and wrappers for SAT solvers.
  • scip-sys - sys) - raw rust bindings to SCIP.
  • smt_sb-rs - rs) - Z3 SMT Simple Binding.
  • smtlib - lowlevel)πŸ“¦ - high-level API for interacting with SMT solvers.
  • vipers - crates for interacting with the Viper verification infrastructure.
  • Yices2 - sys) - low and high-level bindings to the Yices2 SMT solver.
  • z3 - sys)⭐πŸ”₯ - high-level and low-level Rust bindings for the Z3 solver.
  • z3-rust - high level bindings for the Microsoft's Z3 SMT solver.
  • Z3D - Z3 DSL interface.
  • anthem - translate answer set programs to first-order theorem prover language.
  • bool2dimacs - transfer boolean expression to dimacs directly.
  • CNFGEN - create boolean formulae from boolean expressions and integer expressions.
  • Cnfpack - converts between DIMACS CNF file format and the compressed binary Cnfpack format.
  • hz-to-mm0 - translator from HOL Zero / Common HOL to Metamath Zero.
  • Metamath hammer - tool for automatically proving Metamath theorems using ATPs.
  • rust-smt-ir - smt-ir)πŸ“¦β­ - intermediate representation (IR) in Rust for SMT-LIB queries.
  • AbsoluteUnity - think Prolog, but less capable.
  • Alice_rs - implementation of a decision procedure for A Decidable Fragment of Separation Logic.
  • auto - decision procedure for intuitionistic logic.
  • Avatar Hypergraph Rewriting - hypergraph rewriting system with avatars for symbolic distinction.
  • coc - the calculus of constructions.
  • compiler - compiler)πŸ€πŸ’€ - trivial compiler framework for Metamath Zero binary proofs.
  • discrimination-tree - tree) - discrimination tree term indexing.
  • easy-smt - smt)⭐ - easy SMT solver interaction (Inspired by the simple-smt haskell package.).
  • egg - flexible, high-performance e-graph library.
  • epilog - collection of Prolog-like tools for inference logic.
  • FALL - easily embeddable, futures-friendly logic engine.
  • foliage - first-order logic with integer arithmetics.
  • fuzzylogic - provides operations and inference for fuzzy set theory.
  • Joker Calculus - implementation of Joker Calculus in Rust.
  • Kravanenn - set of tools for Coq.
  • logic-lang - lang) - structural logic based on equivalence graphs.
  • logical_solver - library for solving and parsing logical equations.
  • LogRu - small, embeddable and fast interpreter for a subset of Prolog.
  • mmb-binutils - utility tools for Metamath Zero binary proof files.
  • mmb-types - types)πŸ’€ - library containing the definitions of the opcodes in the Metamath Zero binary proof files.
  • moniker - derive)β­πŸ’€ - automagical variable binding library.
  • nanoda - became nanoda-lib.
  • nanoda_lib - type inference/checking functionality based on the Lean theorem prover.
  • nnf - Negation Normal Form manipulation library.
  • polytype - Hindley-Milner polymorphic typing system.
  • program-induction - library for program induction and learning representations.
  • ruler - rewrite rule inference using equality saturation.
  • Rust First Order Logic - syntax of First Order Logic with self-consistent logical assertions.
  • rust-nbe-for-mltt - normalization by evaluation for Martin-LΓΆf Type Theory with dependent records.
  • rust-smt-strings - smt-strings) - library for strings as defined in the SMT-LIB theory of strings.
  • RustSAT - batsat)πŸ“¦πŸ“¦πŸ“¦πŸ“¦πŸ“¦πŸ“¦πŸ“¦β­ - provide elements commonly used in satisfiability solving software.
  • Rusty Razor - fol)πŸ“¦β­πŸ’€ - tool for constructing finite models for first-order theories.
  • sat_toasty_helper - convenient way to write and solve SAT constraints.
  • Satoxid - library to help with encoding SAT problems.
  • smt2utils - libraries and tools for the SMT-LIB-2 standard.
  • smtlib-syntax - syntax) - syntactic types the for the SMT-LIB 2.6 spec. Meant for code generation, not parsing.
  • term-rewriting-rs - representing, parsing, and computing with first-order term rewriting systems.
  • tribool - three-valued logic.
  • The Trivial Metamath Zero kernel - kernel)πŸ’€ - Metamath Zero kernel for Trivial.
  • Whisper - logic Programming DSL.
  • clingo-rs - derive)πŸ“¦β­ - idiomatic bindings to the clingo library.
  • Patronus - btor2 parser, wip hardware bug-finding toolkit.
  • isabelle export tool - parser for isabelle database files.
  • rssat - bindings for multiple popular SAT solvers, superseded by satgalaxy-rs.
  • Decdnnf-rs - translating formulas generated by d4 into the format generated by c2d.
  • cadical-sys - sys) - almost complete safe and unsafe bindings for the CaDiCal SAT solver.
  • EasyZ3 - simplified API to get started with the z3 SAT solver.
  • lean-sys - sys)⭐ - bindings to Lean 4's C API.
  • satgalaxy-rs - FFI bindings for satgalaxy-core bringing high-performance SAT solving to Rust.
  • pindakaas - cadical)πŸ“¦πŸ“¦πŸ“¦πŸ“¦ - transform integer and pseudo Boolean constraints into conjunctive normal form.
  • rsmaxsat - bindings for EvalMaxSAT .
  • Espresso Logic Minimizer - logic)πŸ“¦ - bindings to the Espresso heuristic logic minimiser from UC Berkeley.
  • CNFGEN 2 - newer version of CNFGEN - DIMACS CNF generator.
  • smt-str - str) - data structures and utilities to parse, manipulate, and reason about SMT-LIB strings.
  • Joker Calculus - implementation of Joker Calculus in Rust.
  • program-induction - library for program induction and learning representations.
  • vampire-rs - prover)πŸ“¦ - safe Rust bindings to the Vampire theorem prover for first-order logic with equality.
  • Yaspar - a parser for the SMT-LIB 2.7 language generated by the LARLPOP parser generator.
  • Logician - type-safe SMT solver driver.
  • sat-interface - interface) - abstraction interface for SAT solvers.
  • sat-solvers - solvers) - unified Rust interface to multiple SAT solvers with automatic source compilation.
  • Yaspar-IR - ir) - provides a few representations of SMT scripts and other functionalities.
  • Leo3 - ffi)πŸ“¦πŸ“¦ - safe, ergonomic Rust bindings to the Lean4 theorem prover, inspired by PyO3's architecture..
  • cvc5-rs - rs)πŸ“¦ - safe, high-level Rust bindings for the cvc5 SMT solver.
  • xmt-lib - lib) - grounder for SMT solvers.
  • logic-form - form)🐀 - library for representing Cube, Clause, CNF and DNF.
  • cplex-rs - rs)πŸ“¦ - safe rust bindings for CPLEX.

Provers and Solvers

  • ~~cobalt~~ - a wip minimal proof assistant.
  • Proost - simple proof assistant.
  • meancop - became CoP.
  • lazyCoP - automatic theorem prover for first-order logic with equality.
  • lerna - proves theorems.
  • lickety - prototype system for linear resolution with splitting.
  • Serkr - automated theorem prover for first order logic with equality.