Skip to content

Trebor-Huang/first-order-logic-solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

first-order-logic-solver

A simple first order logic solver

Internal Representation

Uses a locally nameless approach.

A uniform Bind node is used for every binding, including forall, exists.

Uses tuples to ease pattern matching in Python. The first component signifies the type of nodes, and the rest contains additional information or subtrees.

A conjunctive normal form is represented by a frozenset of disjunctive clauses, together with justifications for each of them.

Algorithm

Naive resolution and paramodulation is used.

REPL

Provides a simple interface to introduce functions and predicates, state axioms, produce step by step proofs. Each of the steps just states an implication of the previously proved statements -- the implication is checked by the machine.

About

A simple first order logic solver

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages