pub struct TranslationValidator { /* private fields */ }Expand description
Translation validator over the configured SMT engine (see
crate::solver::new_solver: ordeal by default, optionally
cross-checked against Z3 when SYNTH_SOLVER_DIFF=1).
Implementations§
Source§impl TranslationValidator
impl TranslationValidator
Sourcepub fn set_timeout(&mut self, timeout_ms: u64)
pub fn set_timeout(&mut self, timeout_ms: u64)
Set verification timeout in milliseconds
Sourcepub fn verify_rule(
&self,
rule: &SynthesisRule,
) -> Result<ValidationResult, VerificationError>
pub fn verify_rule( &self, rule: &SynthesisRule, ) -> Result<ValidationResult, VerificationError>
Verify a synthesis rule
Proves that the ARM code generated by the rule has equivalent semantics to the WASM code matched by the pattern.
Sourcepub fn verify_equivalence(
&self,
wasm_op: &WasmOp,
arm_ops: &[ArmOp],
) -> Result<ValidationResult, VerificationError>
pub fn verify_equivalence( &self, wasm_op: &WasmOp, arm_ops: &[ArmOp], ) -> Result<ValidationResult, VerificationError>
Verify equivalence between a WASM operation and ARM operations
Sourcepub fn verify_equivalence_parameterized(
&self,
wasm_op: &WasmOp,
arm_ops: &[ArmOp],
concrete_params: &[(usize, i64)],
) -> Result<ValidationResult, VerificationError>
pub fn verify_equivalence_parameterized( &self, wasm_op: &WasmOp, arm_ops: &[ArmOp], concrete_params: &[(usize, i64)], ) -> Result<ValidationResult, VerificationError>
Verify equivalence with concrete parameter values
Sourcepub fn verify_parameterized_range<F>(
&self,
wasm_op: &WasmOp,
create_arm_ops: F,
param_index: usize,
range: Range<i64>,
) -> Result<ValidationResult, VerificationError>
pub fn verify_parameterized_range<F>( &self, wasm_op: &WasmOp, create_arm_ops: F, param_index: usize, range: Range<i64>, ) -> Result<ValidationResult, VerificationError>
Verify operation for all parameter values in a range
Sourcepub fn verify_rules(
&self,
rules: &[SynthesisRule],
) -> Vec<(String, Result<ValidationResult, VerificationError>)>
pub fn verify_rules( &self, rules: &[SynthesisRule], ) -> Vec<(String, Result<ValidationResult, VerificationError>)>
Batch verify multiple synthesis rules
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TranslationValidator
impl RefUnwindSafe for TranslationValidator
impl Send for TranslationValidator
impl Sync for TranslationValidator
impl Unpin for TranslationValidator
impl UnsafeUnpin for TranslationValidator
impl UnwindSafe for TranslationValidator
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