A Constraint
consists of an optional lower and upper bound (inclusive),
constraining a value to a set of the form ∅
, {x}
, [x, y]
, [x, ∞)
, (-∞, y]
, or (-∞, ∞)
.
An optional lower bound on a integer.
Equations
Instances For
An optional upper bound on a integer.
Equations
Instances For
A lower bound at x
is satisfied at t
if x ≤ t
.
Equations
Instances For
A upper bound at y
is satisfied at t
if t ≤ y
.
Equations
Instances For
A Constraint
consists of an optional lower and upper bound (inclusive),
constraining a value to a set of the form ∅
, {x}
, [x, y]
, [x, ∞)
, (-∞, y]
, or (-∞, ∞)
.
- lowerBound : LowerBound
A lower bound.
- upperBound : UpperBound
An upper bound.
Instances For
A constraint is satisfied at t
is both the lower bound and upper bound are satisfied.
Equations
Instances For
Apply a function to both the lower bound and upper bound.
Equations
Instances For
Translate a constraint.
Equations
Instances For
Negate a constraint. [x, y]
becomes [-y, -x]
.
Equations
Instances For
The trivial constraint, satisfied everywhere.
Equations
Instances For
The impossible constraint, unsatisfiable.
Equations
Instances For
An exact constraint.
Equations
Instances For
Check if a constraint is unsatisfiable.
Equations
Instances For
Check if a constraint requires an exact value.
Equations
Instances For
Scale a constraint by multiplying by an integer.
- If
k = 0
this is either impossible, if the original constraint was impossible, or the= 0
exact constraint. - If
k
is positive this takes[x, y]
to[k * x, k * y]
- If
k
is negative this takes[x, y]
to[k * y, k * x]
.
Equations
Instances For
The sum of two constraints. [a, b] + [c, d] = [a + c, b + d]
.
Equations
Instances For
A linear combination of two constraints.
Equations
Instances For
The conjunction of two constraints.
Equations
Instances For
Dividing a constraint by a natural number, and tightened to integer bounds. Thus the lower bound is rounded up, and the upper bound is rounded down.
Equations
Instances For
It is convenient below to say that a constraint is satisfied at the dot product of two vectors,
so we make an abbreviation sat'
for this.
Equations
Instances For
Normalize a constraint, by dividing through by the GCD.
Return none
if there is nothing to do, to avoid adding unnecessary steps to the proof term.
Equations
Instances For
Normalize a constraint, by dividing through by the GCD.
Equations
Instances For
Multiply by -1
if the leading coefficient is negative, otherwise return none
.
Equations
Instances For
Multiply by -1
if the leading coefficient is negative, otherwise do nothing.
Equations
Instances For
The value of the new variable introduced when solving a hard equality.
Equations
Instances For
The coefficients of the new equation generated when solving a hard equality.