Trait batsat::interface::Theory

source ·
pub trait Theory<S: TheoryArgument>: Debug {
    fn final_check(&mut self, _: &mut S, model: &[Lit]) -> FinalCheckRes;
    fn create_level(&mut self);
    fn pop_level(&mut self, n: u32);
    fn on_add_clause(&mut self, c: &S::Clause, learnt: bool);
}
Expand description

Theory that parametrizes the solver and can react on events

Required Methods

Check the model candidate model thoroughly.

If the partial model isn’t satisfiable in the theory then this must return FinalCheckRes::Conflict and push a conflict clause.

Push a new backtracking level

Pop n levels from the stack

Called whenever the solver gets a new clause

Implementors