} else*/
if (a instanceof Relation || b instanceof Relation) {
try {
TupleSet a0 = sol.query(false, a, false), a1 = sol.query(true, a, false);
TupleSet b0 = sol.query(false, b, false), b1 = sol.query(true, b, false);
if (a instanceof Relation && a0.size()<b0.size() && b0.containsAll(a0) && a1.containsAll(b0)) {
rep.debug("Comment: Simplify "+a+" "+(a1.size()-a0.size())+"->"+(a1.size()-b0.size())+"\n");
sol.shrink((Relation)a, a0=b0, a1);
}
if (a instanceof Relation && a1.size()>b1.size() && b1.containsAll(a0) && a1.containsAll(b1)) {
rep.debug("Comment: Simplify "+a+" "+(a1.size()-a0.size())+"->"+(b1.size()-a0.size())+"\n");