@Override public void visit(P_ZeroOrMore1 p) { new P_OneOrMore1(p.getSubPath()).visit(this); List<Rule> rules = result; Predicate oneOrMorePred = resultMainPredicate; Predicate newpred = new Predicate(idpPredicateGen.createNewVariable(), 2); VariableExpr x = new VariableExpr("X"); VariableExpr y = new VariableExpr("Y"); rules.add(new Rule(new AtomicFormula(newpred, x, y), ruleid++, new AtomicFormula(new Predicate(Rule.BUILT_IN_EQUAL, 2), x, y))); rules.add(new Rule(new AtomicFormula(newpred, x, y), ruleid++, new AtomicFormula(oneOrMorePred, x, y))); result = rules; resultMainPredicate = newpred; }