def solve(): return (Self.v.domain([No(T.FooNode.entity)]) & Predicate(SomeNode.test_prop, Self.v)).solve
def prop(): ignore(Var(Predicate(T.Example.predicate, Self.var1, Self.var2))) return Self.as_bare_entity
def prop(): ignore(Var(Predicate(FooNode.sophisticated_predicate, Self.var1))) return Self.as_bare_entity
def prop(): ignore(Var(Predicate(*pred_args))) return Self.as_bare_entity
def prop(i=T.Int): return Predicate(T.Example.pred, Self.var, i).solve
def do_solving(): return Predicate(Example.pred, Self.a).solve