Patrick Lühne
153f77621e
As the absolute value operation has its own type of parentheses, it never needs to take precedence over other terms in order to be displayed correctly. To avoid extraneous parentheses around absolute value operations, set its precedence level to 0. |
||
---|---|---|
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)