Patrick Lühne
8e32b58c99
The type aliases for vectors of formulas and terms were defined as vectors of boxed formulas and terms, respectively. This is an unnecessary indirection, so store the formulas and terms directly. |
||
---|---|---|
.github/workflows | ||
src | ||
.gitignore | ||
Cargo.toml | ||
LICENSE.md | ||
README.md |
foliage
First-order logic with integer arithmetics in Rust
This Rust crate provides an abstract syntax tree for first-order formulas with integer arithmetics.
Supported Formulas
- Booleans values (
true
andfalse
) - predicates
- negated formulas
- comparisons of terms (<, ≤, >, ≥, =, ≠)
- implications and biconditionals
- conjunctions and disjunctions of formulas
- existentially and universally quantified formulas
Supported Terms
- Boolean values (
true
andfalse
) - integers
- strings
- special integers (infimum and supremum)
- symbolic functions
- variables
- binary operations (addition, subtraction, multiplication, division, modulo, exponentiation)
- unary operations (absolute value, numeric negation)