/* These corresponds to the helper predicates/functions provided in util/*.als */
static Expr acyclic(Expr r) throws Err {
Decl d = r.join(Sig.UNIV).oneOf("x"); // x is a variable over the domain of r
ExprHasName x = d.get();
return x.in(x.join(r.closure())).not().forAll(d); // (x !in x.^r) for all x
}
/* Here are definitions common to all instances. */
PrimSig obj=null, dir=null, file=null, root=null;