Expand description
Translation Validator - Proves equivalence between WASM and ARM code
This module implements SMT-based translation validation inspired by Alive2. For each synthesis rule WASM → ARM, we prove that the ARM code has semantically equivalent behavior to the WASM code.
§Verification Approach
- Create symbolic inputs for both WASM and ARM
- Encode WASM semantics as SMT formula phi_wasm
- Encode ARM semantics as SMT formula phi_arm
- Assert: phi_wasm(inputs) == phi_arm(inputs)
- Check satisfiability - if UNSAT, then equivalence is proven
§Example
For the rule: WASM i32.add -> ARM ADD Rd, Rn, Rm
We prove: forall a,b. i32.add(a, b) == ADD(a, b)
Structs§
- Translation
Validator - Translation validator over the configured SMT engine (see
crate::solver::new_solver: ordeal by default, optionally cross-checked against Z3 whenSYNTH_SOLVER_DIFF=1).
Enums§
- Validation
Result - Result of translation validation
- Verification
Error - Verification error types