pub enum VerifyOp {
Show 14 variants
Add,
Sub,
Mul,
Div,
FloorDiv,
Eq,
Neq,
Gt,
Lt,
Gte,
Lte,
And,
Or,
Implies,
}Expand description
Binary operations in the verification IR.
Operations are grouped by category:
- Arithmetic:
Add,Sub,Mul,Div(Int × Int → Int) - Comparison:
Eq,Neq,Gt,Lt,Gte,Lte(Int × Int → Bool) - Logic:
And,Or,Implies(Bool × Bool → Bool)
Variants§
Add
Addition.
Sub
Subtraction.
Mul
Multiplication.
Div
Integer division (Euclidean, matching Z3’s div).
FloorDiv
Floor division (a // b) — the quotient rounded toward negative infinity, exactly.
Encoded as to_int(to_real(a) / to_real(b)) (Z3’s to_int is the floor function),
which is precise across every sign combination — unlike VerifyOp::Div, whose
Euclidean rounding only coincides with floor when the divisor is positive.
Eq
Equality.
Neq
Inequality.
Gt
Greater than.
Lt
Less than.
Gte
Greater than or equal.
Lte
Less than or equal.
And
Conjunction.
Or
Disjunction.
Implies
Material implication.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for VerifyOp
impl<'de> Deserialize<'de> for VerifyOp
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Copy for VerifyOp
impl Eq for VerifyOp
impl StructuralPartialEq for VerifyOp
Auto Trait Implementations§
impl Freeze for VerifyOp
impl RefUnwindSafe for VerifyOp
impl Send for VerifyOp
impl Sync for VerifyOp
impl Unpin for VerifyOp
impl UnsafeUnpin for VerifyOp
impl UnwindSafe for VerifyOp
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more