logic_form/dagcnf/
simulate.rs

1use super::DagCnf;
2use crate::Var;
3use crate::{Lbool, VarAssign};
4
5impl DagCnf {
6    pub fn var_sim(&mut self, n: Var, value: &mut VarAssign) {
7        'm: for rel in self.cnf[n].iter() {
8            for l in rel.iter() {
9                if l.var() != n && value.v(*l) != Lbool::FALSE {
10                    continue 'm;
11                }
12            }
13            value.set(rel.last());
14            return;
15        }
16    }
17}