pub fn inhibit_model(&mut self, model: &[Lit]) -> Result<(), AcesError> {
        let anti_lits =
            model.iter().filter_map(|&lit| self.all_vars.contains(&lit.var()).then(|| !lit));
        let clause = Clause::from_literals(anti_lits, "model inhibition");

        self.add_clause(clause)
    }
/// Adds a _model inhibition_ clause which will remove a specific
/// `model` from solution space.
///
/// The blocking clause is constructed by negating the given
/// `model`, i.e. by taking the disjunction of all _explicit_
/// literals and reversing polarity of each.  A literal is
/// explicit iff its variable has been _registered_ by occurring
/// in a formula passed to a call to [`add_formula()`].
///
/// [`add_formula()`]: Solver::add_formula()
Adds a _model inhibition_ clause which will remove a specific
`model` from solution space.

The blocking clause is constructed by negating the given
`model`, i.e. by taking the disjunction of all _explicit_
literals and reversing polarity of each.  A literal is
explicit iff its variable has been _registered_ by occurring
in a formula passed to a call to [`add_formula()`].


Adds a _model inhibition_ clause which will remove a specific ` model ` from solution space . The blocking clause is constructed by negating the given ` model ` i . e . by taking the disjunction of all _explicit_ literals and reversing polarity of each . A literal is explicit iff its variable has been _registered_ by occurring in a formula passed to a call to [ ` add_formula () ` ] .
pub fn inhibit_model(&mut self, model: &[Lit]) -> Result<(), AcesError> {
        let anti_lits =
            model.iter().filter_map(|&lit| self.all_vars.contains(&lit.var()).then(|| !lit));
        let clause = Clause::from_literals(anti_lits, "model inhibition");
        self.add_clause(clause)
    }
pub fn inhibit_model ( & mut self , model : & [ Lit ] ) -> Result < ( ) , AcesError > { let anti_lits = model . iter ( ) . filter_map ( | & lit | self . all_vars . contains ( & lit . var ( ) ) . then ( | | ! lit ) ) ; let clause = Clause :: from_literals ( anti_lits , " " ) ; self . add_clause ( clause ) }
Adds a _model inhibition_ clause which will remove a specific
`model` from solution space.
Adds a _model inhibition_ clause which will remove a specific ` model ` from solution space .
&mut self
model
&[Lit]
&mut self
model
&[Lit]