Overview
Verify ISLE rewrite rules at build time using SMT, similar to Cranelift's Crocus project.
Approach
- Parse ISLE rule files
- Extract LHS/RHS of each rule
- Generate SMT verification conditions
- Prove
∀ inputs. eval(LHS) = eval(RHS)
Benefits
- Catch incorrect ISLE rules at build time
- Complement Z3 runtime verification
- Reduce trust in ISLE compiler
References
Overview
Verify ISLE rewrite rules at build time using SMT, similar to Cranelift's Crocus project.
Approach
∀ inputs. eval(LHS) = eval(RHS)Benefits
References
loom-shared/isle/wasm_terms.isle