4 int main(int numargs, char **argv) {
5 CSolver *solver = new CSolver();
6 uint64_t set1[] = {10, 8, 18};
7 uint64_t set2[] = {10, 13, 7};
8 Set *s1 = solver->createSet(0, set1, 3);
9 Set *s2 = solver->createSet(1, set2, 3);
10 Element *e1 = solver->getElementVar(s1);
11 Element *e2 = solver->getElementVar(s2);
12 solver->mustHaveValue(e1);
13 solver->mustHaveValue(e2);
15 Predicate *equals = solver->createPredicateOperator(SATC_EQUALS);
16 Element *inputs[] = {e1, e2};
17 BooleanEdge b = solver->applyPredicate(equals, inputs, 2);
18 b = solver->applyLogicalOperation(SATC_NOT, b);
19 solver->addConstraint(b);
21 if (solver->solve() == 1)
22 printf("e1=%" PRIu64 "e2=%" PRIu64 "\n", solver->getElementValue(e1), solver->getElementValue(e2));