Go to file
Patrick Lühne 2fa592576b
Take reference-counted arguments by value
These reference-counted arguments were taken by reference, which made it
necessary to clone them. If a reference-counted object is created for the
sole purpose of being passed to one of these methods, it would be cloned
unnecessarily. This changes the signatures to take these arguments by
value, shifting the responsibility of cloning the reference-counted
objects to the users of these methods.
2020-04-13 22:09:43 +02:00
.github/workflows Test crate with GitHub Actions 2020-04-09 15:34:49 +02:00
src Take reference-counted arguments by value 2020-04-13 22:09:43 +02:00
.gitignore Initial commit 2020-02-05 03:23:11 +01:00
Cargo.toml Initial commit 2020-02-05 03:23:11 +01:00
LICENSE.md Initial commit 2020-02-05 03:23:11 +01:00
README.md Remove redundant release badge 2020-02-25 15:27:24 +01:00

foliage crates.io

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 and false)
  • predicates
  • negated formulas
  • comparisons of terms (<, ≤, >, ≥, =, ≠)
  • implications and biconditionals
  • conjunctions and disjunctions of formulas
  • existentially and universally quantified formulas

Supported Terms

  • Boolean values (true and false)
  • integers
  • strings
  • special integers (infimum and supremum)
  • symbolic functions
  • variables
  • binary operations (addition, subtraction, multiplication, division, modulo, exponentiation)
  • unary operations (absolute value, numeric negation)