pub enum BoolExp<Identifier> {
Show 21 variants
Const(bool),
Var(VarRef<Identifier>),
Not(Box<BoolExp<Identifier>>),
And(Vec<BoolExp<Identifier>>),
Or(Vec<BoolExp<Identifier>>),
Xor(Vec<BoolExp<Identifier>>),
Equiv(Vec<BoolExp<Identifier>>),
Implies(Box<BoolExp<Identifier>>, Box<BoolExp<Identifier>>),
LessThan(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>),
LessThanEq(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>),
GreaterThan(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>),
GreaterThanEq(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>),
NotEqual(Box<Exp<Identifier>>, Box<Exp<Identifier>>),
Equal(Vec<Exp<Identifier>>),
Member(Box<IntExp<Identifier>>, Box<SetExp<Identifier>>),
Disjoint(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>),
SubSet(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>),
SubSetEq(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>),
SuperSet(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>),
SuperSetEq(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>),
Convex(Box<SetExp<Identifier>>),
}Expand description
Expression resulting in a Boolean value or decision variable
Variants§
Const(bool)
Boolean constant
When serialized Boolean values false and true are represented by
integer values 0 and 1.
Var(VarRef<Identifier>)
Reference to a variable or array access
Not(Box<BoolExp<Identifier>>)
Logical not (i.e., ¬x)
And(Vec<BoolExp<Identifier>>)
Logical and (i.e., x1 ∧ …∧ xn)
Or(Vec<BoolExp<Identifier>>)
Logical or (i.e., x1 ∨ … ∨ xn)
Xor(Vec<BoolExp<Identifier>>)
Logical xor (i.e., x1 ⊕ … ⊕ xn)
Equiv(Vec<BoolExp<Identifier>>)
Logical equivalence (i.e., x1 ⇔ … ⇔ xn)
Implies(Box<BoolExp<Identifier>>, Box<BoolExp<Identifier>>)
Logical implication (i.e., x ⇒ y)
LessThan(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>)
Less than (i.e., x < y)
LessThanEq(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>)
Less than or equal (i.e., x ≤ y)
GreaterThan(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>)
Greater than (i.e., x > y)
GreaterThanEq(Box<IntExp<Identifier>>, Box<IntExp<Identifier>>)
Greater than or equal (i.e., x ≥ y)
NotEqual(Box<Exp<Identifier>>, Box<Exp<Identifier>>)
Different From (i.e., x ≠ y)
Equal(Vec<Exp<Identifier>>)
Equal to (i.e., x1 = … = xr)
Member(Box<IntExp<Identifier>>, Box<SetExp<Identifier>>)
Membership (i.e., x ∈ s)
Disjoint(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>)
Disjoint sets (i.e., s ∩ t = ∅)
SubSet(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>)
Strict subset (i.e., s ⊂ t)
SubSetEq(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>)
Subset or equal to (i.e., s ⊆ t)
SuperSet(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>)
Strict superset (i.e., s ⊃ t)
SuperSetEq(Box<SetExp<Identifier>>, Box<SetExp<Identifier>>)
Superset or equal to (i.e., s ⊇ t)
Convex(Box<SetExp<Identifier>>)
Convexity (i.e., s = {i : min s ≤ i ≤ max s})