[−][src]Trait splr::traits::SatSolverIF
API for SAT solver like build
, solve
and so on.
Required methods
fn new(config: &Config, cnf: &CNFDescription) -> Solver
make a solver for debug. Probably you should use build
instead of this.
fn build(config: &Config) -> Result<Solver>
fn solve(&mut self) -> SolverResult
fn add_unchecked_clause(&mut self, v: &mut Vec<Lit>) -> Option<ClauseId>
add a vector of Lit
as a clause to the solver.
Implementors
impl SatSolverIF for Solver
[src]
fn new(config: &Config, cnf: &CNFDescription) -> Solver
[src]
fn solve(&mut self) -> SolverResult
[src]
Examples
use splr::traits::SatSolverIF; use splr::config::Config; use splr::solver::{Solver, Certificate}; let config = Config::from("tests/sample.cnf"); if let Ok(mut s) = Solver::build(&config) { let res = s.solve(); assert!(res.is_ok()); assert_ne!(res.unwrap(), Certificate::UNSAT); }
fn build(config: &Config) -> Result<Solver>
[src]
Examples
use splr::traits::SatSolverIF; use splr::config::Config; use splr::solver::Solver; let config = Config::from("tests/sample.cnf"); assert!(Solver::build(&config).is_ok());