sig Node {edges: set Node } --one sig Boston extends Node {} --one sig Providence extends Node {} run {no edges & iden} for exactly 2 Node expect 1 --------- pred someOut { some c: Node | some c.edges } pred someOut2 { some Node.edges } run someOut run someOut2 pred allSome { all c: Node | some c2: Node | c->c2 in edges } run allSome pred completeGraph { all c, c2: Node | c->c2 in edges } run {allSome and completeGraph} for exactly 5 Node one sig Skolem { witness: set Node -> one Node } pred allSome2 { all c: Node | c->(Skolem.witness)[c] in edges } run allSome2 for exactly 5 Node