pub struct Verifier { /* private fields */ }Expand description
Low-level Z3-based verifier for single-shot validity checks.
The verifier uses a 10-second timeout by default. For more complex
proofs with multiple constraints, use VerificationSession instead.
§Examples
ⓘ
use logicaffeine_verify::Verifier;
let verifier = Verifier::new();
// Boolean validity
assert!(verifier.check_bool(true).is_ok());
assert!(verifier.check_bool(false).is_err());
// Integer bounds
assert!(verifier.check_int_greater_than(10, 5).is_ok());Implementations§
Source§impl Verifier
impl Verifier
Sourcepub fn check_bool(&self, value: bool) -> VerificationResult
pub fn check_bool(&self, value: bool) -> VerificationResult
Sourcepub fn check_int_greater_than(
&self,
value: i64,
bound: i64,
) -> VerificationResult
pub fn check_int_greater_than( &self, value: i64, bound: i64, ) -> VerificationResult
Sourcepub fn check_int_less_than(&self, value: i64, bound: i64) -> VerificationResult
pub fn check_int_less_than(&self, value: i64, bound: i64) -> VerificationResult
Sourcepub fn check_int_equals(&self, left: i64, right: i64) -> VerificationResult
pub fn check_int_equals(&self, left: i64, right: i64) -> VerificationResult
Sourcepub fn context(&self) -> VerificationContext
pub fn context(&self) -> VerificationContext
Create a verification context for more complex proofs.
Use this when you need to build custom verification logic with multiple variables and constraints.
§Examples
ⓘ
use logicaffeine_verify::Verifier;
use z3::ast::Bool;
let verifier = Verifier::new();
let ctx = verifier.context();
let solver = ctx.solver();
// P ∨ ¬P is a tautology
let p = ctx.bool_var("p");
let tautology = Bool::or(&[&p, &p.not()]);
assert!(ctx.check_valid(&solver, &tautology).is_ok());Trait Implementations§
Auto Trait Implementations§
impl Freeze for Verifier
impl RefUnwindSafe for Verifier
impl Send for Verifier
impl Sync for Verifier
impl Unpin for Verifier
impl UnsafeUnpin for Verifier
impl UnwindSafe for Verifier
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