All Projects → namin → leanTAP

namin / leanTAP

Licence: other
A Declarative Theorem Prover for First-Order Classical Logic

Programming Languages

scheme
763 projects
clojure
4091 projects

Projects that are alternatives of or similar to leanTAP

ukanren-rs
Rust implementation of µKanren, a featherweight relational programming language.
Stars: ✭ 98 (+308.33%)
Mutual labels:  minikanren
TypesAndProofs
Type inference algorithms and intuitionistic propositional theorem provers solving type inhabitation problems
Stars: ✭ 23 (-4.17%)
Mutual labels:  theorem-prover
shen-minikanren
An embedding of miniKanren in Shen.
Stars: ✭ 24 (+0%)
Mutual labels:  minikanren
clpsmt-miniKanren
CLP(SMT) on top of miniKanren
Stars: ✭ 31 (+29.17%)
Mutual labels:  minikanren
anders
🧊 Модальний Гомотопічний Прувер
Stars: ✭ 5 (-79.17%)
Mutual labels:  theorem-prover
cicada
Cicada Language
Stars: ✭ 9 (-62.5%)
Mutual labels:  theorem-prover
WangsAlgorithm
A classical propositional theorem prover in Haskell, using Wang's Algorithm.
Stars: ✭ 34 (+41.67%)
Mutual labels:  theorem-prover
ostrich
An SMT Solver for string constraints
Stars: ✭ 18 (-25%)
Mutual labels:  theorem-prover
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.
Stars: ✭ 185 (+670.83%)
Mutual labels:  theorem-prover
kanren
An extensible, lightweight relational/logic programming DSL written in pure Python
Stars: ✭ 111 (+362.5%)
Mutual labels:  minikanren
symbolic-pymc
Tools for the symbolic manipulation of PyMC models, Theano, and TensorFlow graphs.
Stars: ✭ 58 (+141.67%)
Mutual labels:  minikanren
gominikanren
a Go implementation of miniKanren, an embedded Domain Specific Language for logic programming.
Stars: ✭ 28 (+16.67%)
Mutual labels:  minikanren
pyprover
Resolution theorem proving for predicate logic in pure Python.
Stars: ✭ 71 (+195.83%)
Mutual labels:  theorem-prover
Kind
A modern proof language
Stars: ✭ 2,075 (+8545.83%)
Mutual labels:  theorem-prover
eqsat
A language-generic implementation of equality saturation in Haskell
Stars: ✭ 15 (-37.5%)
Mutual labels:  theorem-prover

leanTAP: A Theorem Prover for First-Order Classical Logic

This project implements leanTAP in clojure.core.logic.nominal closely following the alphaleanTAP implementation described in alphaleanTAP: A Declarative Theorem Prover for First-Order Classical Logic (PDF) and chapter of 10 of William Byrd's thesis (PDF).

The alphaleantap directory contains the original implementation in Scheme.

The cljtap directory contains the implementation in Clojure, using core.logic.nominal.

Statistics

On the Pelletier problems, the Clojure implementation is roughly 1/3 faster on average than the original implementation tested with Petite Chez Scheme.

Chart with Clojure and Scheme results on Pelletier Problems

Warning: the results in the spreadsheet are based on a single run of each implementation. It would still be interesting for core.logic's sake to understand why the implementation in Clojure performs much worse on Problem 20 than the original one in Petite Chez Scheme.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].