| Crates.io | oxiz-proof |
| lib.rs | oxiz-proof |
| version | 0.1.2 |
| created_at | 2026-01-12 04:36:54.823138+00 |
| updated_at | 2026-01-21 05:20:36.235954+00 |
| description | Proof generation and checking for OxiZ SMT solver |
| homepage | |
| repository | https://github.com/cool-japan/oxiz |
| max_upload_size | |
| id | 2036994 |
| size | 754,708 |
Proof generation and checking for the OxiZ SMT solver.
This crate provides machine-checkable proof output, enabling verification of solver results by external proof checkers. This is a beyond Z3 feature - while Z3 supports generic proofs, OxiZ aims to generate standardized, machine-checkable proofs by default.
| Format | Description | Checker |
|---|---|---|
| DRAT | SAT resolution proofs | drat-trim, cake_lpr |
| Alethe | SMT-LIB proof format | carcara, alethe-checker |
| LFSC | Logical Framework proofs | lfscc |
use oxiz_proof::{Proof, ProofStep};
// Proofs are generated automatically during solving
let proof: Proof = solver.get_proof();
// Output in different formats
println!("{}", proof.to_drat());
println!("{}", proof.to_alethe());
(set-option :produce-proofs true)
(assert (and p (not p)))
(check-sat) ; Returns UNSAT
(get-proof) ; Returns proof tree
(step t1 (cl (not p) q) :rule resolution :premises (t0))
(step t2 (cl (not q) r) :rule unit_resolution :premises (t1 h1))
(step t3 (cl false) :rule false_rule :premises (t2))
MIT OR Apache-2.0