4 int main(int numargs, char ** argv) {
6 Edge v1=constraintNewVar(cnf);
7 Edge v2=constraintNewVar(cnf);
8 Edge v3=constraintNewVar(cnf);
9 Edge nv1=constraintNegate(v1);
12 Edge nv2=constraintNegate(v2);
13 Edge nv3=constraintNegate(v3);
14 Edge iff1=constraintIFF(cnf, nv1, v2);
18 Edge iff2=constraintOR2(cnf, constraintAND2(cnf, v2, v3), constraintAND2(cnf, nv2, nv3));
21 Edge iff3=constraintIFF(cnf, v3, nv1);
22 Edge cand=constraintAND(cnf, 3, (Edge[]) {iff1, iff2, iff3});
26 addConstraint(cnf, cand);
27 int value=solveCNF(cnf);
29 bool v1v=getValueCNF(cnf, v1);
30 bool v2v=getValueCNF(cnf, v2);
31 bool v3v=getValueCNF(cnf, v3);
32 printf("%d %u %u %u\n", value, v1v, v2v, v3v);