OxiZ
Next-Generation SMT Solver in Pure Rust
About
OxiZ is a high-performance SMT (Satisfiability Modulo Theories) solver written entirely in Pure Rust, designed to achieve feature parity with Z3 while leveraging Rust's safety, performance, and concurrency features.
🎉 Major Milestone: OxiZ v0.1.3 has achieved 100% correctness parity with Z3 across all 88 benchmark tests spanning 8 core SMT-LIB logics, validating it as a production-ready solver.
Features
- Pure Rust Implementation: No C/C++ dependencies, complete memory safety
- Z3-Compatible: Extensive theory support and familiar API patterns
- High Performance: Optimized SAT core with advanced heuristics
- Modular Design: Use only what you need via feature flags
- SMT-LIB2 Support: Full parser and printer for standard format
- WebAssembly Ready: Run in browsers via WASM bindings
Quick Start
Installation
Add OxiZ to your Cargo.toml:
[]
= "0.1.3" # Default includes solver
With specific features:
[]
= { = "0.1.3", = ["nlsat", "optimization"] }
All features:
[]
= { = "0.1.3", = ["full"] }
Basic Usage
use ;
use BigInt;
let mut solver = new;
let mut tm = new;
// Create variables
let x = tm.mk_var;
let y = tm.mk_var;
// x + y = 10
let sum = tm.mk_add;
let ten = tm.mk_int;
let eq = tm.mk_eq;
// x > 5
let five = tm.mk_int;
let gt = tm.mk_gt;
// Assert and solve
solver.assert;
solver.assert;
match solver.check
Feature Flags
| Feature | Description | Default |
|---|---|---|
solver |
Core SMT solver (SAT + theories) | ✓ |
nlsat |
Nonlinear real arithmetic | |
optimization |
MaxSMT and optimization | |
spacer |
CHC solver for verification | |
proof |
Proof generation | |
standard |
Common features (solver + nlsat + opt + proof) | |
full |
All features |
Theory Support
- EUF: Equality and uninterpreted functions
- LRA: Linear real arithmetic
- LIA: Linear integer arithmetic
- NRA: Nonlinear real arithmetic (with
nlsatfeature) - Arrays: Theory of arrays
- BitVectors: Bit-precise reasoning
- Strings: String operations with regex
- Datatypes: Algebraic data types
- Floating-Point: IEEE 754 semantics
Documentation
License
Licensed under Apache License 2.0 (LICENSE).