oxiz-solver-0.1.0 has been yanked.
oxiz-solver
Main CDCL(T) SMT solver orchestration for OxiZ.
Overview
This crate integrates the SAT solver with theory solvers to provide complete SMT solving:
- CDCL(T) - SAT solver with theory propagation
- Context - High-level API for SMT-LIB2 interaction
- Model Generation - Extract satisfying assignments
Architecture
┌────────────────────────────────────────────────────┐
│ Context │
│ (SMT-LIB2 interface, declaration management) │
├────────────────────────────────────────────────────┤
│ Solver │
│ (CDCL(T) orchestration, theory combination) │
├────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ SAT Core │ │ EUF │ │ Arithmetic │ │
│ │(oxiz-sat)│ │ Solver │ │ Solver │ │
│ └──────────┘ └──────────┘ └──────────────────┘ │
└────────────────────────────────────────────────────┘
Usage
High-Level API (Context)
use Context;
let mut ctx = new;
// Execute SMT-LIB2 script
let results = ctx.execute_script?;
for line in results
Low-Level API (Solver)
use ;
use TermId;
let mut solver = new;
solver.set_logic;
// Assert terms
solver.assert;
// Check satisfiability
match solver.check
Modules
context
High-level SMT-LIB2 context:
- Declaration management (constants, functions, sorts)
- Script execution
- Result formatting
solver
CDCL(T) solver:
- SAT/theory integration
- Boolean encoding
- Model construction
- Push/pop state management
Supported Logics
QF_UF- Quantifier-free Uninterpreted FunctionsQF_LRA- Quantifier-free Linear Real ArithmeticQF_LIA- Quantifier-free Linear Integer Arithmetic (partial)QF_BV- Quantifier-free BitVectors (partial)
Dependencies
oxiz-core- AST and parsingoxiz-sat- SAT solveroxiz-theories- Theory solvers
License
MIT OR Apache-2.0