//! Varisat is a [CDCL][cdcl] based SAT solver written in rust. Given a boolean formula in //! [conjunctive normal form][cnf], it either finds a variable assignment that makes the formula //! true or finds a proof that this is impossible. //! //! In addition to this API documentation, Varisat comes with a [user manual]. //! //! [cdcl]: https://en.wikipedia.org/wiki/Conflict-Driven_Clause_Learning //! [cnf]: https://en.wikipedia.org/wiki/Conjunctive_normal_form //! [user manual]: https://jix.github.io/varisat/manual/0.2.1/ pub mod config; pub mod solver; mod analyze_conflict; mod assumptions; mod binary; mod cdcl; mod clause; mod context; mod decision; mod glue; mod load; mod model; mod proof; mod prop; mod schedule; mod state; mod tmp; mod unit_simplify; mod variables; pub use solver::{ProofFormat, Solver}; pub use varisat_formula::{cnf, lit, CnfFormula, ExtendFormula, Lit, Var}; pub mod dimacs { //! DIMCAS CNF parser and writer. pub use varisat_dimacs::*; } pub mod checker { //! Proof checker for Varisat proofs. pub use varisat_checker::{ CheckedProofStep, Checker, CheckerData, CheckerError, ProofProcessor, ProofTranscriptProcessor, ProofTranscriptStep, }; }