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