Commit Graph

7 Commits

Author SHA1 Message Date
Patrick Lühne 3b7394a43e
Support quantified expressions with 0 parameters 2020-04-09 16:07:33 +02:00
Patrick Lühne 9a8013f1cb
Support empty n-aries 2020-04-09 16:07:33 +02:00
Patrick Lühne 1c00e5be16
Continue parsing formulas 2020-04-09 16:07:29 +02:00
Patrick Lühne 3530364ea8
Implement variable parsing 2020-04-09 16:07:28 +02:00
Patrick Lühne 896af02120
Start parsing terms 2020-04-09 16:07:28 +02:00
Patrick Lühne 549f127729
Derive simple enums from basic traits
This adds derive statements from Copy, Clone, PartialEq, and Eq to the
operator enums as well as SpecialInteger.
2020-03-30 06:37:21 +02:00
Patrick Lühne a446aed011
Initial commit
This provides an abstract syntax tree for first-order logic with integer
arithmetics. Initially, the following types of formulas are supported:

- Booleans values (true and false)
- predicates
- negated formulas
- comparisons of terms (<, ≤, >, ≥, =, ≠)
- implications and biconditionals
- conjunctions and disjunctions of formulas
- existentially and universally quantified formulas

In addition, these types of terms are provided:

- 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)
2020-02-05 03:23:11 +01:00