//open util/ordering[Node]
sig Node {edges: set Node}
run {} for 3 Node
-----
/*pred twoSAT {
#Node = 2
}
run twoSAT for 3
*/
pred tour[start: Node, t: seq Node, t': Node -> Int] {
-- t visits everywhere
t.elems = Node
-- tour needs to use edges
all i: t.inds - t.lastIdx | {
t[add[1, i]] in t[i].edges
}
-- start and end in "start"
--t[0] = start
0.t = start
t[t.lastIdx] = start
t' = ~t
}
run tour for exactly 5 Node, 5 int, 6 seq