Expand description
Data structures and algorithms for clausal and nonclausal connection proof search.
This crate provides a multitude of fast data structures and associated algorithms for connection proof search in first-order logic, such as formulas, literals, terms, substitutions, clauses, matrices, … This is significantly based on the work “Efficient Low-Level Connection Tableaux” (2015) by Cezary Kaliszyk, in particular the idea of offset terms/clauses.
This crate should allow you to build own, customised connection provers without having to do all the foundational work necessary otherwise.
Re-exports§
Modules§
- fof
- First-order formulas and various normal forms.
- lean
- Clausal proof search à la leanCoP.
- nano
- Nonclausal proof search à la nanoCoP.
- offset
- Offset objects.
- role
- Formula roles and mapping from roles to formulas.
- szs
- SZS ontologies.
- tptp
- TPTP parsing.
Structs§
- App
- Application of argument(s) to a head.
- Args
- A sequence of arguments of type
T
. - Clause
- Clause of literals
L
. - Db
- A database maps (signed) literal heads
P
to contrapositivesCP
. - Matrix
- A matrix is a conjunction of clauses
C
. - Signed
- Wrapper around an object to store a sign (+/-) along it.
- Subst
- Map from variables (
usize
) toT
that can be efficiently restored to earlier states. - Symbol
- Shared string with fast cloning, hashing, and equality check.
Enums§
- LitMat
- A litmat is either a literal or a matrix.
- PutRewind
- Rewind a
T
either by replacing it with someT
or by rewinding it with another rewinder forT
. - Term
- First-order logic term.
Traits§
- Rewind
- Restore the state of mutable data structures.
Functions§
- nonfunctional
- Return the keys that are mapped to more than one different value.
- union1
- Remove all elements of
v2
fromv1
and appendv2
to the result. - union2
- Compute the union of two vectors, removing duplicates from the first one.
Type Aliases§
- Lit
- Literal, i.e. application of term arguments (containing constants
C
and variablesV
) to predicateP
.