Satisfiability modulo theories
Axeyum SMT Solver
A typed SMT implementation with rewriting, theory solving, bit-blasting, models, and certificates.
New to SMT?
How can a program rule out enormous numbers of Boolean assignments?
Lesson 3 supplies the SAT background used by the solver. Lesson 4 adds typed terms, theories, bit-blasting, and model replay.
Implementation
Axeyum implements its SMT solver in Rust, from typed terms and SMT-LIB parsing through rewriting, theory-specific decisions, bit-blasting, and SAT search. A sat result is replayed against the original terms before it is reported.
Z3, cvc5, and Bitwuzla are comparison systems and optional test oracles. They do not run in Axeyum's default reasoning path.
- Typed terms and SMT-LIB parsing
- Query planning and rewriting
- Bit-vector, floating-point, string, and arithmetic routes
- Model replay and route-specific unsat evidence
Rust crates
These crates implement the component or connect its results to another Axeyum checker. Each link opens the crate's source directory.
Reference systems and results
The result report compares selected SMT-LIB divisions with Z3, cvc5, and Bitwuzla.
Read the SMT-LIB reportProblems studied with this component
- A BCNF decomposition counterexample Database theory
- The cause of an infeasible ICU roster Operations research
- The cause of an impossible project deadline Operations research