(0) Obligation:

JBC Problem based on JBC Program:
package MirrorMultiTreeRec;

public class MirrorMultiTreeRec {
public static void main(final String[] args) {
Random.args = args;

final Tree t = Tree.createTree(Random.random());
mirror(t.children);
}

public static TreeList mirror(final TreeList l) {
if (l == null || l.next==null) return l;
final TreeList nextItem = l.next;
final TreeList reverseRest = mirror(nextItem);
l.next = null;
mirror(l.value.children);
nextItem.next = l;
return reverseRest;
}
}


package MirrorMultiTreeRec;
public class Random {
static String[] args;
static int index = 0;

public static int random() {
final String string = args[index];
index++;
return string.length();
}
}


package MirrorMultiTreeRec;
public class Tree {
TreeList children;

public Tree() {
this.children = null;
}

public void addChild(final Tree t) {
this.children = new TreeList(t, this.children);
}

public static Tree createNode() {
final Tree result = new Tree();
return result;
}

public static Tree createTree(int depth) {
if (depth <= 0) {
return null;
}
depth = depth - 1;

final Tree result = new Tree();
final int numberOfChildren = Random.random();

for (int i = 0; i < numberOfChildren; i++) {
result.addChild(createTree(depth - 1));
}

return result;
}
}


package MirrorMultiTreeRec;
public class TreeList {
Tree value;
TreeList next;

public TreeList(final Tree value, final TreeList next) {
this.value = value;
this.next = next;
}
}


(1) JBCToGraph (SOUND transformation)

Constructed TerminationGraph.

(2) Obligation:

Termination Graph based on JBC Program:
MirrorMultiTreeRec.MirrorMultiTreeRec.main([Ljava/lang/String;)V: Graph of 189 nodes with 0 SCCs.

MirrorMultiTreeRec.Tree.createTree(I)LMirrorMultiTreeRec/Tree;: Graph of 163 nodes with 1 SCC.

MirrorMultiTreeRec.MirrorMultiTreeRec.mirror(LMirrorMultiTreeRec/TreeList;)LMirrorMultiTreeRec/TreeList;: Graph of 220 nodes with 0 SCCs.


(3) TerminationGraphToSCCProof (SOUND transformation)

Splitted TerminationGraph to 2 SCCss.

(4) Complex Obligation (AND)

(5) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: MirrorMultiTreeRec.MirrorMultiTreeRec.mirror(LMirrorMultiTreeRec/TreeList;)LMirrorMultiTreeRec/TreeList;
SCC calls the following helper methods: MirrorMultiTreeRec.MirrorMultiTreeRec.mirror(LMirrorMultiTreeRec/TreeList;)LMirrorMultiTreeRec/TreeList;
Performed SCC analyses:
  • Used field analysis yielded the following read fields:
    • MirrorMultiTreeRec.TreeList: [next, value]
    • MirrorMultiTreeRec.Tree: [children]
  • Marker field analysis yielded the following relations that could be markers:

(6) SCCToIntTRSProof (SOUND transformation)

Transformed FIGraph SCCs to intTRSs. Log:

Generated rules. Obtained 55 IRules

P rules:
f2419_0_mirror_NULL(EOS, java.lang.Object(o594sub), java.lang.Object(o594sub), java.lang.Object(o594sub)) → f2421_0_mirror_NULL(EOS, java.lang.Object(o594sub), java.lang.Object(o594sub), java.lang.Object(o594sub))
f2421_0_mirror_NULL(EOS, java.lang.Object(o594sub), java.lang.Object(o594sub), java.lang.Object(o594sub)) → f2425_0_mirror_Load(EOS, java.lang.Object(o594sub), java.lang.Object(o594sub))
f2425_0_mirror_Load(EOS, java.lang.Object(o594sub), java.lang.Object(o594sub)) → f2433_0_mirror_FieldAccess(EOS, java.lang.Object(o594sub), java.lang.Object(o594sub), java.lang.Object(o594sub))
f2433_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o607, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o607, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o607, o606))) → f2442_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o607, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o607, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o607, o606)))
f2442_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o607, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o607, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o607, o606))) → f2447_0_mirror_NONNULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o607, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o607, o606)), o607)
f2447_0_mirror_NONNULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub)) → f2523_0_mirror_NONNULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub))
f2523_0_mirror_NONNULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub)) → f2527_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)))
f2527_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606))) → f2537_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)))
f2537_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606))) → f2550_0_mirror_Store(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub))
f2550_0_mirror_Store(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub)) → f2566_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub))
f2566_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub)) → f2583_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub), java.lang.Object(o637sub))
f2583_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub), java.lang.Object(o637sub)) → f2598_0_mirror_Load(EOS, java.lang.Object(o637sub), java.lang.Object(o637sub))
f2583_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub), java.lang.Object(o637sub)) → f2598_1_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub), java.lang.Object(o637sub), java.lang.Object(o637sub))
f2598_0_mirror_Load(EOS, java.lang.Object(o637sub), java.lang.Object(o637sub)) → f2604_0_mirror_Load(EOS, java.lang.Object(o637sub), java.lang.Object(o637sub))
f2604_0_mirror_Load(EOS, java.lang.Object(o637sub), java.lang.Object(o637sub)) → f2417_0_mirror_Load(EOS, java.lang.Object(o637sub), java.lang.Object(o637sub))
f2417_0_mirror_Load(EOS, o592, o592) → f2419_0_mirror_NULL(EOS, o592, o592, o592)
f2692_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703))) → f2702_0_mirror_Store(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)))
f2702_0_mirror_Store(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703))) → f2707_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)))
f2707_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703))) → f2710_0_mirror_ConstantStackPush(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)))
f2710_0_mirror_ConstantStackPush(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606))) → f2715_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), NULL)
f2715_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), NULL) → f2719_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)))
f2719_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703))) → f2721_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606)))
f2721_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606))) → f2722_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)
f2722_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(o732sub))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(o732sub))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(o732sub)) → f2724_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(o732sub))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(o732sub))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(o732sub))
f2724_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734))) → f2729_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))
f2729_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734))) → f2734_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o734)
f2734_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o734) → f2742_0_mirror_Load(EOS, o734, o734)
f2734_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o734) → f2742_1_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o734)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o734, o734)
f2742_0_mirror_Load(EOS, o734, o734) → f2749_0_mirror_Load(EOS, o734, o734)
f2749_0_mirror_Load(EOS, o734, o734) → f2417_0_mirror_Load(EOS, o734, o734)
f2979_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), o832))) → f9761_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), o832)))
f9761_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(o4139sub), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137))) → f9876_0_mirror_Store(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)))
f9876_0_mirror_Store(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137))) → f9884_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)))
f9884_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137))) → f9892_0_mirror_ConstantStackPush(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)))
f9892_0_mirror_ConstantStackPush(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140))) → f9899_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), NULL)
f9899_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o4139sub), o4140)), NULL) → f9908_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)))
f9908_0_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137))) → f9917_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140)))
f9917_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140))) → f9932_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o4140)), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), o4140)
f9932_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(o4339sub))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(o4339sub))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), java.lang.Object(o4339sub)) → f9936_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(o4339sub))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(o4339sub))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), java.lang.Object(o4339sub))
f9936_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379))) → f10002_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))
f10002_0_mirror_FieldAccess(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379))) → f10036_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), o4379)
f10036_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), o4379) → f10041_0_mirror_Load(EOS, o4379, o4379)
f10036_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), o4379) → f10041_1_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), o4379, o4379)
f10041_0_mirror_Load(EOS, o4379, o4379) → f10043_0_mirror_Load(EOS, o4379, o4379)
f10043_0_mirror_Load(EOS, o4379, o4379) → f2417_0_mirror_Load(EOS, o4379, o4379)
f10018_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), o4352))) → f9761_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), o4352)))
f12369_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6231)))), o6228))) → f9761_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6231)))), o6228)))
f12582_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o6390, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6392)))), o6388))) → f9761_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o6390, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6392)))), o6388)))
f12617_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), o6449)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6450)))), o6445))) → f9761_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), o6449)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6450)))), o6445)))
f2598_1_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703))) → f2692_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, o703)))
f2598_1_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub), java.lang.Object(o637sub), java.lang.Object(o637sub)) → f2979_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o833)))), o832)))
f2598_1_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub), java.lang.Object(o637sub), java.lang.Object(o637sub)) → f10018_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(o4353sub))))), o4352)))
f2598_1_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub), java.lang.Object(o637sub), java.lang.Object(o637sub)) → f12369_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6229)))), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6231)))), o6228)))
f2598_1_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub), java.lang.Object(o637sub), java.lang.Object(o637sub)) → f12582_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6389)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o6390, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6392)))), o6388)))
f2598_1_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(o637sub), o606)), java.lang.Object(o637sub), java.lang.Object(o637sub), java.lang.Object(o637sub)) → f12617_0_mirror_Return(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), o606)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6446)))), o6449)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o6450)))), o6445)))

Combined rules. Obtained 10 IRules

P rules:
f10036_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), o4379) → f10041_1_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4379)))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, o4134, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, o4136)))), o4137)), o4379, o4379)
f2419_0_mirror_NULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), x1)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), x1)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), x1))) → f2419_0_mirror_NULL(EOS, java.lang.Object(x0), java.lang.Object(x0), java.lang.Object(x0))
f10036_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x0)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x0)))), java.lang.Object(x1), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, x2, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x3)))), x4)), x0) → f2419_0_mirror_NULL(EOS, x0, x0, x0)
f2419_0_mirror_NULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, x0)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, x0)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, x0)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1))))) → f2742_1_mirror_Load(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, x0)), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, x0)), x1, x1)
f2419_0_mirror_NULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, x0)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, x0)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, x0)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1))))) → f2419_0_mirror_NULL(EOS, x1, x1, x1)
f2419_0_mirror_NULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1))))) → f10036_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x2)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x2)))), x3)), x1)
f2419_0_mirror_NULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1))))) → f10036_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(x2))))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, java.lang.Object(x2))))), x3)), x1)
f2419_0_mirror_NULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1))))) → f10036_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x2)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x2)))), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x3)))), x4)), x1)
f2419_0_mirror_NULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1))))) → f10036_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x2)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, x3, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x4)))), x5)), x1)
f2419_0_mirror_NULL(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1))))) → f10036_0_mirror_InvokeMethod(EOS, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x2)))), java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, java.lang.Object(MirrorMultiTreeRec.TreeList(EOC, NULL, java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x2)))), x3)), java.lang.Object(MirrorMultiTreeRec.Tree(EOC, x4)))), x5)), x1)

Filtered ground terms:


f10036_0_mirror_InvokeMethod(x1, x2, x3, x4, x5, x6) → f10036_0_mirror_InvokeMethod(x2, x3, x4, x5, x6)
f10041_1_mirror_Load(x1, x2, x3, x4, x5, x6, x7) → f10041_1_mirror_Load(x2, x3, x4, x5, x6, x7)
f2419_0_mirror_NULL(x1, x2, x3, x4) → f2419_0_mirror_NULL(x2, x3, x4)
f2742_1_mirror_Load(x1, x2, x3, x4, x5, x6, x7) → f2742_1_mirror_Load(x2, x3, x4, x5, x6, x7)
MirrorMultiTreeRec.TreeList(x1, x2, x3) → MirrorMultiTreeRec.TreeList(x2, x3)
MirrorMultiTreeRec.Tree(x1, x2) → MirrorMultiTreeRec.Tree(x2)

Filtered duplicate terms:


f10036_0_mirror_InvokeMethod(x1, x2, x3, x4, x5) → f10036_0_mirror_InvokeMethod(x2, x3, x4)
f10041_1_mirror_Load(x1, x2, x3, x4, x5, x6) → f10041_1_mirror_Load(x2, x3, x4)
f2419_0_mirror_NULL(x1, x2, x3) → f2419_0_mirror_NULL(x3)
f2742_1_mirror_Load(x1, x2, x3, x4, x5, x6) → f2742_1_mirror_Load(x2, x4)

Prepared 10 rules for path length conversion:

P rules:
f10036_0_mirror_InvokeMethod(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(o4379)))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(o4134, java.lang.Object(MirrorMultiTreeRec.Tree(o4136)))), o4137)), o4379, o4137) → f10041_1_mirror_Load(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(o4379)))), java.lang.Object(o4139sub), java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(o4134, java.lang.Object(MirrorMultiTreeRec.Tree(o4136)))), o4137)))
f2419_0_mirror_NULL(java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(x0), x1))) → f2419_0_mirror_NULL(java.lang.Object(x0))
f10036_0_mirror_InvokeMethod(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x0)))), java.lang.Object(x1), java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(x2, java.lang.Object(MirrorMultiTreeRec.Tree(x3)))), x4)), x0, x4) → f2419_0_mirror_NULL(x0)
f2419_0_mirror_NULL(java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, x0)), java.lang.Object(MirrorMultiTreeRec.Tree(x1))))) → f2742_1_mirror_Load(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, x0)))
f2419_0_mirror_NULL(java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, x0)), java.lang.Object(MirrorMultiTreeRec.Tree(x1))))) → f2419_0_mirror_NULL(x1)
f2419_0_mirror_NULL(java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(x1))))) → f10036_0_mirror_InvokeMethod(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x2)))), java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x2)))), x3)), x1, x3)
f2419_0_mirror_NULL(java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(x1))))) → f10036_0_mirror_InvokeMethod(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(java.lang.Object(x2))))), java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(java.lang.Object(x2))))), x3)), x1, x3)
f2419_0_mirror_NULL(java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(x1))))) → f10036_0_mirror_InvokeMethod(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x2)))), java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x2)))), java.lang.Object(MirrorMultiTreeRec.Tree(x3)))), x4)), x1, x4)
f2419_0_mirror_NULL(java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(x1))))) → f10036_0_mirror_InvokeMethod(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x2)))), java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(x3, java.lang.Object(MirrorMultiTreeRec.Tree(x4)))), x5)), x1, x5)
f2419_0_mirror_NULL(java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(x0), java.lang.Object(MirrorMultiTreeRec.Tree(x1))))) → f10036_0_mirror_InvokeMethod(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x1)))), java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x2)))), java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(java.lang.Object(MirrorMultiTreeRec.TreeList(NULL, java.lang.Object(MirrorMultiTreeRec.Tree(x2)))), x3)), java.lang.Object(MirrorMultiTreeRec.Tree(x4)))), x5)), x1, x5)

Finished conversion. Obtained 8 rules.

P rules:
f2419_0_mirror_NULL(v47) → f2419_0_mirror_NULL(v48) | &&(&&(>(+(v48, 1), 1), <=(+(v48, 2), v47)), >(+(v47, 1), 3))
f10036_0_mirror_InvokeMethod(v49, v50, v51, v52, x11) → f2419_0_mirror_NULL(v53) | &&(&&(&&(&&(&&(&&(&&(<=(+(x11, 2), v51), >(+(v53, 1), 0)), <=(v53, v52)), <=(+(v53, 3), v49)), >(+(v52, 1), 0)), >(+(v51, 1), 5)), >(+(v50, 1), 1)), >(+(v49, 1), 3))
f2419_0_mirror_NULL(v54) → f2419_0_mirror_NULL(v55) | &&(&&(>(+(v55, 1), 0), <=(+(v55, 4), v54)), >(+(v54, 1), 4))
f2419_0_mirror_NULL(v56) → f10036_0_mirror_InvokeMethod(v57, v58, v59, v60, x19) | &&(&&(&&(&&(&&(&&(>(+(v60, 1), 0), <=(+(v60, 3), v56)), >(+(v59, 1), 5)), >(+(v58, 1), 3)), >(+(v57, 1), 3)), <=(v57, v56)), >(+(v56, 1), 3))
f2419_0_mirror_NULL(v61) → f10036_0_mirror_InvokeMethod(v62, v63, v64, v65, x23) | &&(&&(&&(&&(&&(&&(>(+(v65, 1), 0), <=(+(v65, 3), v61)), >(+(v64, 1), 7)), >(+(v63, 1), 5)), >(+(v62, 1), 3)), <=(v62, v61)), >(+(v61, 1), 3))
f2419_0_mirror_NULL(v66) → f10036_0_mirror_InvokeMethod(v67, v68, v69, v70, x28) | &&(&&(&&(&&(&&(&&(>(+(v70, 1), 0), <=(+(v70, 3), v66)), >(+(v69, 1), 7)), >(+(v68, 1), 3)), >(+(v67, 1), 3)), <=(v67, v66)), >(+(v66, 1), 3))
f2419_0_mirror_NULL(v71) → f10036_0_mirror_InvokeMethod(v72, v73, v74, v75, x34) | &&(&&(&&(&&(&&(&&(>(+(v75, 1), 0), <=(+(v75, 3), v71)), >(+(v74, 1), 5)), >(+(v73, 1), 3)), >(+(v72, 1), 3)), <=(v72, v71)), >(+(v71, 1), 3))
f2419_0_mirror_NULL(v76) → f10036_0_mirror_InvokeMethod(v77, v78, v79, v80, x40) | &&(&&(&&(&&(&&(&&(>(+(v80, 1), 0), <=(+(v80, 3), v76)), >(+(v79, 1), 9)), >(+(v78, 1), 3)), >(+(v77, 1), 3)), <=(v77, v76)), >(+(v76, 1), 3))

(7) Obligation:

Rules:
f2419_0_mirror_NULL(v47) → f2419_0_mirror_NULL(v48) | &&(&&(>(+(v48, 1), 1), <=(+(v48, 2), v47)), >(+(v47, 1), 3))
f10036_0_mirror_InvokeMethod(v49, v50, v51, v52, x11) → f2419_0_mirror_NULL(v53) | &&(&&(&&(&&(&&(&&(&&(<=(+(x11, 2), v51), >(+(v53, 1), 0)), <=(v53, v52)), <=(+(v53, 3), v49)), >(+(v52, 1), 0)), >(+(v51, 1), 5)), >(+(v50, 1), 1)), >(+(v49, 1), 3))
f2419_0_mirror_NULL(v54) → f2419_0_mirror_NULL(v55) | &&(&&(>(+(v55, 1), 0), <=(+(v55, 4), v54)), >(+(v54, 1), 4))
f2419_0_mirror_NULL(v56) → f10036_0_mirror_InvokeMethod(v57, v58, v59, v60, x19) | &&(&&(&&(&&(&&(&&(>(+(v60, 1), 0), <=(+(v60, 3), v56)), >(+(v59, 1), 5)), >(+(v58, 1), 3)), >(+(v57, 1), 3)), <=(v57, v56)), >(+(v56, 1), 3))
f2419_0_mirror_NULL(v61) → f10036_0_mirror_InvokeMethod(v62, v63, v64, v65, x23) | &&(&&(&&(&&(&&(&&(>(+(v65, 1), 0), <=(+(v65, 3), v61)), >(+(v64, 1), 7)), >(+(v63, 1), 5)), >(+(v62, 1), 3)), <=(v62, v61)), >(+(v61, 1), 3))
f2419_0_mirror_NULL(v66) → f10036_0_mirror_InvokeMethod(v67, v68, v69, v70, x28) | &&(&&(&&(&&(&&(&&(>(+(v70, 1), 0), <=(+(v70, 3), v66)), >(+(v69, 1), 7)), >(+(v68, 1), 3)), >(+(v67, 1), 3)), <=(v67, v66)), >(+(v66, 1), 3))
f2419_0_mirror_NULL(v71) → f10036_0_mirror_InvokeMethod(v72, v73, v74, v75, x34) | &&(&&(&&(&&(&&(&&(>(+(v75, 1), 0), <=(+(v75, 3), v71)), >(+(v74, 1), 5)), >(+(v73, 1), 3)), >(+(v72, 1), 3)), <=(v72, v71)), >(+(v71, 1), 3))
f2419_0_mirror_NULL(v76) → f10036_0_mirror_InvokeMethod(v77, v78, v79, v80, x40) | &&(&&(&&(&&(&&(&&(>(+(v80, 1), 0), <=(+(v80, 3), v76)), >(+(v79, 1), 9)), >(+(v78, 1), 3)), >(+(v77, 1), 3)), <=(v77, v76)), >(+(v76, 1), 3))

(8) PolynomialOrderProcessor (EQUIVALENT transformation)

Found the following polynomial interpretation:


[f2419_0_mirror_NULL(x41)] = x41
[f10036_0_mirror_InvokeMethod(x44, x46, x48, x50, x52)] = -1 + x44

Therefore the following rule(s) have been dropped:


f2419_0_mirror_NULL(x0) → f2419_0_mirror_NULL(x1) | &&(&&(>(+(x1, 1), 1), <=(+(x1, 2), x0)), >(+(x0, 1), 3))
f10036_0_mirror_InvokeMethod(x2, x3, x4, x5, x6) → f2419_0_mirror_NULL(x7) | &&(&&(&&(&&(&&(&&(&&(<=(+(x6, 2), x4), >(+(x7, 1), 0)), <=(x7, x5)), <=(+(x7, 3), x2)), >(+(x5, 1), 0)), >(+(x4, 1), 5)), >(+(x3, 1), 1)), >(+(x2, 1), 3))
f2419_0_mirror_NULL(x8) → f2419_0_mirror_NULL(x9) | &&(&&(>(+(x9, 1), 0), <=(+(x9, 4), x8)), >(+(x8, 1), 4))
f2419_0_mirror_NULL(x10) → f10036_0_mirror_InvokeMethod(x11, x12, x13, x14, x15) | &&(&&(&&(&&(&&(&&(>(+(x14, 1), 0), <=(+(x14, 3), x10)), >(+(x13, 1), 5)), >(+(x12, 1), 3)), >(+(x11, 1), 3)), <=(x11, x10)), >(+(x10, 1), 3))
f2419_0_mirror_NULL(x16) → f10036_0_mirror_InvokeMethod(x17, x18, x19, x20, x21) | &&(&&(&&(&&(&&(&&(>(+(x20, 1), 0), <=(+(x20, 3), x16)), >(+(x19, 1), 7)), >(+(x18, 1), 5)), >(+(x17, 1), 3)), <=(x17, x16)), >(+(x16, 1), 3))
f2419_0_mirror_NULL(x22) → f10036_0_mirror_InvokeMethod(x23, x24, x25, x26, x27) | &&(&&(&&(&&(&&(&&(>(+(x26, 1), 0), <=(+(x26, 3), x22)), >(+(x25, 1), 7)), >(+(x24, 1), 3)), >(+(x23, 1), 3)), <=(x23, x22)), >(+(x22, 1), 3))
f2419_0_mirror_NULL(x28) → f10036_0_mirror_InvokeMethod(x29, x30, x31, x32, x33) | &&(&&(&&(&&(&&(&&(>(+(x32, 1), 0), <=(+(x32, 3), x28)), >(+(x31, 1), 5)), >(+(x30, 1), 3)), >(+(x29, 1), 3)), <=(x29, x28)), >(+(x28, 1), 3))
f2419_0_mirror_NULL(x34) → f10036_0_mirror_InvokeMethod(x35, x36, x37, x38, x39) | &&(&&(&&(&&(&&(&&(>(+(x38, 1), 0), <=(+(x38, 3), x34)), >(+(x37, 1), 9)), >(+(x36, 1), 3)), >(+(x35, 1), 3)), <=(x35, x34)), >(+(x34, 1), 3))

(9) YES

(10) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: MirrorMultiTreeRec.Tree.createTree(I)LMirrorMultiTreeRec/Tree;
SCC calls the following helper methods: MirrorMultiTreeRec.Tree.createTree(I)LMirrorMultiTreeRec/Tree;
Performed SCC analyses:
  • Used field analysis yielded the following read fields:
    • java.lang.String: [count]
    • MirrorMultiTreeRec.Tree: [children]
  • Marker field analysis yielded the following relations that could be markers:

(11) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 101 rules for P and 163 rules for R.


P rules:
f1518_0_createTree_GT(EOS(STATIC_1518), i297, i297, i297) → f1521_0_createTree_GT(EOS(STATIC_1521), i297, i297, i297)
f1521_0_createTree_GT(EOS(STATIC_1521), i297, i297, i297) → f1524_0_createTree_Load(EOS(STATIC_1524), i297, i297) | >(i297, 0)
f1524_0_createTree_Load(EOS(STATIC_1524), i297, i297) → f1527_0_createTree_ConstantStackPush(EOS(STATIC_1527), i297, i297)
f1527_0_createTree_ConstantStackPush(EOS(STATIC_1527), i297, i297) → f1530_0_createTree_IntArithmetic(EOS(STATIC_1530), i297, i297, 1)
f1530_0_createTree_IntArithmetic(EOS(STATIC_1530), i297, i297, matching1) → f1541_0_createTree_Store(EOS(STATIC_1541), i297, -(i297, 1)) | &&(>(i297, 0), =(matching1, 1))
f1541_0_createTree_Store(EOS(STATIC_1541), i297, i307) → f1548_0_createTree_New(EOS(STATIC_1548), i297, i307)
f1548_0_createTree_New(EOS(STATIC_1548), i297, i307) → f1550_0_createTree_Duplicate(EOS(STATIC_1550), i297, i307)
f1550_0_createTree_Duplicate(EOS(STATIC_1550), i297, i307) → f1552_0_createTree_InvokeMethod(EOS(STATIC_1552), i297, i307)
f1552_0_createTree_InvokeMethod(EOS(STATIC_1552), i297, i307) → f1553_0__init__Load(EOS(STATIC_1553), i297, i307)
f1553_0__init__Load(EOS(STATIC_1553), i297, i307) → f1555_0__init__InvokeMethod(EOS(STATIC_1555), i297, i307)
f1555_0__init__InvokeMethod(EOS(STATIC_1555), i297, i307) → f1557_0__init__Load(EOS(STATIC_1557), i297, i307)
f1557_0__init__Load(EOS(STATIC_1557), i297, i307) → f1559_0__init__ConstantStackPush(EOS(STATIC_1559), i297, i307)
f1559_0__init__ConstantStackPush(EOS(STATIC_1559), i297, i307) → f1561_0__init__FieldAccess(EOS(STATIC_1561), i297, i307, NULL)
f1561_0__init__FieldAccess(EOS(STATIC_1561), i297, i307, NULL) → f1562_0__init__Return(EOS(STATIC_1562), i297, i307)
f1562_0__init__Return(EOS(STATIC_1562), i297, i307) → f1563_0_createTree_Store(EOS(STATIC_1563), i297, i307)
f1563_0_createTree_Store(EOS(STATIC_1563), i297, i307) → f1564_0_createTree_InvokeMethod(EOS(STATIC_1564), i297, i307)
f1564_0_createTree_InvokeMethod(EOS(STATIC_1564), i297, i307) → f1565_0_random_FieldAccess(EOS(STATIC_1565), i297, i307)
f1565_0_random_FieldAccess(EOS(STATIC_1565), i297, i307) → f1566_0_random_FieldAccess(EOS(STATIC_1566), i297, i307, java.lang.Object(ARRAY(i92)))
f1566_0_random_FieldAccess(EOS(STATIC_1566), i297, i307, java.lang.Object(ARRAY(i92))) → f1569_0_random_ArrayAccess(EOS(STATIC_1569), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1569_0_random_ArrayAccess(EOS(STATIC_1569), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1570_0_random_ArrayAccess(EOS(STATIC_1570), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1570_0_random_ArrayAccess(EOS(STATIC_1570), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1573_0_random_Store(EOS(STATIC_1573), i297, i307, o271) | <(i291, i92)
f1573_0_random_Store(EOS(STATIC_1573), i297, i307, o271) → f1575_0_random_FieldAccess(EOS(STATIC_1575), i297, i307, o271)
f1575_0_random_FieldAccess(EOS(STATIC_1575), i297, i307, o271) → f1576_0_random_ConstantStackPush(EOS(STATIC_1576), i297, i307, o271, i291)
f1576_0_random_ConstantStackPush(EOS(STATIC_1576), i297, i307, o271, i291) → f1579_0_random_IntArithmetic(EOS(STATIC_1579), i297, i307, o271, i291, 1)
f1579_0_random_IntArithmetic(EOS(STATIC_1579), i297, i307, o271, i291, matching1) → f1582_0_random_FieldAccess(EOS(STATIC_1582), i297, i307, o271, +(i291, 1)) | &&(>(i291, 0), =(matching1, 1))
f1582_0_random_FieldAccess(EOS(STATIC_1582), i297, i307, o271, i309) → f1583_0_random_Load(EOS(STATIC_1583), i297, i307, o271)
f1583_0_random_Load(EOS(STATIC_1583), i297, i307, o271) → f1586_0_random_InvokeMethod(EOS(STATIC_1586), i297, i307, o271)
f1586_0_random_InvokeMethod(EOS(STATIC_1586), i297, i307, java.lang.Object(o274sub)) → f1591_0_random_InvokeMethod(EOS(STATIC_1591), i297, i307, java.lang.Object(o274sub))
f1591_0_random_InvokeMethod(EOS(STATIC_1591), i297, i307, java.lang.Object(o274sub)) → f1595_0_length_Load(EOS(STATIC_1595), i297, i307, java.lang.Object(o274sub), java.lang.Object(o274sub))
f1595_0_length_Load(EOS(STATIC_1595), i297, i307, java.lang.Object(o274sub), java.lang.Object(o274sub)) → f1606_0_length_FieldAccess(EOS(STATIC_1606), i297, i307, java.lang.Object(o274sub), java.lang.Object(o274sub))
f1606_0_length_FieldAccess(EOS(STATIC_1606), i297, i307, java.lang.Object(java.lang.String(o278sub, i318)), java.lang.Object(java.lang.String(o278sub, i318))) → f1608_0_length_FieldAccess(EOS(STATIC_1608), i297, i307, java.lang.Object(java.lang.String(o278sub, i318)), java.lang.Object(java.lang.String(o278sub, i318))) | >=(i318, 0)
f1608_0_length_FieldAccess(EOS(STATIC_1608), i297, i307, java.lang.Object(java.lang.String(o278sub, i318)), java.lang.Object(java.lang.String(o278sub, i318))) → f1614_0_length_Return(EOS(STATIC_1614), i297, i307, java.lang.Object(java.lang.String(o278sub, i318)), i318)
f1614_0_length_Return(EOS(STATIC_1614), i297, i307, java.lang.Object(java.lang.String(o278sub, i318)), i318) → f1620_0_random_Return(EOS(STATIC_1620), i297, i307, i318)
f1620_0_random_Return(EOS(STATIC_1620), i297, i307, i318) → f1622_0_createTree_Store(EOS(STATIC_1622), i297, i307, i318)
f1622_0_createTree_Store(EOS(STATIC_1622), i297, i307, i318) → f1629_0_createTree_ConstantStackPush(EOS(STATIC_1629), i297, i307, i318)
f1629_0_createTree_ConstantStackPush(EOS(STATIC_1629), i297, i307, i318) → f1635_0_createTree_Store(EOS(STATIC_1635), i297, i307, i318, 0)
f1635_0_createTree_Store(EOS(STATIC_1635), i297, i307, i318, matching1) → f1639_0_createTree_Load(EOS(STATIC_1639), i297, i307, i318, 0) | =(matching1, 0)
f1639_0_createTree_Load(EOS(STATIC_1639), i297, i307, i318, matching1) → f2276_0_createTree_Load(EOS(STATIC_2276), i297, i307, i318, 0) | =(matching1, 0)
f2276_0_createTree_Load(EOS(STATIC_2276), i297, i307, i654, i655) → f2881_0_createTree_Load(EOS(STATIC_2881), i297, i307, i654, i655)
f2881_0_createTree_Load(EOS(STATIC_2881), i297, i307, i654, i929) → f4083_0_createTree_Load(EOS(STATIC_4083), i297, i307, i654, i929)
f4083_0_createTree_Load(EOS(STATIC_4083), i297, i307, i654, i1393) → f6867_0_createTree_Load(EOS(STATIC_6867), i297, i307, i654, i1393)
f6867_0_createTree_Load(EOS(STATIC_6867), i297, i307, i654, i2218) → f6890_0_createTree_Load(EOS(STATIC_6890), i297, i307, i654, i2218, i2218)
f6890_0_createTree_Load(EOS(STATIC_6890), i297, i307, i654, i2218, i2218) → f6902_0_createTree_GE(EOS(STATIC_6902), i297, i307, i654, i2218, i2218, i654)
f6902_0_createTree_GE(EOS(STATIC_6902), i297, i307, i654, i2218, i2218, i654) → f6920_0_createTree_GE(EOS(STATIC_6920), i297, i307, i654, i2218, i2218, i654)
f6920_0_createTree_GE(EOS(STATIC_6920), i297, i307, i654, i2218, i2218, i654) → f6941_0_createTree_Load(EOS(STATIC_6941), i297, i307, i654, i2218) | <(i2218, i654)
f6941_0_createTree_Load(EOS(STATIC_6941), i297, i307, i654, i2218) → f6963_0_createTree_Load(EOS(STATIC_6963), i297, i307, i654, i2218)
f6963_0_createTree_Load(EOS(STATIC_6963), i297, i307, i654, i2218) → f6988_0_createTree_ConstantStackPush(EOS(STATIC_6988), i297, i307, i654, i2218, i307)
f6988_0_createTree_ConstantStackPush(EOS(STATIC_6988), i297, i307, i654, i2218, i307) → f7039_0_createTree_IntArithmetic(EOS(STATIC_7039), i297, i307, i654, i2218, i307, 1)
f7039_0_createTree_IntArithmetic(EOS(STATIC_7039), i297, i307, i654, i2218, i307, matching1) → f7064_0_createTree_InvokeMethod(EOS(STATIC_7064), i297, i307, i654, i2218, -(i307, 1)) | &&(>=(i307, 0), =(matching1, 1))
f7064_0_createTree_InvokeMethod(EOS(STATIC_7064), i297, i307, i654, i2218, i2356) → f7067_1_createTree_InvokeMethod(f7067_0_createTree_Load(EOS(STATIC_7067), i2356, i2356), i297, i307, i654, i2218, i2356)
f7067_0_createTree_Load(EOS(STATIC_7067), i2356, i2356) → f7071_0_createTree_Load(EOS(STATIC_7071), i2356, i2356)
f7071_0_createTree_Load(EOS(STATIC_7071), i2356, i2356) → f1516_0_createTree_Load(EOS(STATIC_1516), i2356, i2356)
f1516_0_createTree_Load(EOS(STATIC_1516), i292, i292) → f1518_0_createTree_GT(EOS(STATIC_1518), i292, i292, i292)
f7149_0_createTree_Return(EOS(STATIC_7149), i297, i307, i654, i2218, i2370, i2370) → f7181_0_createTree_InvokeMethod(EOS(STATIC_7181), i297, i307, i654, i2218)
f7181_0_createTree_InvokeMethod(EOS(STATIC_7181), i297, i307, i654, i2218) → f7435_0_addChild_Load(EOS(STATIC_7435), i297, i307, i654, i2218)
f7435_0_addChild_Load(EOS(STATIC_7435), i297, i307, i654, i2218) → f8001_0_addChild_New(EOS(STATIC_8001), i297, i307, i654, i2218)
f8001_0_addChild_New(EOS(STATIC_8001), i297, i307, i654, i2218) → f8123_0_addChild_Duplicate(EOS(STATIC_8123), i297, i307, i654, i2218)
f8123_0_addChild_Duplicate(EOS(STATIC_8123), i297, i307, i654, i2218) → f8321_0_addChild_Load(EOS(STATIC_8321), i297, i307, i654, i2218)
f8321_0_addChild_Load(EOS(STATIC_8321), i297, i307, i654, i2218) → f8495_0_addChild_Load(EOS(STATIC_8495), i297, i307, i654, i2218)
f8495_0_addChild_Load(EOS(STATIC_8495), i297, i307, i654, i2218) → f8741_0_addChild_FieldAccess(EOS(STATIC_8741), i297, i307, i654, i2218)
f8741_0_addChild_FieldAccess(EOS(STATIC_8741), i297, i307, i654, i2218) → f8870_0_addChild_InvokeMethod(EOS(STATIC_8870), i297, i307, i654, i2218)
f8870_0_addChild_InvokeMethod(EOS(STATIC_8870), i297, i307, i654, i2218) → f8948_0__init__Load(EOS(STATIC_8948), i297, i307, i654, i2218)
f8948_0__init__Load(EOS(STATIC_8948), i297, i307, i654, i2218) → f9086_0__init__InvokeMethod(EOS(STATIC_9086), i297, i307, i654, i2218)
f9086_0__init__InvokeMethod(EOS(STATIC_9086), i297, i307, i654, i2218) → f9146_0__init__Load(EOS(STATIC_9146), i297, i307, i654, i2218)
f9146_0__init__Load(EOS(STATIC_9146), i297, i307, i654, i2218) → f9211_0__init__Load(EOS(STATIC_9211), i297, i307, i654, i2218)
f9211_0__init__Load(EOS(STATIC_9211), i297, i307, i654, i2218) → f9274_0__init__FieldAccess(EOS(STATIC_9274), i297, i307, i654, i2218)
f9274_0__init__FieldAccess(EOS(STATIC_9274), i297, i307, i654, i2218) → f9344_0__init__Load(EOS(STATIC_9344), i297, i307, i654, i2218)
f9344_0__init__Load(EOS(STATIC_9344), i297, i307, i654, i2218) → f9390_0__init__Load(EOS(STATIC_9390), i297, i307, i654, i2218)
f9390_0__init__Load(EOS(STATIC_9390), i297, i307, i654, i2218) → f9447_0__init__FieldAccess(EOS(STATIC_9447), i297, i307, i654, i2218)
f9447_0__init__FieldAccess(EOS(STATIC_9447), i297, i307, i654, i2218) → f9516_0__init__Return(EOS(STATIC_9516), i297, i307, i654, i2218)
f9516_0__init__Return(EOS(STATIC_9516), i297, i307, i654, i2218) → f9594_0_addChild_FieldAccess(EOS(STATIC_9594), i297, i307, i654, i2218)
f9594_0_addChild_FieldAccess(EOS(STATIC_9594), i297, i307, i654, i2218) → f9680_0_addChild_Return(EOS(STATIC_9680), i297, i307, i654, i2218)
f9680_0_addChild_Return(EOS(STATIC_9680), i297, i307, i654, i2218) → f9767_0_createTree_Inc(EOS(STATIC_9767), i297, i307, i654, i2218)
f9767_0_createTree_Inc(EOS(STATIC_9767), i297, i307, i654, i2218) → f9817_0_createTree_JMP(EOS(STATIC_9817), i297, i307, i654, +(i2218, 1)) | >=(i2218, 0)
f9817_0_createTree_JMP(EOS(STATIC_9817), i297, i307, i654, i3086) → f9867_0_createTree_Load(EOS(STATIC_9867), i297, i307, i654, i3086)
f9867_0_createTree_Load(EOS(STATIC_9867), i297, i307, i654, i3086) → f6867_0_createTree_Load(EOS(STATIC_6867), i297, i307, i654, i3086)
f7177_0_createTree_Return(EOS(STATIC_7177), i297, i307, i654, i2218, i2411) → f7370_0_createTree_InvokeMethod(EOS(STATIC_7370), i297, i307, i654, i2218)
f7370_0_createTree_InvokeMethod(EOS(STATIC_7370), i297, i307, i654, i2218) → f7611_0_addChild_Load(EOS(STATIC_7611), i297, i307, i654, i2218)
f7611_0_addChild_Load(EOS(STATIC_7611), i297, i307, i654, i2218) → f8086_0_addChild_New(EOS(STATIC_8086), i297, i307, i654, i2218)
f8086_0_addChild_New(EOS(STATIC_8086), i297, i307, i654, i2218) → f8263_0_addChild_Duplicate(EOS(STATIC_8263), i297, i307, i654, i2218)
f8263_0_addChild_Duplicate(EOS(STATIC_8263), i297, i307, i654, i2218) → f8452_0_addChild_Load(EOS(STATIC_8452), i297, i307, i654, i2218)
f8452_0_addChild_Load(EOS(STATIC_8452), i297, i307, i654, i2218) → f8676_0_addChild_Load(EOS(STATIC_8676), i297, i307, i654, i2218)
f8676_0_addChild_Load(EOS(STATIC_8676), i297, i307, i654, i2218) → f8819_0_addChild_FieldAccess(EOS(STATIC_8819), i297, i307, i654, i2218)
f8819_0_addChild_FieldAccess(EOS(STATIC_8819), i297, i307, i654, i2218) → f8907_0_addChild_InvokeMethod(EOS(STATIC_8907), i297, i307, i654, i2218)
f8907_0_addChild_InvokeMethod(EOS(STATIC_8907), i297, i307, i654, i2218) → f8974_0__init__Load(EOS(STATIC_8974), i297, i307, i654, i2218)
f8974_0__init__Load(EOS(STATIC_8974), i297, i307, i654, i2218) → f9120_0__init__InvokeMethod(EOS(STATIC_9120), i297, i307, i654, i2218)
f9120_0__init__InvokeMethod(EOS(STATIC_9120), i297, i307, i654, i2218) → f9177_0__init__Load(EOS(STATIC_9177), i297, i307, i654, i2218)
f9177_0__init__Load(EOS(STATIC_9177), i297, i307, i654, i2218) → f9243_0__init__Load(EOS(STATIC_9243), i297, i307, i654, i2218)
f9243_0__init__Load(EOS(STATIC_9243), i297, i307, i654, i2218) → f9314_0__init__FieldAccess(EOS(STATIC_9314), i297, i307, i654, i2218)
f9314_0__init__FieldAccess(EOS(STATIC_9314), i297, i307, i654, i2218) → f9383_0__init__Load(EOS(STATIC_9383), i297, i307, i654, i2218)
f9383_0__init__Load(EOS(STATIC_9383), i297, i307, i654, i2218) → f9421_0__init__Load(EOS(STATIC_9421), i297, i307, i654, i2218)
f9421_0__init__Load(EOS(STATIC_9421), i297, i307, i654, i2218) → f9482_0__init__FieldAccess(EOS(STATIC_9482), i297, i307, i654, i2218)
f9482_0__init__FieldAccess(EOS(STATIC_9482), i297, i307, i654, i2218) → f9556_0__init__Return(EOS(STATIC_9556), i297, i307, i654, i2218)
f9556_0__init__Return(EOS(STATIC_9556), i297, i307, i654, i2218) → f9636_0_addChild_FieldAccess(EOS(STATIC_9636), i297, i307, i654, i2218)
f9636_0_addChild_FieldAccess(EOS(STATIC_9636), i297, i307, i654, i2218) → f9713_0_addChild_Return(EOS(STATIC_9713), i297, i307, i654, i2218)
f9713_0_addChild_Return(EOS(STATIC_9713), i297, i307, i654, i2218) → f9815_0_createTree_Inc(EOS(STATIC_9815), i297, i307, i654, i2218)
f9815_0_createTree_Inc(EOS(STATIC_9815), i297, i307, i654, i2218) → f9841_0_createTree_JMP(EOS(STATIC_9841), i297, i307, i654, +(i2218, 1)) | >=(i2218, 0)
f9841_0_createTree_JMP(EOS(STATIC_9841), i297, i307, i654, i3089) → f9872_0_createTree_Load(EOS(STATIC_9872), i297, i307, i654, i3089)
f9872_0_createTree_Load(EOS(STATIC_9872), i297, i307, i654, i3089) → f6867_0_createTree_Load(EOS(STATIC_6867), i297, i307, i654, i3089)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(EOS(STATIC_1526), i2370, i2370), i297, i307, i654, i2218, i2370) → f7149_0_createTree_Return(EOS(STATIC_7149), i297, i307, i654, i2218, i2370, i2370)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(EOS(STATIC_6960), i2411), i297, i307, i654, i2218, i2411) → f7177_0_createTree_Return(EOS(STATIC_7177), i297, i307, i654, i2218, i2411)
R rules:
f1516_0_createTree_Load(EOS(STATIC_1516), i292, i292) → f1518_0_createTree_GT(EOS(STATIC_1518), i292, i292, i292)
f1518_0_createTree_GT(EOS(STATIC_1518), i296, i296, i296) → f1520_0_createTree_GT(EOS(STATIC_1520), i296, i296, i296)
f1518_0_createTree_GT(EOS(STATIC_1518), i297, i297, i297) → f1521_0_createTree_GT(EOS(STATIC_1521), i297, i297, i297)
f1520_0_createTree_GT(EOS(STATIC_1520), i296, i296, i296) → f1523_0_createTree_ConstantStackPush(EOS(STATIC_1523), i296, i296) | <=(i296, 0)
f1521_0_createTree_GT(EOS(STATIC_1521), i297, i297, i297) → f1524_0_createTree_Load(EOS(STATIC_1524), i297, i297) | >(i297, 0)
f1523_0_createTree_ConstantStackPush(EOS(STATIC_1523), i296, i296) → f1526_0_createTree_Return(EOS(STATIC_1526), i296, i296)
f1524_0_createTree_Load(EOS(STATIC_1524), i297, i297) → f1527_0_createTree_ConstantStackPush(EOS(STATIC_1527), i297, i297)
f1527_0_createTree_ConstantStackPush(EOS(STATIC_1527), i297, i297) → f1530_0_createTree_IntArithmetic(EOS(STATIC_1530), i297, i297, 1)
f1530_0_createTree_IntArithmetic(EOS(STATIC_1530), i297, i297, matching1) → f1541_0_createTree_Store(EOS(STATIC_1541), i297, -(i297, 1)) | &&(>(i297, 0), =(matching1, 1))
f1541_0_createTree_Store(EOS(STATIC_1541), i297, i307) → f1548_0_createTree_New(EOS(STATIC_1548), i297, i307)
f1548_0_createTree_New(EOS(STATIC_1548), i297, i307) → f1550_0_createTree_Duplicate(EOS(STATIC_1550), i297, i307)
f1550_0_createTree_Duplicate(EOS(STATIC_1550), i297, i307) → f1552_0_createTree_InvokeMethod(EOS(STATIC_1552), i297, i307)
f1552_0_createTree_InvokeMethod(EOS(STATIC_1552), i297, i307) → f1553_0__init__Load(EOS(STATIC_1553), i297, i307)
f1553_0__init__Load(EOS(STATIC_1553), i297, i307) → f1555_0__init__InvokeMethod(EOS(STATIC_1555), i297, i307)
f1555_0__init__InvokeMethod(EOS(STATIC_1555), i297, i307) → f1557_0__init__Load(EOS(STATIC_1557), i297, i307)
f1557_0__init__Load(EOS(STATIC_1557), i297, i307) → f1559_0__init__ConstantStackPush(EOS(STATIC_1559), i297, i307)
f1559_0__init__ConstantStackPush(EOS(STATIC_1559), i297, i307) → f1561_0__init__FieldAccess(EOS(STATIC_1561), i297, i307, NULL)
f1561_0__init__FieldAccess(EOS(STATIC_1561), i297, i307, NULL) → f1562_0__init__Return(EOS(STATIC_1562), i297, i307)
f1562_0__init__Return(EOS(STATIC_1562), i297, i307) → f1563_0_createTree_Store(EOS(STATIC_1563), i297, i307)
f1563_0_createTree_Store(EOS(STATIC_1563), i297, i307) → f1564_0_createTree_InvokeMethod(EOS(STATIC_1564), i297, i307)
f1564_0_createTree_InvokeMethod(EOS(STATIC_1564), i297, i307) → f1565_0_random_FieldAccess(EOS(STATIC_1565), i297, i307)
f1565_0_random_FieldAccess(EOS(STATIC_1565), i297, i307) → f1566_0_random_FieldAccess(EOS(STATIC_1566), i297, i307, java.lang.Object(ARRAY(i92)))
f1566_0_random_FieldAccess(EOS(STATIC_1566), i297, i307, java.lang.Object(ARRAY(i92))) → f1569_0_random_ArrayAccess(EOS(STATIC_1569), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1569_0_random_ArrayAccess(EOS(STATIC_1569), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1570_0_random_ArrayAccess(EOS(STATIC_1570), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1569_0_random_ArrayAccess(EOS(STATIC_1569), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1571_0_random_ArrayAccess(EOS(STATIC_1571), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1570_0_random_ArrayAccess(EOS(STATIC_1570), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1573_0_random_Store(EOS(STATIC_1573), i297, i307, o271) | <(i291, i92)
f1571_0_random_ArrayAccess(EOS(STATIC_1571), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1574_0__init__Load(EOS(STATIC_1574), i297, i307, java.lang.Object(ARRAY(i92)), i291) | >=(i291, i92)
f1573_0_random_Store(EOS(STATIC_1573), i297, i307, o271) → f1575_0_random_FieldAccess(EOS(STATIC_1575), i297, i307, o271)
f1574_0__init__Load(EOS(STATIC_1574), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1577_0__init__InvokeMethod(EOS(STATIC_1577), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1575_0_random_FieldAccess(EOS(STATIC_1575), i297, i307, o271) → f1576_0_random_ConstantStackPush(EOS(STATIC_1576), i297, i307, o271, i291)
f1576_0_random_ConstantStackPush(EOS(STATIC_1576), i297, i307, o271, i291) → f1579_0_random_IntArithmetic(EOS(STATIC_1579), i297, i307, o271, i291, 1)
f1577_0__init__InvokeMethod(EOS(STATIC_1577), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1581_0__init__Load(EOS(STATIC_1581), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1579_0_random_IntArithmetic(EOS(STATIC_1579), i297, i307, o271, i291, matching1) → f1582_0_random_FieldAccess(EOS(STATIC_1582), i297, i307, o271, +(i291, 1)) | &&(>(i291, 0), =(matching1, 1))
f1581_0__init__Load(EOS(STATIC_1581), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1584_0__init__InvokeMethod(EOS(STATIC_1584), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1582_0_random_FieldAccess(EOS(STATIC_1582), i297, i307, o271, i309) → f1583_0_random_Load(EOS(STATIC_1583), i297, i307, o271)
f1583_0_random_Load(EOS(STATIC_1583), i297, i307, o271) → f1586_0_random_InvokeMethod(EOS(STATIC_1586), i297, i307, o271)
f1584_0__init__InvokeMethod(EOS(STATIC_1584), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1588_0__init__Load(EOS(STATIC_1588), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1586_0_random_InvokeMethod(EOS(STATIC_1586), i297, i307, java.lang.Object(o274sub)) → f1591_0_random_InvokeMethod(EOS(STATIC_1591), i297, i307, java.lang.Object(o274sub))
f1586_0_random_InvokeMethod(EOS(STATIC_1586), i297, i307, NULL) → f1592_0_random_InvokeMethod(EOS(STATIC_1592), i297, i307, NULL)
f1588_0__init__Load(EOS(STATIC_1588), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1598_0__init__InvokeMethod(EOS(STATIC_1598), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1591_0_random_InvokeMethod(EOS(STATIC_1591), i297, i307, java.lang.Object(o274sub)) → f1595_0_length_Load(EOS(STATIC_1595), i297, i307, java.lang.Object(o274sub), java.lang.Object(o274sub))
f1592_0_random_InvokeMethod(EOS(STATIC_1592), i297, i307, NULL) → f1596_0_random_InvokeMethod(EOS(STATIC_1596), i297, i307, NULL)
f1595_0_length_Load(EOS(STATIC_1595), i297, i307, java.lang.Object(o274sub), java.lang.Object(o274sub)) → f1606_0_length_FieldAccess(EOS(STATIC_1606), i297, i307, java.lang.Object(o274sub), java.lang.Object(o274sub))
f1596_0_random_InvokeMethod(EOS(STATIC_1596), i297, i307, NULL) → f1601_0__init__Load(EOS(STATIC_1601), i297, i307, NULL)
f1598_0__init__InvokeMethod(EOS(STATIC_1598), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1603_0__init__Load(EOS(STATIC_1603), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1601_0__init__Load(EOS(STATIC_1601), i297, i307, NULL) → f1610_0__init__InvokeMethod(EOS(STATIC_1610), i297, i307, NULL)
f1603_0__init__Load(EOS(STATIC_1603), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1612_0__init__InvokeMethod(EOS(STATIC_1612), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1606_0_length_FieldAccess(EOS(STATIC_1606), i297, i307, java.lang.Object(java.lang.String(o278sub, i318)), java.lang.Object(java.lang.String(o278sub, i318))) → f1608_0_length_FieldAccess(EOS(STATIC_1608), i297, i307, java.lang.Object(java.lang.String(o278sub, i318)), java.lang.Object(java.lang.String(o278sub, i318))) | >=(i318, 0)
f1608_0_length_FieldAccess(EOS(STATIC_1608), i297, i307, java.lang.Object(java.lang.String(o278sub, i318)), java.lang.Object(java.lang.String(o278sub, i318))) → f1614_0_length_Return(EOS(STATIC_1614), i297, i307, java.lang.Object(java.lang.String(o278sub, i318)), i318)
f1610_0__init__InvokeMethod(EOS(STATIC_1610), i297, i307, NULL) → f1616_0__init__Load(EOS(STATIC_1616), i297, i307, NULL)
f1612_0__init__InvokeMethod(EOS(STATIC_1612), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1618_0__init__Load(EOS(STATIC_1618), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1614_0_length_Return(EOS(STATIC_1614), i297, i307, java.lang.Object(java.lang.String(o278sub, i318)), i318) → f1620_0_random_Return(EOS(STATIC_1620), i297, i307, i318)
f1616_0__init__Load(EOS(STATIC_1616), i297, i307, NULL) → f1625_0__init__InvokeMethod(EOS(STATIC_1625), i297, i307, NULL)
f1618_0__init__Load(EOS(STATIC_1618), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1627_0__init__InvokeMethod(EOS(STATIC_1627), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1620_0_random_Return(EOS(STATIC_1620), i297, i307, i318) → f1622_0_createTree_Store(EOS(STATIC_1622), i297, i307, i318)
f1622_0_createTree_Store(EOS(STATIC_1622), i297, i307, i318) → f1629_0_createTree_ConstantStackPush(EOS(STATIC_1629), i297, i307, i318)
f1625_0__init__InvokeMethod(EOS(STATIC_1625), i297, i307, NULL) → f1631_0__init__Load(EOS(STATIC_1631), i297, i307, NULL)
f1627_0__init__InvokeMethod(EOS(STATIC_1627), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1632_0__init__Load(EOS(STATIC_1632), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1629_0_createTree_ConstantStackPush(EOS(STATIC_1629), i297, i307, i318) → f1635_0_createTree_Store(EOS(STATIC_1635), i297, i307, i318, 0)
f1631_0__init__Load(EOS(STATIC_1631), i297, i307, NULL) → f1642_0__init__InvokeMethod(EOS(STATIC_1642), i297, i307, NULL)
f1632_0__init__Load(EOS(STATIC_1632), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1636_0__init__Load(EOS(STATIC_1636), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1635_0_createTree_Store(EOS(STATIC_1635), i297, i307, i318, matching1) → f1639_0_createTree_Load(EOS(STATIC_1639), i297, i307, i318, 0) | =(matching1, 0)
f1636_0__init__Load(EOS(STATIC_1636), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1645_0__init__FieldAccess(EOS(STATIC_1645), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1639_0_createTree_Load(EOS(STATIC_1639), i297, i307, i318, matching1) → f2276_0_createTree_Load(EOS(STATIC_2276), i297, i307, i318, 0) | =(matching1, 0)
f1642_0__init__InvokeMethod(EOS(STATIC_1642), i297, i307, NULL) → f1648_0__init__Load(EOS(STATIC_1648), i297, i307, NULL)
f1645_0__init__FieldAccess(EOS(STATIC_1645), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1656_0__init__Load(EOS(STATIC_1656), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1648_0__init__Load(EOS(STATIC_1648), i297, i307, NULL) → f1666_0__init__InvokeMethod(EOS(STATIC_1666), i297, i307, NULL)
f1656_0__init__Load(EOS(STATIC_1656), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1661_0__init__InvokeMethod(EOS(STATIC_1661), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1661_0__init__InvokeMethod(EOS(STATIC_1661), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1669_0__init__StackPop(EOS(STATIC_1669), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1666_0__init__InvokeMethod(EOS(STATIC_1666), i297, i307, NULL) → f1677_0__init__Load(EOS(STATIC_1677), i297, i307, NULL)
f1669_0__init__StackPop(EOS(STATIC_1669), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1679_0__init__Return(EOS(STATIC_1679), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1677_0__init__Load(EOS(STATIC_1677), i297, i307, NULL) → f1686_0__init__Load(EOS(STATIC_1686), i297, i307, NULL)
f1679_0__init__Return(EOS(STATIC_1679), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1688_0__init__Return(EOS(STATIC_1688), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1686_0__init__Load(EOS(STATIC_1686), i297, i307, NULL) → f1694_0__init__FieldAccess(EOS(STATIC_1694), i297, i307, NULL)
f1688_0__init__Return(EOS(STATIC_1688), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1696_0__init__Return(EOS(STATIC_1696), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1694_0__init__FieldAccess(EOS(STATIC_1694), i297, i307, NULL) → f1724_0__init__Load(EOS(STATIC_1724), i297, i307, NULL)
f1696_0__init__Return(EOS(STATIC_1696), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1726_0__init__Return(EOS(STATIC_1726), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1724_0__init__Load(EOS(STATIC_1724), i297, i307, NULL) → f1732_0__init__InvokeMethod(EOS(STATIC_1732), i297, i307, NULL)
f1726_0__init__Return(EOS(STATIC_1726), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1734_0__init__Return(EOS(STATIC_1734), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1732_0__init__InvokeMethod(EOS(STATIC_1732), i297, i307, NULL) → f1738_0__init__StackPop(EOS(STATIC_1738), i297, i307, NULL)
f1734_0__init__Return(EOS(STATIC_1734), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1741_0_random_ArrayAccess(EOS(STATIC_1741), i297, i307, java.lang.Object(ARRAY(i92)), i291)
f1738_0__init__StackPop(EOS(STATIC_1738), i297, i307, NULL) → f1747_0__init__Return(EOS(STATIC_1747), i297, i307, NULL)
f1741_0_random_ArrayAccess(EOS(STATIC_1741), i297, i307, java.lang.Object(ARRAY(i92)), i291) → f1748_0_createTree_InvokeMethod(EOS(STATIC_1748), i297, i307)
f1747_0__init__Return(EOS(STATIC_1747), i297, i307, NULL) → f1751_0__init__Return(EOS(STATIC_1751), i297, i307, NULL)
f1751_0__init__Return(EOS(STATIC_1751), i297, i307, NULL) → f1800_0__init__Return(EOS(STATIC_1800), i297, i307, NULL)
f1800_0__init__Return(EOS(STATIC_1800), i297, i307, NULL) → f1835_0__init__Return(EOS(STATIC_1835), i297, i307, NULL)
f1835_0__init__Return(EOS(STATIC_1835), i297, i307, NULL) → f1846_0_random_InvokeMethod(EOS(STATIC_1846), i297, i307, NULL)
f1846_0_random_InvokeMethod(EOS(STATIC_1846), i297, i307, NULL) → f1853_0_createTree_InvokeMethod(EOS(STATIC_1853), i297, i307)
f2276_0_createTree_Load(EOS(STATIC_2276), i297, i307, i654, i655) → f2881_0_createTree_Load(EOS(STATIC_2881), i297, i307, i654, i655)
f2881_0_createTree_Load(EOS(STATIC_2881), i297, i307, i654, i929) → f4083_0_createTree_Load(EOS(STATIC_4083), i297, i307, i654, i929)
f4083_0_createTree_Load(EOS(STATIC_4083), i297, i307, i654, i1393) → f6867_0_createTree_Load(EOS(STATIC_6867), i297, i307, i654, i1393)
f6867_0_createTree_Load(EOS(STATIC_6867), i297, i307, i654, i2218) → f6890_0_createTree_Load(EOS(STATIC_6890), i297, i307, i654, i2218, i2218)
f6890_0_createTree_Load(EOS(STATIC_6890), i297, i307, i654, i2218, i2218) → f6902_0_createTree_GE(EOS(STATIC_6902), i297, i307, i654, i2218, i2218, i654)
f6902_0_createTree_GE(EOS(STATIC_6902), i297, i307, i654, i2218, i2218, i654) → f6919_0_createTree_GE(EOS(STATIC_6919), i297, i307, i654, i2218, i2218, i654)
f6902_0_createTree_GE(EOS(STATIC_6902), i297, i307, i654, i2218, i2218, i654) → f6920_0_createTree_GE(EOS(STATIC_6920), i297, i307, i654, i2218, i2218, i654)
f6919_0_createTree_GE(EOS(STATIC_6919), i297, i307, i654, i2218, i2218, i654) → f6926_0_createTree_Load(EOS(STATIC_6926), i297) | >=(i2218, i654)
f6920_0_createTree_GE(EOS(STATIC_6920), i297, i307, i654, i2218, i2218, i654) → f6941_0_createTree_Load(EOS(STATIC_6941), i297, i307, i654, i2218) | <(i2218, i654)
f6926_0_createTree_Load(EOS(STATIC_6926), i297) → f6960_0_createTree_Return(EOS(STATIC_6960), i297)
f6941_0_createTree_Load(EOS(STATIC_6941), i297, i307, i654, i2218) → f6963_0_createTree_Load(EOS(STATIC_6963), i297, i307, i654, i2218)
f6963_0_createTree_Load(EOS(STATIC_6963), i297, i307, i654, i2218) → f6988_0_createTree_ConstantStackPush(EOS(STATIC_6988), i297, i307, i654, i2218, i307)
f6988_0_createTree_ConstantStackPush(EOS(STATIC_6988), i297, i307, i654, i2218, i307) → f7039_0_createTree_IntArithmetic(EOS(STATIC_7039), i297, i307, i654, i2218, i307, 1)
f7039_0_createTree_IntArithmetic(EOS(STATIC_7039), i297, i307, i654, i2218, i307, matching1) → f7064_0_createTree_InvokeMethod(EOS(STATIC_7064), i297, i307, i654, i2218, -(i307, 1)) | &&(>=(i307, 0), =(matching1, 1))
f7064_0_createTree_InvokeMethod(EOS(STATIC_7064), i297, i307, i654, i2218, i2356) → f7067_1_createTree_InvokeMethod(f7067_0_createTree_Load(EOS(STATIC_7067), i2356, i2356), i297, i307, i654, i2218, i2356)
f7067_0_createTree_Load(EOS(STATIC_7067), i2356, i2356) → f7071_0_createTree_Load(EOS(STATIC_7071), i2356, i2356)
f7149_0_createTree_Return(EOS(STATIC_7149), i297, i307, i654, i2218, i2370, i2370) → f7181_0_createTree_InvokeMethod(EOS(STATIC_7181), i297, i307, i654, i2218)
f7152_0_createTree_InvokeMethod(EOS(STATIC_7152), i297, i307, i654, i2218, i2372) → f7173_0_createTree_InvokeMethod(EOS(STATIC_7173), i297, i307, i654, i2218, i2372)
f7172_0_createTree_InvokeMethod(EOS(STATIC_7172), i297, i307, i654, i2218, i2387) → f7173_0_createTree_InvokeMethod(EOS(STATIC_7173), i297, i307, i654, i2218, i2387)
f7173_0_createTree_InvokeMethod(EOS(STATIC_7173), i297, i307, i654, i2218, i2415) → f7313_0_createTree_InvokeMethod(EOS(STATIC_7313), i297, i307, i654, i2218)
f7177_0_createTree_Return(EOS(STATIC_7177), i297, i307, i654, i2218, i2411) → f7370_0_createTree_InvokeMethod(EOS(STATIC_7370), i297, i307, i654, i2218)
f7181_0_createTree_InvokeMethod(EOS(STATIC_7181), i297, i307, i654, i2218) → f7435_0_addChild_Load(EOS(STATIC_7435), i297, i307, i654, i2218)
f7313_0_createTree_InvokeMethod(EOS(STATIC_7313), i297, i307, i654, i2218) → f8210_0_createTree_InvokeMethod(EOS(STATIC_8210), i297, i307, i654, i2218)
f7370_0_createTree_InvokeMethod(EOS(STATIC_7370), i297, i307, i654, i2218) → f7611_0_addChild_Load(EOS(STATIC_7611), i297, i307, i654, i2218)
f7435_0_addChild_Load(EOS(STATIC_7435), i297, i307, i654, i2218) → f8001_0_addChild_New(EOS(STATIC_8001), i297, i307, i654, i2218)
f7611_0_addChild_Load(EOS(STATIC_7611), i297, i307, i654, i2218) → f8086_0_addChild_New(EOS(STATIC_8086), i297, i307, i654, i2218)
f8001_0_addChild_New(EOS(STATIC_8001), i297, i307, i654, i2218) → f8123_0_addChild_Duplicate(EOS(STATIC_8123), i297, i307, i654, i2218)
f8076_0_createTree_InvokeMethod(EOS(STATIC_8076), i297, i307, i654, i2218, i2556, i2557, i2558) → f8210_0_createTree_InvokeMethod(EOS(STATIC_8210), i297, i307, i654, i2218)
f8086_0_addChild_New(EOS(STATIC_8086), i297, i307, i654, i2218) → f8263_0_addChild_Duplicate(EOS(STATIC_8263), i297, i307, i654, i2218)
f8123_0_addChild_Duplicate(EOS(STATIC_8123), i297, i307, i654, i2218) → f8321_0_addChild_Load(EOS(STATIC_8321), i297, i307, i654, i2218)
f8263_0_addChild_Duplicate(EOS(STATIC_8263), i297, i307, i654, i2218) → f8452_0_addChild_Load(EOS(STATIC_8452), i297, i307, i654, i2218)
f8321_0_addChild_Load(EOS(STATIC_8321), i297, i307, i654, i2218) → f8495_0_addChild_Load(EOS(STATIC_8495), i297, i307, i654, i2218)
f8452_0_addChild_Load(EOS(STATIC_8452), i297, i307, i654, i2218) → f8676_0_addChild_Load(EOS(STATIC_8676), i297, i307, i654, i2218)
f8495_0_addChild_Load(EOS(STATIC_8495), i297, i307, i654, i2218) → f8741_0_addChild_FieldAccess(EOS(STATIC_8741), i297, i307, i654, i2218)
f8676_0_addChild_Load(EOS(STATIC_8676), i297, i307, i654, i2218) → f8819_0_addChild_FieldAccess(EOS(STATIC_8819), i297, i307, i654, i2218)
f8741_0_addChild_FieldAccess(EOS(STATIC_8741), i297, i307, i654, i2218) → f8870_0_addChild_InvokeMethod(EOS(STATIC_8870), i297, i307, i654, i2218)
f8797_0_createTree_InvokeMethod(EOS(STATIC_8797), i297, i307, i654, i2218, i2758, i2759, i2760) → f8076_0_createTree_InvokeMethod(EOS(STATIC_8076), i297, i307, i654, i2218, i2758, i2759, i2760)
f8819_0_addChild_FieldAccess(EOS(STATIC_8819), i297, i307, i654, i2218) → f8907_0_addChild_InvokeMethod(EOS(STATIC_8907), i297, i307, i654, i2218)
f8870_0_addChild_InvokeMethod(EOS(STATIC_8870), i297, i307, i654, i2218) → f8948_0__init__Load(EOS(STATIC_8948), i297, i307, i654, i2218)
f8907_0_addChild_InvokeMethod(EOS(STATIC_8907), i297, i307, i654, i2218) → f8974_0__init__Load(EOS(STATIC_8974), i297, i307, i654, i2218)
f8948_0__init__Load(EOS(STATIC_8948), i297, i307, i654, i2218) → f9086_0__init__InvokeMethod(EOS(STATIC_9086), i297, i307, i654, i2218)
f8974_0__init__Load(EOS(STATIC_8974), i297, i307, i654, i2218) → f9120_0__init__InvokeMethod(EOS(STATIC_9120), i297, i307, i654, i2218)
f9086_0__init__InvokeMethod(EOS(STATIC_9086), i297, i307, i654, i2218) → f9146_0__init__Load(EOS(STATIC_9146), i297, i307, i654, i2218)
f9120_0__init__InvokeMethod(EOS(STATIC_9120), i297, i307, i654, i2218) → f9177_0__init__Load(EOS(STATIC_9177), i297, i307, i654, i2218)
f9146_0__init__Load(EOS(STATIC_9146), i297, i307, i654, i2218) → f9211_0__init__Load(EOS(STATIC_9211), i297, i307, i654, i2218)
f9177_0__init__Load(EOS(STATIC_9177), i297, i307, i654, i2218) → f9243_0__init__Load(EOS(STATIC_9243), i297, i307, i654, i2218)
f9211_0__init__Load(EOS(STATIC_9211), i297, i307, i654, i2218) → f9274_0__init__FieldAccess(EOS(STATIC_9274), i297, i307, i654, i2218)
f9243_0__init__Load(EOS(STATIC_9243), i297, i307, i654, i2218) → f9314_0__init__FieldAccess(EOS(STATIC_9314), i297, i307, i654, i2218)
f9274_0__init__FieldAccess(EOS(STATIC_9274), i297, i307, i654, i2218) → f9344_0__init__Load(EOS(STATIC_9344), i297, i307, i654, i2218)
f9314_0__init__FieldAccess(EOS(STATIC_9314), i297, i307, i654, i2218) → f9383_0__init__Load(EOS(STATIC_9383), i297, i307, i654, i2218)
f9344_0__init__Load(EOS(STATIC_9344), i297, i307, i654, i2218) → f9390_0__init__Load(EOS(STATIC_9390), i297, i307, i654, i2218)
f9383_0__init__Load(EOS(STATIC_9383), i297, i307, i654, i2218) → f9421_0__init__Load(EOS(STATIC_9421), i297, i307, i654, i2218)
f9390_0__init__Load(EOS(STATIC_9390), i297, i307, i654, i2218) → f9447_0__init__FieldAccess(EOS(STATIC_9447), i297, i307, i654, i2218)
f9421_0__init__Load(EOS(STATIC_9421), i297, i307, i654, i2218) → f9482_0__init__FieldAccess(EOS(STATIC_9482), i297, i307, i654, i2218)
f9447_0__init__FieldAccess(EOS(STATIC_9447), i297, i307, i654, i2218) → f9516_0__init__Return(EOS(STATIC_9516), i297, i307, i654, i2218)
f9482_0__init__FieldAccess(EOS(STATIC_9482), i297, i307, i654, i2218) → f9556_0__init__Return(EOS(STATIC_9556), i297, i307, i654, i2218)
f9516_0__init__Return(EOS(STATIC_9516), i297, i307, i654, i2218) → f9594_0_addChild_FieldAccess(EOS(STATIC_9594), i297, i307, i654, i2218)
f9556_0__init__Return(EOS(STATIC_9556), i297, i307, i654, i2218) → f9636_0_addChild_FieldAccess(EOS(STATIC_9636), i297, i307, i654, i2218)
f9594_0_addChild_FieldAccess(EOS(STATIC_9594), i297, i307, i654, i2218) → f9680_0_addChild_Return(EOS(STATIC_9680), i297, i307, i654, i2218)
f9636_0_addChild_FieldAccess(EOS(STATIC_9636), i297, i307, i654, i2218) → f9713_0_addChild_Return(EOS(STATIC_9713), i297, i307, i654, i2218)
f9680_0_addChild_Return(EOS(STATIC_9680), i297, i307, i654, i2218) → f9767_0_createTree_Inc(EOS(STATIC_9767), i297, i307, i654, i2218)
f9713_0_addChild_Return(EOS(STATIC_9713), i297, i307, i654, i2218) → f9815_0_createTree_Inc(EOS(STATIC_9815), i297, i307, i654, i2218)
f9767_0_createTree_Inc(EOS(STATIC_9767), i297, i307, i654, i2218) → f9817_0_createTree_JMP(EOS(STATIC_9817), i297, i307, i654, +(i2218, 1)) | >=(i2218, 0)
f9815_0_createTree_Inc(EOS(STATIC_9815), i297, i307, i654, i2218) → f9841_0_createTree_JMP(EOS(STATIC_9841), i297, i307, i654, +(i2218, 1)) | >=(i2218, 0)
f9817_0_createTree_JMP(EOS(STATIC_9817), i297, i307, i654, i3086) → f9867_0_createTree_Load(EOS(STATIC_9867), i297, i307, i654, i3086)
f9841_0_createTree_JMP(EOS(STATIC_9841), i297, i307, i654, i3089) → f9872_0_createTree_Load(EOS(STATIC_9872), i297, i307, i654, i3089)
f9867_0_createTree_Load(EOS(STATIC_9867), i297, i307, i654, i3086) → f6867_0_createTree_Load(EOS(STATIC_6867), i297, i307, i654, i3086)
f9872_0_createTree_Load(EOS(STATIC_9872), i297, i307, i654, i3089) → f6867_0_createTree_Load(EOS(STATIC_6867), i297, i307, i654, i3089)
f7071_0_createTree_Load(EOS(STATIC_7071), i2356, i2356) → f1516_0_createTree_Load(EOS(STATIC_1516), i2356, i2356)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(EOS(STATIC_1526), i2370, i2370), i297, i307, i654, i2218, i2370) → f7149_0_createTree_Return(EOS(STATIC_7149), i297, i307, i654, i2218, i2370, i2370)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(EOS(STATIC_1748), i2380, i2372), i297, i307, i654, i2218, i2380) → f7152_0_createTree_InvokeMethod(EOS(STATIC_7152), i297, i307, i654, i2218, i2372)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(EOS(STATIC_1853), i2393, i2387), i297, i307, i654, i2218, i2393) → f7172_0_createTree_InvokeMethod(EOS(STATIC_7172), i297, i307, i654, i2218, i2387)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(EOS(STATIC_6960), i2411), i297, i307, i654, i2218, i2411) → f7177_0_createTree_Return(EOS(STATIC_7177), i297, i307, i654, i2218, i2411)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(EOS(STATIC_7313), i2564, i2556, i2557, i2558), i297, i307, i654, i2218, i2564) → f8076_0_createTree_InvokeMethod(EOS(STATIC_8076), i297, i307, i654, i2218, i2556, i2557, i2558)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(EOS(STATIC_8210), i2768, i2758, i2759, i2760), i297, i307, i654, i2218, i2768) → f8797_0_createTree_InvokeMethod(EOS(STATIC_8797), i297, i307, i654, i2218, i2758, i2759, i2760)

Combined rules. Obtained 3 conditional rules for P and 12 conditional rules for R.


P rules:
f1518_0_createTree_GT(EOS(STATIC_1518), x0, x0, x0) → f7067_1_createTree_InvokeMethod(f1518_0_createTree_GT(EOS(STATIC_1518), -(x0, 2), -(x0, 2), -(x0, 2)), x0, -(x0, 1), x1, 0, -(x0, 2)) | &&(>(x1, 0), >(+(x0, 1), 1))
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(EOS(STATIC_1526), x0, x0), x1, x2, x3, x4, x0) → f7067_1_createTree_InvokeMethod(f1518_0_createTree_GT(EOS(STATIC_1518), -(x2, 1), -(x2, 1), -(x2, 1)), x1, x2, x3, +(x4, 1), -(x2, 1)) | &&(&&(>(+(x4, 1), 0), >(+(x2, 1), 0)), <(+(x4, 1), x3))
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(EOS(STATIC_6960), x0), x1, x2, x3, x4, x0) → f7067_1_createTree_InvokeMethod(f1518_0_createTree_GT(EOS(STATIC_1518), -(x2, 1), -(x2, 1), -(x2, 1)), x1, x2, x3, +(x4, 1), -(x2, 1)) | &&(&&(>(+(x4, 1), 0), >(+(x2, 1), 0)), <(+(x4, 1), x3))
R rules:
f1518_0_createTree_GT(EOS(STATIC_1518), x0, x0, x0) → f1526_0_createTree_Return(EOS(STATIC_1526), x0, x0) | <=(x0, 0)
f1518_0_createTree_GT(EOS(STATIC_1518), x0, x0, x0) → f1748_0_createTree_InvokeMethod(EOS(STATIC_1748), x0, -(x0, 1)) | >(x0, 0)
f1518_0_createTree_GT(EOS(STATIC_1518), x0, x0, x0) → f1853_0_createTree_InvokeMethod(EOS(STATIC_1853), x0, -(x0, 1)) | >(x0, 0)
f1518_0_createTree_GT(EOS(STATIC_1518), x0, x0, x0) → f6902_0_createTree_GE(EOS(STATIC_6902), x0, -(x0, 1), x1, 0, 0, x1) | &&(>(+(x1, 1), 0), >(x0, 0))
f6902_0_createTree_GE(EOS(STATIC_6902), x0, x1, x2, x3, x3, x2) → f6960_0_createTree_Return(EOS(STATIC_6960), x0) | >=(x3, x2)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(EOS(STATIC_7313), x0, x1, x2, x3), x4, x5, x6, x7, x0) → f8210_0_createTree_InvokeMethod(EOS(STATIC_8210), x4, x5, x6, x7)
f6902_0_createTree_GE(EOS(STATIC_6902), x0, x1, x2, x3, x3, x2) → f7067_1_createTree_InvokeMethod(f1518_0_createTree_GT(EOS(STATIC_1518), -(x1, 1), -(x1, 1), -(x1, 1)), x0, x1, x2, x3, -(x1, 1)) | &&(>(+(x1, 1), 0), <(x3, x2))
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(EOS(STATIC_1526), x0, x0), x1, x2, x3, x4, x0) → f6902_0_createTree_GE(EOS(STATIC_6902), x1, x2, x3, +(x4, 1), +(x4, 1), x3) | >(+(x4, 1), 0)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(EOS(STATIC_1748), x0, x1), x2, x3, x4, x5, x0) → f8210_0_createTree_InvokeMethod(EOS(STATIC_8210), x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(EOS(STATIC_1853), x0, x1), x2, x3, x4, x5, x0) → f8210_0_createTree_InvokeMethod(EOS(STATIC_8210), x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(EOS(STATIC_6960), x0), x1, x2, x3, x4, x0) → f6902_0_createTree_GE(EOS(STATIC_6902), x1, x2, x3, +(x4, 1), +(x4, 1), x3) | >(+(x4, 1), 0)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(EOS(STATIC_8210), x0, x1, x2, x3), x4, x5, x6, x7, x0) → f8210_0_createTree_InvokeMethod(EOS(STATIC_8210), x4, x5, x6, x7)

Filtered ground terms:



f1518_0_createTree_GT(x1, x2, x3, x4) → f1518_0_createTree_GT(x2, x3, x4)
Cond_f1518_0_createTree_GT(x1, x2, x3, x4, x5, x6) → Cond_f1518_0_createTree_GT(x1, x3, x4, x5, x6)
f1526_0_createTree_Return(x1, x2, x3) → f1526_0_createTree_Return(x2, x3)
f6960_0_createTree_Return(x1, x2) → f6960_0_createTree_Return(x2)
Cond_f1518_0_createTree_GT(x1, x2, x3, x4, x5) → Cond_f1518_0_createTree_GT(x1, x3, x4, x5)
Cond_f1518_0_createTree_GT1(x1, x2, x3, x4, x5) → Cond_f1518_0_createTree_GT1(x1, x3, x4, x5)
f1748_0_createTree_InvokeMethod(x1, x2, x3) → f1748_0_createTree_InvokeMethod(x2, x3)
Cond_f1518_0_createTree_GT2(x1, x2, x3, x4, x5) → Cond_f1518_0_createTree_GT2(x1, x3, x4, x5)
f1853_0_createTree_InvokeMethod(x1, x2, x3) → f1853_0_createTree_InvokeMethod(x2, x3)
Cond_f1518_0_createTree_GT3(x1, x2, x3, x4, x5, x6) → Cond_f1518_0_createTree_GT3(x1, x3, x4, x5, x6)
f6902_0_createTree_GE(x1, x2, x3, x4, x5, x6, x7) → f6902_0_createTree_GE(x2, x3, x4, x5, x6, x7)
Cond_f6902_0_createTree_GE(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f6902_0_createTree_GE(x1, x3, x4, x5, x6, x7, x8)
f8210_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
Cond_f6902_0_createTree_GE1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_f6902_0_createTree_GE1(x1, x3, x4, x5, x6, x7, x8)
f7313_0_createTree_InvokeMethod(x1, x2, x3, x4, x5) → f7313_0_createTree_InvokeMethod(x2, x3, x4, x5)

Filtered unneeded arguments:



f7067_1_createTree_InvokeMethod(x1, x2, x3, x4, x5, x6) → f7067_1_createTree_InvokeMethod(x1, x3, x4, x5, x6)
Cond_f7067_1_createTree_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_f7067_1_createTree_InvokeMethod(x1, x2, x4, x5, x6, x7)
Cond_f7067_1_createTree_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7) → Cond_f7067_1_createTree_InvokeMethod1(x1, x4, x5, x6)
f6902_0_createTree_GE(x1, x2, x3, x4, x5, x6) → f6902_0_createTree_GE(x2, x3, x4, x5, x6)
Cond_f6902_0_createTree_GE(x1, x2, x3, x4, x5, x6, x7) → Cond_f6902_0_createTree_GE(x1, x4, x5, x6, x7)
Cond_f6902_0_createTree_GE1(x1, x2, x3, x4, x5, x6, x7) → Cond_f6902_0_createTree_GE1(x1, x3, x4, x5, x6, x7)

Filtered duplicate args:



f1518_0_createTree_GT(x1, x2, x3) → f1518_0_createTree_GT(x3)
Cond_f1518_0_createTree_GT(x1, x2, x3, x4, x5) → Cond_f1518_0_createTree_GT(x1, x4, x5)
f7067_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → f7067_1_createTree_InvokeMethod(x1, x2, x3, x4)
f1526_0_createTree_Return(x1, x2) → f1526_0_createTree_Return(x2)
Cond_f7067_1_createTree_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_f7067_1_createTree_InvokeMethod(x1, x2, x3, x4, x5)
Cond_f1518_0_createTree_GT(x1, x2, x3, x4) → Cond_f1518_0_createTree_GT(x1, x4)
Cond_f1518_0_createTree_GT1(x1, x2, x3, x4) → Cond_f1518_0_createTree_GT1(x1, x4)
Cond_f1518_0_createTree_GT2(x1, x2, x3, x4) → Cond_f1518_0_createTree_GT2(x1, x4)
Cond_f1518_0_createTree_GT3(x1, x2, x3, x4, x5) → Cond_f1518_0_createTree_GT3(x1, x4, x5)
f6902_0_createTree_GE(x1, x2, x3, x4, x5) → f6902_0_createTree_GE(x1, x4, x5)
Cond_f6902_0_createTree_GE(x1, x2, x3, x4, x5) → Cond_f6902_0_createTree_GE(x1, x4, x5)
Cond_f6902_0_createTree_GE1(x1, x2, x3, x4, x5, x6) → Cond_f6902_0_createTree_GE1(x1, x2, x5, x6)

Filtered unneeded arguments:



Cond_f7067_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_f7067_1_createTree_InvokeMethod(x1, x3, x4, x5)
Cond_f1518_0_createTree_GT(x1, x2) → Cond_f1518_0_createTree_GT(x1)
Cond_f1518_0_createTree_GT1(x1, x2) → Cond_f1518_0_createTree_GT1(x1)
Cond_f1518_0_createTree_GT2(x1, x2) → Cond_f1518_0_createTree_GT2(x1)
Cond_f6902_0_createTree_GE(x1, x2, x3) → Cond_f6902_0_createTree_GE(x1)

Combined rules. Obtained 6 conditional rules for P and 11 conditional rules for R.


P rules:
F1518_0_CREATETREE_GT(x0) → F7067_1_CREATETREE_INVOKEMETHOD(f1518_0_createTree_GT(-(x0, 2)), -(x0, 1), x1, 0) | &&(>(x0, 0), >(x1, 0))
F1518_0_CREATETREE_GT(x0) → F1518_0_CREATETREE_GT(-(x0, 2)) | &&(>(x0, 0), >(x1, 0))
F7067_1_CREATETREE_INVOKEMETHOD(f1526_0_createTree_Return(x0), x2, x3, x4) → F7067_1_CREATETREE_INVOKEMETHOD(f1518_0_createTree_GT(-(x2, 1)), x2, x3, +(x4, 1)) | &&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3))
F7067_1_CREATETREE_INVOKEMETHOD(f1526_0_createTree_Return(x0), x2, x3, x4) → F1518_0_CREATETREE_GT(-(x2, 1)) | &&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3))
F7067_1_CREATETREE_INVOKEMETHOD(f6960_0_createTree_Return(x0), x2, x3, x4) → F7067_1_CREATETREE_INVOKEMETHOD(f1518_0_createTree_GT(-(x2, 1)), x2, x3, +(x4, 1)) | &&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3))
F7067_1_CREATETREE_INVOKEMETHOD(f6960_0_createTree_Return(x0), x2, x3, x4) → F1518_0_CREATETREE_GT(-(x2, 1)) | &&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3))
R rules:
f6902_0_createTree_GE(x1, x3, x2) → f6960_0_createTree_Return(x0) | >=(x3, x2)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, +(x4, 1), x3) | >(x4, -1)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, +(x4, 1), x3) | >(x4, -1)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f6902_0_createTree_GE(x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(-(x0, 1)), x0, x2, x1) | &&(&&(>(x2, x1), <=(x0, 1)), >(x0, -1))
f6902_0_createTree_GE(x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(-(x0, 1), -(x0, 2)), x0, x2, x1) | &&(>(x0, 1), >(x2, x1))
f6902_0_createTree_GE(x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(-(x0, 1), -(x0, 2)), x0, x2, x1) | &&(>(x0, 1), >(x2, x1))
f6902_0_createTree_GE(x0, x1, x2) → f7067_1_createTree_InvokeMethod(f6902_0_createTree_GE(-(x0, 2), 0, x3), x0, x2, x1) | &&(&&(>(x3, -1), >(x0, 1)), >(x2, x1))

Finished conversion. Obtained 12 rules for P and 18 rules for R. System has predefined symbols.


P rules:
F1518_0_CREATETREE_GT'(x0) → COND_F1518_0_CREATETREE_GT(&&(>(x0, 0), >(x1, 0)), x0, x1)
COND_F1518_0_CREATETREE_GT(TRUE, x0, x1) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0, 2)), -(x0, 1), x1, 0)
F1518_0_CREATETREE_GT'(x0) → COND_F1518_0_CREATETREE_GT1(>(x0, 0), x0)
COND_F1518_0_CREATETREE_GT1(TRUE, x0) → F1518_0_CREATETREE_GT'(-(x0, 2))
F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f1526_0_createTree_Return(x0), x2, x3, x4)
COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0), x2, x3, x4) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2, 1)), x2, x3, +(x4, 1))
F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f1526_0_createTree_Return(x0), x2, x3, x4)
COND_F7067_1_CREATETREE_INVOKEMETHOD1(TRUE, f1526_0_createTree_Return(x0), x2, x3, x4) → F1518_0_CREATETREE_GT'(-(x2, 1))
F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f6960_0_createTree_Return(x0), x2, x3, x4)
COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0), x2, x3, x4) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2, 1)), x2, x3, +(x4, 1))
F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f6960_0_createTree_Return(x0), x2, x3, x4)
COND_F7067_1_CREATETREE_INVOKEMETHOD3(TRUE, f6960_0_createTree_Return(x0), x2, x3, x4) → F1518_0_CREATETREE_GT'(-(x2, 1))
R rules:
f6902_0_createTree_GE(x1, x3, x2) → Cond_f6902_0_createTree_GE(>=(x3, x2), x1, x3, x2, x0)
Cond_f6902_0_createTree_GE(TRUE, x1, x3, x2, x0) → f6960_0_createTree_Return(x0)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x2, x3, x4) → Cond_f7067_1_createTree_InvokeMethod(>(x4, -1), f1526_0_createTree_Return(x0), x2, x3, x4)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, +(x4, 1), x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x2, x3, x4) → Cond_f7067_1_createTree_InvokeMethod1(>(x4, -1), f6960_0_createTree_Return(x0), x2, x3, x4)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, +(x4, 1), x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE1(&&(&&(>(x2, x1), <=(x0, 1)), >(x0, -1)), x0, x1, x2)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(-(x0, 1)), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE2(&&(>(x0, 1), >(x2, x1)), x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(-(x0, 1), -(x0, 2)), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE3(&&(>(x0, 1), >(x2, x1)), x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(-(x0, 1), -(x0, 2)), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE4(&&(&&(>(x3, -1), >(x0, 1)), >(x2, x1)), x0, x1, x2, x3)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3) → f7067_1_createTree_InvokeMethod(f6902_0_createTree_GE(-(x0, 2), 0, x3), x0, x2, x1)

(12) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
f6902_0_createTree_GE(x1, x3, x2) → Cond_f6902_0_createTree_GE(x3 >= x2, x1, x3, x2, x0)
Cond_f6902_0_createTree_GE(TRUE, x1, x3, x2, x0) → f6960_0_createTree_Return(x0)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x2, x3, x4) → Cond_f7067_1_createTree_InvokeMethod(x4 > -1, f1526_0_createTree_Return(x0), x2, x3, x4)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, x4 + 1, x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x2, x3, x4) → Cond_f7067_1_createTree_InvokeMethod1(x4 > -1, f6960_0_createTree_Return(x0), x2, x3, x4)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, x4 + 1, x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE1(x2 > x1 && x0 <= 1 && x0 > -1, x0, x1, x2)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0 - 1), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE2(x0 > 1 && x2 > x1, x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0 - 1, x0 - 2), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE3(x0 > 1 && x2 > x1, x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0 - 1, x0 - 2), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE4(x3 > -1 && x0 > 1 && x2 > x1, x0, x1, x2, x3)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3) → f7067_1_createTree_InvokeMethod(f6902_0_createTree_GE(x0 - 2, 0, x3), x0, x2, x1)

The integer pair graph contains the following rules and edges:
(0): F1518_0_CREATETREE_GT'(x0[0]) → COND_F1518_0_CREATETREE_GT(x0[0] > 0 && x1[0] > 0, x0[0], x1[0])
(1): COND_F1518_0_CREATETREE_GT(TRUE, x0[1], x1[1]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x0[1] - 2), x0[1] - 1, x1[1], 0)
(2): F1518_0_CREATETREE_GT'(x0[2]) → COND_F1518_0_CREATETREE_GT1(x0[2] > 0, x0[2])
(3): COND_F1518_0_CREATETREE_GT1(TRUE, x0[3]) → F1518_0_CREATETREE_GT'(x0[3] - 2)
(4): F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(x4[4] > -1 && x2[4] > -1 && x4[4] + 1 < x3[4], f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])
(5): COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[5] - 1), x2[5], x3[5], x4[5] + 1)
(6): F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6]) → COND_F7067_1_CREATETREE_INVOKEMETHOD1(x4[6] > -1 && x2[6] > -1 && x4[6] + 1 < x3[6], f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])
(7): COND_F7067_1_CREATETREE_INVOKEMETHOD1(TRUE, f1526_0_createTree_Return(x0[7]), x2[7], x3[7], x4[7]) → F1518_0_CREATETREE_GT'(x2[7] - 1)
(8): F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(x4[8] > -1 && x2[8] > -1 && x4[8] + 1 < x3[8], f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])
(9): COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[9] - 1), x2[9], x3[9], x4[9] + 1)
(10): F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10]) → COND_F7067_1_CREATETREE_INVOKEMETHOD3(x4[10] > -1 && x2[10] > -1 && x4[10] + 1 < x3[10], f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])
(11): COND_F7067_1_CREATETREE_INVOKEMETHOD3(TRUE, f6960_0_createTree_Return(x0[11]), x2[11], x3[11], x4[11]) → F1518_0_CREATETREE_GT'(x2[11] - 1)

(0) -> (1), if (x0[0] > 0 && x1[0] > 0x0[0]* x0[1]x1[0]* x1[1])


(1) -> (4), if (f1518_0_createTree_GT(x0[1] - 2) →* f1526_0_createTree_Return(x0[4])∧x0[1] - 1* x2[4]x1[1]* x3[4]0* x4[4])


(1) -> (6), if (f1518_0_createTree_GT(x0[1] - 2) →* f1526_0_createTree_Return(x0[6])∧x0[1] - 1* x2[6]x1[1]* x3[6]0* x4[6])


(1) -> (8), if (f1518_0_createTree_GT(x0[1] - 2) →* f6960_0_createTree_Return(x0[8])∧x0[1] - 1* x2[8]x1[1]* x3[8]0* x4[8])


(1) -> (10), if (f1518_0_createTree_GT(x0[1] - 2) →* f6960_0_createTree_Return(x0[10])∧x0[1] - 1* x2[10]x1[1]* x3[10]0* x4[10])


(2) -> (3), if (x0[2] > 0x0[2]* x0[3])


(3) -> (0), if (x0[3] - 2* x0[0])


(3) -> (2), if (x0[3] - 2* x0[2])


(4) -> (5), if (x4[4] > -1 && x2[4] > -1 && x4[4] + 1 < x3[4]f1526_0_createTree_Return(x0[4]) →* f1526_0_createTree_Return(x0[5])∧x2[4]* x2[5]x3[4]* x3[5]x4[4]* x4[5])


(5) -> (4), if (f1518_0_createTree_GT(x2[5] - 1) →* f1526_0_createTree_Return(x0[4])∧x2[5]* x2[4]x3[5]* x3[4]x4[5] + 1* x4[4])


(5) -> (6), if (f1518_0_createTree_GT(x2[5] - 1) →* f1526_0_createTree_Return(x0[6])∧x2[5]* x2[6]x3[5]* x3[6]x4[5] + 1* x4[6])


(5) -> (8), if (f1518_0_createTree_GT(x2[5] - 1) →* f6960_0_createTree_Return(x0[8])∧x2[5]* x2[8]x3[5]* x3[8]x4[5] + 1* x4[8])


(5) -> (10), if (f1518_0_createTree_GT(x2[5] - 1) →* f6960_0_createTree_Return(x0[10])∧x2[5]* x2[10]x3[5]* x3[10]x4[5] + 1* x4[10])


(6) -> (7), if (x4[6] > -1 && x2[6] > -1 && x4[6] + 1 < x3[6]f1526_0_createTree_Return(x0[6]) →* f1526_0_createTree_Return(x0[7])∧x2[6]* x2[7]x3[6]* x3[7]x4[6]* x4[7])


(7) -> (0), if (x2[7] - 1* x0[0])


(7) -> (2), if (x2[7] - 1* x0[2])


(8) -> (9), if (x4[8] > -1 && x2[8] > -1 && x4[8] + 1 < x3[8]f6960_0_createTree_Return(x0[8]) →* f6960_0_createTree_Return(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x4[8]* x4[9])


(9) -> (4), if (f1518_0_createTree_GT(x2[9] - 1) →* f1526_0_createTree_Return(x0[4])∧x2[9]* x2[4]x3[9]* x3[4]x4[9] + 1* x4[4])


(9) -> (6), if (f1518_0_createTree_GT(x2[9] - 1) →* f1526_0_createTree_Return(x0[6])∧x2[9]* x2[6]x3[9]* x3[6]x4[9] + 1* x4[6])


(9) -> (8), if (f1518_0_createTree_GT(x2[9] - 1) →* f6960_0_createTree_Return(x0[8])∧x2[9]* x2[8]x3[9]* x3[8]x4[9] + 1* x4[8])


(9) -> (10), if (f1518_0_createTree_GT(x2[9] - 1) →* f6960_0_createTree_Return(x0[10])∧x2[9]* x2[10]x3[9]* x3[10]x4[9] + 1* x4[10])


(10) -> (11), if (x4[10] > -1 && x2[10] > -1 && x4[10] + 1 < x3[10]f6960_0_createTree_Return(x0[10]) →* f6960_0_createTree_Return(x0[11])∧x2[10]* x2[11]x3[10]* x3[11]x4[10]* x4[11])


(11) -> (0), if (x2[11] - 1* x0[0])


(11) -> (2), if (x2[11] - 1* x0[2])



The set Q consists of the following terms:
f6902_0_createTree_GE(x0, x1, x2)
Cond_f6902_0_createTree_GE(TRUE, x0, x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3)

(13) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: false Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpCand1ShapeHeuristic@6e92405f Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 0 Max Right Steps: 0

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair F1518_0_CREATETREE_GT'(x0) → COND_F1518_0_CREATETREE_GT(&&(>(x0, 0), >(x1, 0)), x0, x1) the following chains were created:
  • We consider the chain F1518_0_CREATETREE_GT'(x0[0]) → COND_F1518_0_CREATETREE_GT(&&(>(x0[0], 0), >(x1[0], 0)), x0[0], x1[0]) which results in the following constraint:

    (1)    (F1518_0_CREATETREE_GT'(x0[0])≥NonInfC∧F1518_0_CREATETREE_GT'(x0[0])≥COND_F1518_0_CREATETREE_GT(&&(>(x0[0], 0), >(x1[0], 0)), x0[0], x1[0])∧(UIncreasing(COND_F1518_0_CREATETREE_GT(&&(>(x0[0], 0), >(x1[0], 0)), x0[0], x1[0])), ≥))



    We simplified constraint (1) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (2)    ((UIncreasing(COND_F1518_0_CREATETREE_GT(&&(>(x0[0], 0), >(x1[0], 0)), x0[0], x1[0])), ≥)∧[bni_50] = 0∧[(-1)bso_51] ≥ 0)



    We simplified constraint (2) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (3)    ((UIncreasing(COND_F1518_0_CREATETREE_GT(&&(>(x0[0], 0), >(x1[0], 0)), x0[0], x1[0])), ≥)∧[bni_50] = 0∧[(-1)bso_51] ≥ 0)



    We simplified constraint (3) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (4)    ((UIncreasing(COND_F1518_0_CREATETREE_GT(&&(>(x0[0], 0), >(x1[0], 0)), x0[0], x1[0])), ≥)∧[bni_50] = 0∧[(-1)bso_51] ≥ 0)



    We simplified constraint (4) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (5)    ((UIncreasing(COND_F1518_0_CREATETREE_GT(&&(>(x0[0], 0), >(x1[0], 0)), x0[0], x1[0])), ≥)∧[bni_50] = 0∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)







For Pair COND_F1518_0_CREATETREE_GT(TRUE, x0, x1) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0, 2)), -(x0, 1), x1, 0) the following chains were created:
  • We consider the chain COND_F1518_0_CREATETREE_GT(TRUE, x0[1], x1[1]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0[1], 2)), -(x0[1], 1), x1[1], 0) which results in the following constraint:

    (6)    (COND_F1518_0_CREATETREE_GT(TRUE, x0[1], x1[1])≥NonInfC∧COND_F1518_0_CREATETREE_GT(TRUE, x0[1], x1[1])≥F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0[1], 2)), -(x0[1], 1), x1[1], 0)∧(UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0[1], 2)), -(x0[1], 1), x1[1], 0)), ≥))



    We simplified constraint (6) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (7)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0[1], 2)), -(x0[1], 1), x1[1], 0)), ≥)∧[bni_52] = 0∧[1 + (-1)bso_53] ≥ 0)



    We simplified constraint (7) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (8)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0[1], 2)), -(x0[1], 1), x1[1], 0)), ≥)∧[bni_52] = 0∧[1 + (-1)bso_53] ≥ 0)



    We simplified constraint (8) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (9)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0[1], 2)), -(x0[1], 1), x1[1], 0)), ≥)∧[bni_52] = 0∧[1 + (-1)bso_53] ≥ 0)



    We simplified constraint (9) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (10)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0[1], 2)), -(x0[1], 1), x1[1], 0)), ≥)∧[bni_52] = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_53] ≥ 0)







For Pair F1518_0_CREATETREE_GT'(x0) → COND_F1518_0_CREATETREE_GT1(>(x0, 0), x0) the following chains were created:
  • We consider the chain F1518_0_CREATETREE_GT'(x0[2]) → COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2]), COND_F1518_0_CREATETREE_GT1(TRUE, x0[3]) → F1518_0_CREATETREE_GT'(-(x0[3], 2)) which results in the following constraint:

    (11)    (>(x0[2], 0)=TRUEx0[2]=x0[3]F1518_0_CREATETREE_GT'(x0[2])≥NonInfC∧F1518_0_CREATETREE_GT'(x0[2])≥COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2])∧(UIncreasing(COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2])), ≥))



    We simplified constraint (11) using rule (IV) which results in the following new constraint:

    (12)    (>(x0[2], 0)=TRUEF1518_0_CREATETREE_GT'(x0[2])≥NonInfC∧F1518_0_CREATETREE_GT'(x0[2])≥COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2])∧(UIncreasing(COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2])), ≥))



    We simplified constraint (12) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (13)    (x0[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2])), ≥)∧[(-1)bni_54 + (-1)Bound*bni_54] + [bni_54]x0[2] ≥ 0∧[(-1)bso_55] ≥ 0)



    We simplified constraint (13) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (14)    (x0[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2])), ≥)∧[(-1)bni_54 + (-1)Bound*bni_54] + [bni_54]x0[2] ≥ 0∧[(-1)bso_55] ≥ 0)



    We simplified constraint (14) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (15)    (x0[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2])), ≥)∧[(-1)bni_54 + (-1)Bound*bni_54] + [bni_54]x0[2] ≥ 0∧[(-1)bso_55] ≥ 0)



    We simplified constraint (15) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (16)    (x0[2] ≥ 0 ⇒ (UIncreasing(COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2])), ≥)∧[(-1)Bound*bni_54] + [bni_54]x0[2] ≥ 0∧[(-1)bso_55] ≥ 0)







For Pair COND_F1518_0_CREATETREE_GT1(TRUE, x0) → F1518_0_CREATETREE_GT'(-(x0, 2)) the following chains were created:
  • We consider the chain COND_F1518_0_CREATETREE_GT1(TRUE, x0[3]) → F1518_0_CREATETREE_GT'(-(x0[3], 2)) which results in the following constraint:

    (17)    (COND_F1518_0_CREATETREE_GT1(TRUE, x0[3])≥NonInfC∧COND_F1518_0_CREATETREE_GT1(TRUE, x0[3])≥F1518_0_CREATETREE_GT'(-(x0[3], 2))∧(UIncreasing(F1518_0_CREATETREE_GT'(-(x0[3], 2))), ≥))



    We simplified constraint (17) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (18)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x0[3], 2))), ≥)∧[bni_56] = 0∧[2 + (-1)bso_57] ≥ 0)



    We simplified constraint (18) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (19)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x0[3], 2))), ≥)∧[bni_56] = 0∧[2 + (-1)bso_57] ≥ 0)



    We simplified constraint (19) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (20)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x0[3], 2))), ≥)∧[bni_56] = 0∧[2 + (-1)bso_57] ≥ 0)



    We simplified constraint (20) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (21)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x0[3], 2))), ≥)∧[bni_56] = 0∧0 = 0∧[2 + (-1)bso_57] ≥ 0)







For Pair F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f1526_0_createTree_Return(x0), x2, x3, x4) the following chains were created:
  • We consider the chain F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]), COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1)) which results in the following constraint:

    (22)    (&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4]))=TRUEf1526_0_createTree_Return(x0[4])=f1526_0_createTree_Return(x0[5])∧x2[4]=x2[5]x3[4]=x3[5]x4[4]=x4[5]F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])≥COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥))



    We simplified constraint (22) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (23)    (<(+(x4[4], 1), x3[4])=TRUE>(x4[4], -1)=TRUE>(x2[4], -1)=TRUEF7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])≥COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥))



    We simplified constraint (23) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (24)    (x3[4] + [-2] + [-1]x4[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧[(-1)bni_58 + (-1)Bound*bni_58] + [bni_58]x2[4] ≥ 0∧[(-1)bso_59] ≥ 0)



    We simplified constraint (24) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (25)    (x3[4] + [-2] + [-1]x4[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧[(-1)bni_58 + (-1)Bound*bni_58] + [bni_58]x2[4] ≥ 0∧[(-1)bso_59] ≥ 0)



    We simplified constraint (25) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (26)    (x3[4] + [-2] + [-1]x4[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧[(-1)bni_58 + (-1)Bound*bni_58] + [bni_58]x2[4] ≥ 0∧[(-1)bso_59] ≥ 0)



    We simplified constraint (26) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (27)    (x3[4] + [-2] + [-1]x4[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧0 = 0∧[(-1)bni_58 + (-1)Bound*bni_58] + [bni_58]x2[4] ≥ 0∧0 = 0∧[(-1)bso_59] ≥ 0)



    We simplified constraint (27) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (28)    (x3[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧0 = 0∧[(-1)bni_58 + (-1)Bound*bni_58] + [bni_58]x2[4] ≥ 0∧0 = 0∧[(-1)bso_59] ≥ 0)







For Pair COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0), x2, x3, x4) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2, 1)), x2, x3, +(x4, 1)) the following chains were created:
  • We consider the chain COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1)) which results in the following constraint:

    (29)    (COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5])≥NonInfC∧COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5])≥F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))∧(UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥))



    We simplified constraint (29) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (30)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥)∧[bni_60] = 0∧[(-1)bso_61] ≥ 0)



    We simplified constraint (30) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (31)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥)∧[bni_60] = 0∧[(-1)bso_61] ≥ 0)



    We simplified constraint (31) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (32)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥)∧[bni_60] = 0∧[(-1)bso_61] ≥ 0)



    We simplified constraint (32) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (33)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥)∧[bni_60] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_61] ≥ 0)







For Pair F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f1526_0_createTree_Return(x0), x2, x3, x4) the following chains were created:
  • We consider the chain F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6]) → COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6]), COND_F7067_1_CREATETREE_INVOKEMETHOD1(TRUE, f1526_0_createTree_Return(x0[7]), x2[7], x3[7], x4[7]) → F1518_0_CREATETREE_GT'(-(x2[7], 1)) which results in the following constraint:

    (34)    (&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6]))=TRUEf1526_0_createTree_Return(x0[6])=f1526_0_createTree_Return(x0[7])∧x2[6]=x2[7]x3[6]=x3[7]x4[6]=x4[7]F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])≥COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])), ≥))



    We simplified constraint (34) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (35)    (<(+(x4[6], 1), x3[6])=TRUE>(x4[6], -1)=TRUE>(x2[6], -1)=TRUEF7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])≥COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])), ≥))



    We simplified constraint (35) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (36)    (x3[6] + [-2] + [-1]x4[6] ≥ 0∧x4[6] ≥ 0∧x2[6] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])), ≥)∧[(-1)bni_62 + (-1)Bound*bni_62] + [bni_62]x2[6] ≥ 0∧[(-1)bso_63] ≥ 0)



    We simplified constraint (36) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (37)    (x3[6] + [-2] + [-1]x4[6] ≥ 0∧x4[6] ≥ 0∧x2[6] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])), ≥)∧[(-1)bni_62 + (-1)Bound*bni_62] + [bni_62]x2[6] ≥ 0∧[(-1)bso_63] ≥ 0)



    We simplified constraint (37) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (38)    (x3[6] + [-2] + [-1]x4[6] ≥ 0∧x4[6] ≥ 0∧x2[6] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])), ≥)∧[(-1)bni_62 + (-1)Bound*bni_62] + [bni_62]x2[6] ≥ 0∧[(-1)bso_63] ≥ 0)



    We simplified constraint (38) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (39)    (x3[6] + [-2] + [-1]x4[6] ≥ 0∧x4[6] ≥ 0∧x2[6] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])), ≥)∧0 = 0∧[(-1)bni_62 + (-1)Bound*bni_62] + [bni_62]x2[6] ≥ 0∧0 = 0∧[(-1)bso_63] ≥ 0)



    We simplified constraint (39) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (40)    (x3[6] ≥ 0∧x4[6] ≥ 0∧x2[6] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])), ≥)∧0 = 0∧[(-1)bni_62 + (-1)Bound*bni_62] + [bni_62]x2[6] ≥ 0∧0 = 0∧[(-1)bso_63] ≥ 0)







For Pair COND_F7067_1_CREATETREE_INVOKEMETHOD1(TRUE, f1526_0_createTree_Return(x0), x2, x3, x4) → F1518_0_CREATETREE_GT'(-(x2, 1)) the following chains were created:
  • We consider the chain COND_F7067_1_CREATETREE_INVOKEMETHOD1(TRUE, f1526_0_createTree_Return(x0[7]), x2[7], x3[7], x4[7]) → F1518_0_CREATETREE_GT'(-(x2[7], 1)) which results in the following constraint:

    (41)    (COND_F7067_1_CREATETREE_INVOKEMETHOD1(TRUE, f1526_0_createTree_Return(x0[7]), x2[7], x3[7], x4[7])≥NonInfC∧COND_F7067_1_CREATETREE_INVOKEMETHOD1(TRUE, f1526_0_createTree_Return(x0[7]), x2[7], x3[7], x4[7])≥F1518_0_CREATETREE_GT'(-(x2[7], 1))∧(UIncreasing(F1518_0_CREATETREE_GT'(-(x2[7], 1))), ≥))



    We simplified constraint (41) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (42)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x2[7], 1))), ≥)∧[bni_64] = 0∧[1 + (-1)bso_65] ≥ 0)



    We simplified constraint (42) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (43)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x2[7], 1))), ≥)∧[bni_64] = 0∧[1 + (-1)bso_65] ≥ 0)



    We simplified constraint (43) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (44)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x2[7], 1))), ≥)∧[bni_64] = 0∧[1 + (-1)bso_65] ≥ 0)



    We simplified constraint (44) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (45)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x2[7], 1))), ≥)∧[bni_64] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_65] ≥ 0)







For Pair F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f6960_0_createTree_Return(x0), x2, x3, x4) the following chains were created:
  • We consider the chain F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]), COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1)) which results in the following constraint:

    (46)    (&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8]))=TRUEf6960_0_createTree_Return(x0[8])=f6960_0_createTree_Return(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x4[8]=x4[9]F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])≥COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥))



    We simplified constraint (46) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (47)    (<(+(x4[8], 1), x3[8])=TRUE>(x4[8], -1)=TRUE>(x2[8], -1)=TRUEF7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])≥COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥))



    We simplified constraint (47) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (48)    (x3[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [bni_66]x2[8] ≥ 0∧[(-1)bso_67] ≥ 0)



    We simplified constraint (48) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (49)    (x3[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [bni_66]x2[8] ≥ 0∧[(-1)bso_67] ≥ 0)



    We simplified constraint (49) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (50)    (x3[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [bni_66]x2[8] ≥ 0∧[(-1)bso_67] ≥ 0)



    We simplified constraint (50) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (51)    (x3[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧0 = 0∧[(-1)bni_66 + (-1)Bound*bni_66] + [bni_66]x2[8] ≥ 0∧0 = 0∧[(-1)bso_67] ≥ 0)



    We simplified constraint (51) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (52)    (x3[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧0 = 0∧[(-1)bni_66 + (-1)Bound*bni_66] + [bni_66]x2[8] ≥ 0∧0 = 0∧[(-1)bso_67] ≥ 0)







For Pair COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0), x2, x3, x4) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2, 1)), x2, x3, +(x4, 1)) the following chains were created:
  • We consider the chain COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1)) which results in the following constraint:

    (53)    (COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9])≥NonInfC∧COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9])≥F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))∧(UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥))



    We simplified constraint (53) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (54)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥)∧[bni_68] = 0∧[(-1)bso_69] ≥ 0)



    We simplified constraint (54) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (55)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥)∧[bni_68] = 0∧[(-1)bso_69] ≥ 0)



    We simplified constraint (55) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (56)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥)∧[bni_68] = 0∧[(-1)bso_69] ≥ 0)



    We simplified constraint (56) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (57)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥)∧[bni_68] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_69] ≥ 0)







For Pair F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f6960_0_createTree_Return(x0), x2, x3, x4) the following chains were created:
  • We consider the chain F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10]) → COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10]), COND_F7067_1_CREATETREE_INVOKEMETHOD3(TRUE, f6960_0_createTree_Return(x0[11]), x2[11], x3[11], x4[11]) → F1518_0_CREATETREE_GT'(-(x2[11], 1)) which results in the following constraint:

    (58)    (&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10]))=TRUEf6960_0_createTree_Return(x0[10])=f6960_0_createTree_Return(x0[11])∧x2[10]=x2[11]x3[10]=x3[11]x4[10]=x4[11]F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])≥COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])), ≥))



    We simplified constraint (58) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (59)    (<(+(x4[10], 1), x3[10])=TRUE>(x4[10], -1)=TRUE>(x2[10], -1)=TRUEF7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])≥COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])), ≥))



    We simplified constraint (59) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (60)    (x3[10] + [-2] + [-1]x4[10] ≥ 0∧x4[10] ≥ 0∧x2[10] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])), ≥)∧[(-1)bni_70 + (-1)Bound*bni_70] + [bni_70]x2[10] ≥ 0∧[(-1)bso_71] ≥ 0)



    We simplified constraint (60) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (61)    (x3[10] + [-2] + [-1]x4[10] ≥ 0∧x4[10] ≥ 0∧x2[10] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])), ≥)∧[(-1)bni_70 + (-1)Bound*bni_70] + [bni_70]x2[10] ≥ 0∧[(-1)bso_71] ≥ 0)



    We simplified constraint (61) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (62)    (x3[10] + [-2] + [-1]x4[10] ≥ 0∧x4[10] ≥ 0∧x2[10] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])), ≥)∧[(-1)bni_70 + (-1)Bound*bni_70] + [bni_70]x2[10] ≥ 0∧[(-1)bso_71] ≥ 0)



    We simplified constraint (62) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (63)    (x3[10] + [-2] + [-1]x4[10] ≥ 0∧x4[10] ≥ 0∧x2[10] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])), ≥)∧0 = 0∧[(-1)bni_70 + (-1)Bound*bni_70] + [bni_70]x2[10] ≥ 0∧0 = 0∧[(-1)bso_71] ≥ 0)



    We simplified constraint (63) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (64)    (x3[10] ≥ 0∧x4[10] ≥ 0∧x2[10] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])), ≥)∧0 = 0∧[(-1)bni_70 + (-1)Bound*bni_70] + [bni_70]x2[10] ≥ 0∧0 = 0∧[(-1)bso_71] ≥ 0)







For Pair COND_F7067_1_CREATETREE_INVOKEMETHOD3(TRUE, f6960_0_createTree_Return(x0), x2, x3, x4) → F1518_0_CREATETREE_GT'(-(x2, 1)) the following chains were created:
  • We consider the chain COND_F7067_1_CREATETREE_INVOKEMETHOD3(TRUE, f6960_0_createTree_Return(x0[11]), x2[11], x3[11], x4[11]) → F1518_0_CREATETREE_GT'(-(x2[11], 1)) which results in the following constraint:

    (65)    (COND_F7067_1_CREATETREE_INVOKEMETHOD3(TRUE, f6960_0_createTree_Return(x0[11]), x2[11], x3[11], x4[11])≥NonInfC∧COND_F7067_1_CREATETREE_INVOKEMETHOD3(TRUE, f6960_0_createTree_Return(x0[11]), x2[11], x3[11], x4[11])≥F1518_0_CREATETREE_GT'(-(x2[11], 1))∧(UIncreasing(F1518_0_CREATETREE_GT'(-(x2[11], 1))), ≥))



    We simplified constraint (65) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (66)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x2[11], 1))), ≥)∧[bni_72] = 0∧[1 + (-1)bso_73] ≥ 0)



    We simplified constraint (66) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (67)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x2[11], 1))), ≥)∧[bni_72] = 0∧[1 + (-1)bso_73] ≥ 0)



    We simplified constraint (67) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (68)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x2[11], 1))), ≥)∧[bni_72] = 0∧[1 + (-1)bso_73] ≥ 0)



    We simplified constraint (68) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (69)    ((UIncreasing(F1518_0_CREATETREE_GT'(-(x2[11], 1))), ≥)∧[bni_72] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_73] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • F1518_0_CREATETREE_GT'(x0) → COND_F1518_0_CREATETREE_GT(&&(>(x0, 0), >(x1, 0)), x0, x1)
    • ((UIncreasing(COND_F1518_0_CREATETREE_GT(&&(>(x0[0], 0), >(x1[0], 0)), x0[0], x1[0])), ≥)∧[bni_50] = 0∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)

  • COND_F1518_0_CREATETREE_GT(TRUE, x0, x1) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0, 2)), -(x0, 1), x1, 0)
    • ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0[1], 2)), -(x0[1], 1), x1[1], 0)), ≥)∧[bni_52] = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_53] ≥ 0)

  • F1518_0_CREATETREE_GT'(x0) → COND_F1518_0_CREATETREE_GT1(>(x0, 0), x0)
    • (x0[2] ≥ 0 ⇒ (UIncreasing(COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2])), ≥)∧[(-1)Bound*bni_54] + [bni_54]x0[2] ≥ 0∧[(-1)bso_55] ≥ 0)

  • COND_F1518_0_CREATETREE_GT1(TRUE, x0) → F1518_0_CREATETREE_GT'(-(x0, 2))
    • ((UIncreasing(F1518_0_CREATETREE_GT'(-(x0[3], 2))), ≥)∧[bni_56] = 0∧0 = 0∧[2 + (-1)bso_57] ≥ 0)

  • F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f1526_0_createTree_Return(x0), x2, x3, x4)
    • (x3[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧0 = 0∧[(-1)bni_58 + (-1)Bound*bni_58] + [bni_58]x2[4] ≥ 0∧0 = 0∧[(-1)bso_59] ≥ 0)

  • COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0), x2, x3, x4) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2, 1)), x2, x3, +(x4, 1))
    • ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥)∧[bni_60] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_61] ≥ 0)

  • F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f1526_0_createTree_Return(x0), x2, x3, x4)
    • (x3[6] ≥ 0∧x4[6] ≥ 0∧x2[6] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])), ≥)∧0 = 0∧[(-1)bni_62 + (-1)Bound*bni_62] + [bni_62]x2[6] ≥ 0∧0 = 0∧[(-1)bso_63] ≥ 0)

  • COND_F7067_1_CREATETREE_INVOKEMETHOD1(TRUE, f1526_0_createTree_Return(x0), x2, x3, x4) → F1518_0_CREATETREE_GT'(-(x2, 1))
    • ((UIncreasing(F1518_0_CREATETREE_GT'(-(x2[7], 1))), ≥)∧[bni_64] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_65] ≥ 0)

  • F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f6960_0_createTree_Return(x0), x2, x3, x4)
    • (x3[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧0 = 0∧[(-1)bni_66 + (-1)Bound*bni_66] + [bni_66]x2[8] ≥ 0∧0 = 0∧[(-1)bso_67] ≥ 0)

  • COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0), x2, x3, x4) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2, 1)), x2, x3, +(x4, 1))
    • ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥)∧[bni_68] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_69] ≥ 0)

  • F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0), x2, x3, x4) → COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4, -1), >(x2, -1)), <(+(x4, 1), x3)), f6960_0_createTree_Return(x0), x2, x3, x4)
    • (x3[10] ≥ 0∧x4[10] ≥ 0∧x2[10] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])), ≥)∧0 = 0∧[(-1)bni_70 + (-1)Bound*bni_70] + [bni_70]x2[10] ≥ 0∧0 = 0∧[(-1)bso_71] ≥ 0)

  • COND_F7067_1_CREATETREE_INVOKEMETHOD3(TRUE, f6960_0_createTree_Return(x0), x2, x3, x4) → F1518_0_CREATETREE_GT'(-(x2, 1))
    • ((UIncreasing(F1518_0_CREATETREE_GT'(-(x2[11], 1))), ≥)∧[bni_72] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_73] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(f6902_0_createTree_GE(x1, x2, x3)) = [-1] + [-1]x2 + [-1]x3 + [-1]x1   
POL(Cond_f6902_0_createTree_GE(x1, x2, x3, x4, x5)) = [-1] + [-1]x3 + [-1]x4 + [-1]x2   
POL(>=(x1, x2)) = [-1]   
POL(f6960_0_createTree_Return(x1)) = x1   
POL(f7067_1_createTree_InvokeMethod(x1, x2, x3, x4)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1 + [-1]x4   
POL(f1526_0_createTree_Return(x1)) = x1   
POL(Cond_f7067_1_createTree_InvokeMethod(x1, x2, x3, x4, x5)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x5   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(f1748_0_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(f8210_0_createTree_InvokeMethod(x1, x2, x3, x4)) = [-1] + [-1]x1 + [-1]x3 + [-1]x2 + [-1]x4   
POL(f1853_0_createTree_InvokeMethod(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(Cond_f7067_1_createTree_InvokeMethod1(x1, x2, x3, x4, x5)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x5   
POL(f7313_0_createTree_InvokeMethod(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x1   
POL(Cond_f6902_0_createTree_GE1(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(<=(x1, x2)) = [-1]   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(Cond_f6902_0_createTree_GE2(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(2) = [2]   
POL(Cond_f6902_0_createTree_GE3(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2   
POL(Cond_f6902_0_createTree_GE4(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + [-1]x4 + [-1]x3 + [-1]x2   
POL(0) = 0   
POL(F1518_0_CREATETREE_GT'(x1)) = [-1] + x1   
POL(COND_F1518_0_CREATETREE_GT(x1, x2, x3)) = [-1] + x2   
POL(F7067_1_CREATETREE_INVOKEMETHOD'(x1, x2, x3, x4)) = [-1] + x2   
POL(f1518_0_createTree_GT(x1)) = x1   
POL(COND_F1518_0_CREATETREE_GT1(x1, x2)) = [-1] + x2   
POL(COND_F7067_1_CREATETREE_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x3   
POL(<(x1, x2)) = [-1]   
POL(COND_F7067_1_CREATETREE_INVOKEMETHOD1(x1, x2, x3, x4, x5)) = [-1] + x3   
POL(COND_F7067_1_CREATETREE_INVOKEMETHOD2(x1, x2, x3, x4, x5)) = [-1] + x3   
POL(COND_F7067_1_CREATETREE_INVOKEMETHOD3(x1, x2, x3, x4, x5)) = [-1] + x3   

The following pairs are in P>:

COND_F1518_0_CREATETREE_GT(TRUE, x0[1], x1[1]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x0[1], 2)), -(x0[1], 1), x1[1], 0)
COND_F1518_0_CREATETREE_GT1(TRUE, x0[3]) → F1518_0_CREATETREE_GT'(-(x0[3], 2))
COND_F7067_1_CREATETREE_INVOKEMETHOD1(TRUE, f1526_0_createTree_Return(x0[7]), x2[7], x3[7], x4[7]) → F1518_0_CREATETREE_GT'(-(x2[7], 1))
COND_F7067_1_CREATETREE_INVOKEMETHOD3(TRUE, f6960_0_createTree_Return(x0[11]), x2[11], x3[11], x4[11]) → F1518_0_CREATETREE_GT'(-(x2[11], 1))

The following pairs are in Pbound:

F1518_0_CREATETREE_GT'(x0[2]) → COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2])
F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])
F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6]) → COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])
F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])
F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10]) → COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])

The following pairs are in P:

F1518_0_CREATETREE_GT'(x0[0]) → COND_F1518_0_CREATETREE_GT(&&(>(x0[0], 0), >(x1[0], 0)), x0[0], x1[0])
F1518_0_CREATETREE_GT'(x0[2]) → COND_F1518_0_CREATETREE_GT1(>(x0[2], 0), x0[2])
F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])
COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))
F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6]) → COND_F7067_1_CREATETREE_INVOKEMETHOD1(&&(&&(>(x4[6], -1), >(x2[6], -1)), <(+(x4[6], 1), x3[6])), f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])
F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])
COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))
F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10]) → COND_F7067_1_CREATETREE_INVOKEMETHOD3(&&(&&(>(x4[10], -1), >(x2[10], -1)), <(+(x4[10], 1), x3[10])), f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])

There are no usable rules.

(14) Complex Obligation (AND)

(15) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
f6902_0_createTree_GE(x1, x3, x2) → Cond_f6902_0_createTree_GE(x3 >= x2, x1, x3, x2, x0)
Cond_f6902_0_createTree_GE(TRUE, x1, x3, x2, x0) → f6960_0_createTree_Return(x0)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x2, x3, x4) → Cond_f7067_1_createTree_InvokeMethod(x4 > -1, f1526_0_createTree_Return(x0), x2, x3, x4)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, x4 + 1, x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x2, x3, x4) → Cond_f7067_1_createTree_InvokeMethod1(x4 > -1, f6960_0_createTree_Return(x0), x2, x3, x4)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, x4 + 1, x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE1(x2 > x1 && x0 <= 1 && x0 > -1, x0, x1, x2)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0 - 1), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE2(x0 > 1 && x2 > x1, x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0 - 1, x0 - 2), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE3(x0 > 1 && x2 > x1, x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0 - 1, x0 - 2), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE4(x3 > -1 && x0 > 1 && x2 > x1, x0, x1, x2, x3)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3) → f7067_1_createTree_InvokeMethod(f6902_0_createTree_GE(x0 - 2, 0, x3), x0, x2, x1)

The integer pair graph contains the following rules and edges:
(0): F1518_0_CREATETREE_GT'(x0[0]) → COND_F1518_0_CREATETREE_GT(x0[0] > 0 && x1[0] > 0, x0[0], x1[0])
(2): F1518_0_CREATETREE_GT'(x0[2]) → COND_F1518_0_CREATETREE_GT1(x0[2] > 0, x0[2])
(4): F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(x4[4] > -1 && x2[4] > -1 && x4[4] + 1 < x3[4], f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])
(5): COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[5] - 1), x2[5], x3[5], x4[5] + 1)
(6): F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6]) → COND_F7067_1_CREATETREE_INVOKEMETHOD1(x4[6] > -1 && x2[6] > -1 && x4[6] + 1 < x3[6], f1526_0_createTree_Return(x0[6]), x2[6], x3[6], x4[6])
(8): F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(x4[8] > -1 && x2[8] > -1 && x4[8] + 1 < x3[8], f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])
(9): COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[9] - 1), x2[9], x3[9], x4[9] + 1)
(10): F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10]) → COND_F7067_1_CREATETREE_INVOKEMETHOD3(x4[10] > -1 && x2[10] > -1 && x4[10] + 1 < x3[10], f6960_0_createTree_Return(x0[10]), x2[10], x3[10], x4[10])

(5) -> (4), if (f1518_0_createTree_GT(x2[5] - 1) →* f1526_0_createTree_Return(x0[4])∧x2[5]* x2[4]x3[5]* x3[4]x4[5] + 1* x4[4])


(9) -> (4), if (f1518_0_createTree_GT(x2[9] - 1) →* f1526_0_createTree_Return(x0[4])∧x2[9]* x2[4]x3[9]* x3[4]x4[9] + 1* x4[4])


(4) -> (5), if (x4[4] > -1 && x2[4] > -1 && x4[4] + 1 < x3[4]f1526_0_createTree_Return(x0[4]) →* f1526_0_createTree_Return(x0[5])∧x2[4]* x2[5]x3[4]* x3[5]x4[4]* x4[5])


(5) -> (6), if (f1518_0_createTree_GT(x2[5] - 1) →* f1526_0_createTree_Return(x0[6])∧x2[5]* x2[6]x3[5]* x3[6]x4[5] + 1* x4[6])


(9) -> (6), if (f1518_0_createTree_GT(x2[9] - 1) →* f1526_0_createTree_Return(x0[6])∧x2[9]* x2[6]x3[9]* x3[6]x4[9] + 1* x4[6])


(5) -> (8), if (f1518_0_createTree_GT(x2[5] - 1) →* f6960_0_createTree_Return(x0[8])∧x2[5]* x2[8]x3[5]* x3[8]x4[5] + 1* x4[8])


(9) -> (8), if (f1518_0_createTree_GT(x2[9] - 1) →* f6960_0_createTree_Return(x0[8])∧x2[9]* x2[8]x3[9]* x3[8]x4[9] + 1* x4[8])


(8) -> (9), if (x4[8] > -1 && x2[8] > -1 && x4[8] + 1 < x3[8]f6960_0_createTree_Return(x0[8]) →* f6960_0_createTree_Return(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x4[8]* x4[9])


(5) -> (10), if (f1518_0_createTree_GT(x2[5] - 1) →* f6960_0_createTree_Return(x0[10])∧x2[5]* x2[10]x3[5]* x3[10]x4[5] + 1* x4[10])


(9) -> (10), if (f1518_0_createTree_GT(x2[9] - 1) →* f6960_0_createTree_Return(x0[10])∧x2[9]* x2[10]x3[9]* x3[10]x4[9] + 1* x4[10])



The set Q consists of the following terms:
f6902_0_createTree_GE(x0, x1, x2)
Cond_f6902_0_createTree_GE(TRUE, x0, x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3)

(16) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes.

(17) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
f6902_0_createTree_GE(x1, x3, x2) → Cond_f6902_0_createTree_GE(x3 >= x2, x1, x3, x2, x0)
Cond_f6902_0_createTree_GE(TRUE, x1, x3, x2, x0) → f6960_0_createTree_Return(x0)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x2, x3, x4) → Cond_f7067_1_createTree_InvokeMethod(x4 > -1, f1526_0_createTree_Return(x0), x2, x3, x4)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, x4 + 1, x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x2, x3, x4) → Cond_f7067_1_createTree_InvokeMethod1(x4 > -1, f6960_0_createTree_Return(x0), x2, x3, x4)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, x4 + 1, x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE1(x2 > x1 && x0 <= 1 && x0 > -1, x0, x1, x2)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0 - 1), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE2(x0 > 1 && x2 > x1, x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0 - 1, x0 - 2), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE3(x0 > 1 && x2 > x1, x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0 - 1, x0 - 2), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE4(x3 > -1 && x0 > 1 && x2 > x1, x0, x1, x2, x3)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3) → f7067_1_createTree_InvokeMethod(f6902_0_createTree_GE(x0 - 2, 0, x3), x0, x2, x1)

The integer pair graph contains the following rules and edges:
(9): COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[9] - 1), x2[9], x3[9], x4[9] + 1)
(8): F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(x4[8] > -1 && x2[8] > -1 && x4[8] + 1 < x3[8], f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])
(5): COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[5] - 1), x2[5], x3[5], x4[5] + 1)
(4): F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(x4[4] > -1 && x2[4] > -1 && x4[4] + 1 < x3[4], f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])

(5) -> (4), if (f1518_0_createTree_GT(x2[5] - 1) →* f1526_0_createTree_Return(x0[4])∧x2[5]* x2[4]x3[5]* x3[4]x4[5] + 1* x4[4])


(9) -> (4), if (f1518_0_createTree_GT(x2[9] - 1) →* f1526_0_createTree_Return(x0[4])∧x2[9]* x2[4]x3[9]* x3[4]x4[9] + 1* x4[4])


(4) -> (5), if (x4[4] > -1 && x2[4] > -1 && x4[4] + 1 < x3[4]f1526_0_createTree_Return(x0[4]) →* f1526_0_createTree_Return(x0[5])∧x2[4]* x2[5]x3[4]* x3[5]x4[4]* x4[5])


(5) -> (8), if (f1518_0_createTree_GT(x2[5] - 1) →* f6960_0_createTree_Return(x0[8])∧x2[5]* x2[8]x3[5]* x3[8]x4[5] + 1* x4[8])


(9) -> (8), if (f1518_0_createTree_GT(x2[9] - 1) →* f6960_0_createTree_Return(x0[8])∧x2[9]* x2[8]x3[9]* x3[8]x4[9] + 1* x4[8])


(8) -> (9), if (x4[8] > -1 && x2[8] > -1 && x4[8] + 1 < x3[8]f6960_0_createTree_Return(x0[8]) →* f6960_0_createTree_Return(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x4[8]* x4[9])



The set Q consists of the following terms:
f6902_0_createTree_GE(x0, x1, x2)
Cond_f6902_0_createTree_GE(TRUE, x0, x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3)

(18) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(19) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(9): COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[9] - 1), x2[9], x3[9], x4[9] + 1)
(8): F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(x4[8] > -1 && x2[8] > -1 && x4[8] + 1 < x3[8], f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])
(5): COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[5] - 1), x2[5], x3[5], x4[5] + 1)
(4): F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(x4[4] > -1 && x2[4] > -1 && x4[4] + 1 < x3[4], f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])

(5) -> (4), if (f1518_0_createTree_GT(x2[5] - 1) →* f1526_0_createTree_Return(x0[4])∧x2[5]* x2[4]x3[5]* x3[4]x4[5] + 1* x4[4])


(9) -> (4), if (f1518_0_createTree_GT(x2[9] - 1) →* f1526_0_createTree_Return(x0[4])∧x2[9]* x2[4]x3[9]* x3[4]x4[9] + 1* x4[4])


(4) -> (5), if (x4[4] > -1 && x2[4] > -1 && x4[4] + 1 < x3[4]f1526_0_createTree_Return(x0[4]) →* f1526_0_createTree_Return(x0[5])∧x2[4]* x2[5]x3[4]* x3[5]x4[4]* x4[5])


(5) -> (8), if (f1518_0_createTree_GT(x2[5] - 1) →* f6960_0_createTree_Return(x0[8])∧x2[5]* x2[8]x3[5]* x3[8]x4[5] + 1* x4[8])


(9) -> (8), if (f1518_0_createTree_GT(x2[9] - 1) →* f6960_0_createTree_Return(x0[8])∧x2[9]* x2[8]x3[9]* x3[8]x4[9] + 1* x4[8])


(8) -> (9), if (x4[8] > -1 && x2[8] > -1 && x4[8] + 1 < x3[8]f6960_0_createTree_Return(x0[8]) →* f6960_0_createTree_Return(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x4[8]* x4[9])



The set Q consists of the following terms:
f6902_0_createTree_GE(x0, x1, x2)
Cond_f6902_0_createTree_GE(TRUE, x0, x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3)

(20) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: false Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpCand1ShapeHeuristic@6e92405f Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 0 Max Right Steps: 0

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1)) the following chains were created:
  • We consider the chain COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1)) which results in the following constraint:

    (1)    (COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9])≥NonInfC∧COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9])≥F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))∧(UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥))



    We simplified constraint (1) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (2)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥)∧[bni_11] = 0∧[1 + (-1)bso_12] ≥ 0)



    We simplified constraint (2) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (3)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥)∧[bni_11] = 0∧[1 + (-1)bso_12] ≥ 0)



    We simplified constraint (3) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (4)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥)∧[bni_11] = 0∧[1 + (-1)bso_12] ≥ 0)



    We simplified constraint (4) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (5)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥)∧[bni_11] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_12] ≥ 0)







For Pair F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) the following chains were created:
  • We consider the chain F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]), COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1)) which results in the following constraint:

    (6)    (&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8]))=TRUEf6960_0_createTree_Return(x0[8])=f6960_0_createTree_Return(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x4[8]=x4[9]F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])≥COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥))



    We simplified constraint (6) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (7)    (<(+(x4[8], 1), x3[8])=TRUE>(x4[8], -1)=TRUE>(x2[8], -1)=TRUEF7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])≥COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    (x3[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧[(-1)bni_13 + (-1)Bound*bni_13] + [(-1)bni_13]x4[8] + [bni_13]x3[8] + [bni_13]x2[8] ≥ 0∧[(-1)bso_14] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (x3[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧[(-1)bni_13 + (-1)Bound*bni_13] + [(-1)bni_13]x4[8] + [bni_13]x3[8] + [bni_13]x2[8] ≥ 0∧[(-1)bso_14] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    (x3[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧[(-1)bni_13 + (-1)Bound*bni_13] + [(-1)bni_13]x4[8] + [bni_13]x3[8] + [bni_13]x2[8] ≥ 0∧[(-1)bso_14] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    (x3[8] + [-2] + [-1]x4[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧0 = 0∧[(-1)bni_13 + (-1)Bound*bni_13] + [(-1)bni_13]x4[8] + [bni_13]x3[8] + [bni_13]x2[8] ≥ 0∧0 = 0∧[(-1)bso_14] ≥ 0)



    We simplified constraint (11) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (12)    (x3[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧0 = 0∧[bni_13 + (-1)Bound*bni_13] + [bni_13]x3[8] + [bni_13]x2[8] ≥ 0∧0 = 0∧[(-1)bso_14] ≥ 0)







For Pair COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1)) the following chains were created:
  • We consider the chain COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1)) which results in the following constraint:

    (13)    (COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5])≥NonInfC∧COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5])≥F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))∧(UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥))



    We simplified constraint (13) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (14)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥)∧[bni_15] = 0∧[1 + (-1)bso_16] ≥ 0)



    We simplified constraint (14) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (15)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥)∧[bni_15] = 0∧[1 + (-1)bso_16] ≥ 0)



    We simplified constraint (15) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (16)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥)∧[bni_15] = 0∧[1 + (-1)bso_16] ≥ 0)



    We simplified constraint (16) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (17)    ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥)∧[bni_15] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_16] ≥ 0)







For Pair F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) the following chains were created:
  • We consider the chain F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]), COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1)) which results in the following constraint:

    (18)    (&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4]))=TRUEf1526_0_createTree_Return(x0[4])=f1526_0_createTree_Return(x0[5])∧x2[4]=x2[5]x3[4]=x3[5]x4[4]=x4[5]F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])≥COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥))



    We simplified constraint (18) using rules (I), (II), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (19)    (<(+(x4[4], 1), x3[4])=TRUE>(x4[4], -1)=TRUE>(x2[4], -1)=TRUEF7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])≥NonInfC∧F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])≥COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])∧(UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥))



    We simplified constraint (19) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (20)    (x3[4] + [-2] + [-1]x4[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]x4[4] + [bni_17]x3[4] + [bni_17]x2[4] ≥ 0∧[(-1)bso_18] ≥ 0)



    We simplified constraint (20) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (21)    (x3[4] + [-2] + [-1]x4[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]x4[4] + [bni_17]x3[4] + [bni_17]x2[4] ≥ 0∧[(-1)bso_18] ≥ 0)



    We simplified constraint (21) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (22)    (x3[4] + [-2] + [-1]x4[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]x4[4] + [bni_17]x3[4] + [bni_17]x2[4] ≥ 0∧[(-1)bso_18] ≥ 0)



    We simplified constraint (22) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (23)    (x3[4] + [-2] + [-1]x4[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧0 = 0∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]x4[4] + [bni_17]x3[4] + [bni_17]x2[4] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)



    We simplified constraint (23) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (24)    (x3[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧0 = 0∧[bni_17 + (-1)Bound*bni_17] + [bni_17]x3[4] + [bni_17]x2[4] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))
    • ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))), ≥)∧[bni_11] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_12] ≥ 0)

  • F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])
    • (x3[8] ≥ 0∧x4[8] ≥ 0∧x2[8] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])), ≥)∧0 = 0∧[bni_13 + (-1)Bound*bni_13] + [bni_13]x3[8] + [bni_13]x2[8] ≥ 0∧0 = 0∧[(-1)bso_14] ≥ 0)

  • COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))
    • ((UIncreasing(F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))), ≥)∧[bni_15] = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_16] ≥ 0)

  • F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])
    • (x3[4] ≥ 0∧x4[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])), ≥)∧0 = 0∧[bni_17 + (-1)Bound*bni_17] + [bni_17]x3[4] + [bni_17]x2[4] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(COND_F7067_1_CREATETREE_INVOKEMETHOD2(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + x4 + x3   
POL(f6960_0_createTree_Return(x1)) = x1   
POL(F7067_1_CREATETREE_INVOKEMETHOD'(x1, x2, x3, x4)) = [-1] + [-1]x4 + x3 + x2   
POL(f1518_0_createTree_GT(x1)) = x1   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(1) = [1]   
POL(+(x1, x2)) = x1 + x2   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(COND_F7067_1_CREATETREE_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x4 + x3 + [-1]x5   
POL(f1526_0_createTree_Return(x1)) = x1   

The following pairs are in P>:

COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[9], 1)), x2[9], x3[9], +(x4[9], 1))
COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(-(x2[5], 1)), x2[5], x3[5], +(x4[5], 1))

The following pairs are in Pbound:

F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])
F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])

The following pairs are in P:

F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(&&(&&(>(x4[8], -1), >(x2[8], -1)), <(+(x4[8], 1), x3[8])), f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])
F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x4[4], -1), >(x2[4], -1)), <(+(x4[4], 1), x3[4])), f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])

There are no usable rules.

(21) Complex Obligation (AND)

(22) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(8): F7067_1_CREATETREE_INVOKEMETHOD'(f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8]) → COND_F7067_1_CREATETREE_INVOKEMETHOD2(x4[8] > -1 && x2[8] > -1 && x4[8] + 1 < x3[8], f6960_0_createTree_Return(x0[8]), x2[8], x3[8], x4[8])
(4): F7067_1_CREATETREE_INVOKEMETHOD'(f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4]) → COND_F7067_1_CREATETREE_INVOKEMETHOD(x4[4] > -1 && x2[4] > -1 && x4[4] + 1 < x3[4], f1526_0_createTree_Return(x0[4]), x2[4], x3[4], x4[4])


The set Q consists of the following terms:
f6902_0_createTree_GE(x0, x1, x2)
Cond_f6902_0_createTree_GE(TRUE, x0, x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3)

(23) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(24) TRUE

(25) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(9): COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[9] - 1), x2[9], x3[9], x4[9] + 1)
(5): COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[5] - 1), x2[5], x3[5], x4[5] + 1)


The set Q consists of the following terms:
f6902_0_createTree_GE(x0, x1, x2)
Cond_f6902_0_createTree_GE(TRUE, x0, x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3)

(26) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(27) TRUE

(28) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
f6902_0_createTree_GE(x1, x3, x2) → Cond_f6902_0_createTree_GE(x3 >= x2, x1, x3, x2, x0)
Cond_f6902_0_createTree_GE(TRUE, x1, x3, x2, x0) → f6960_0_createTree_Return(x0)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x2, x3, x4) → Cond_f7067_1_createTree_InvokeMethod(x4 > -1, f1526_0_createTree_Return(x0), x2, x3, x4)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, x4 + 1, x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x3, x4, x5) → f8210_0_createTree_InvokeMethod(x2, x3, x4, x5)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x2, x3, x4) → Cond_f7067_1_createTree_InvokeMethod1(x4 > -1, f6960_0_createTree_Return(x0), x2, x3, x4)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x2, x3, x4) → f6902_0_createTree_GE(x2, x4 + 1, x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x5, x6, x7) → f8210_0_createTree_InvokeMethod(x4, x5, x6, x7)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE1(x2 > x1 && x0 <= 1 && x0 > -1, x0, x1, x2)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0 - 1), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE2(x0 > 1 && x2 > x1, x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0 - 1, x0 - 2), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE3(x0 > 1 && x2 > x1, x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2) → f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0 - 1, x0 - 2), x0, x2, x1)
f6902_0_createTree_GE(x0, x1, x2) → Cond_f6902_0_createTree_GE4(x3 > -1 && x0 > 1 && x2 > x1, x0, x1, x2, x3)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3) → f7067_1_createTree_InvokeMethod(f6902_0_createTree_GE(x0 - 2, 0, x3), x0, x2, x1)

The integer pair graph contains the following rules and edges:
(0): F1518_0_CREATETREE_GT'(x0[0]) → COND_F1518_0_CREATETREE_GT(x0[0] > 0 && x1[0] > 0, x0[0], x1[0])
(1): COND_F1518_0_CREATETREE_GT(TRUE, x0[1], x1[1]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x0[1] - 2), x0[1] - 1, x1[1], 0)
(3): COND_F1518_0_CREATETREE_GT1(TRUE, x0[3]) → F1518_0_CREATETREE_GT'(x0[3] - 2)
(5): COND_F7067_1_CREATETREE_INVOKEMETHOD(TRUE, f1526_0_createTree_Return(x0[5]), x2[5], x3[5], x4[5]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[5] - 1), x2[5], x3[5], x4[5] + 1)
(7): COND_F7067_1_CREATETREE_INVOKEMETHOD1(TRUE, f1526_0_createTree_Return(x0[7]), x2[7], x3[7], x4[7]) → F1518_0_CREATETREE_GT'(x2[7] - 1)
(9): COND_F7067_1_CREATETREE_INVOKEMETHOD2(TRUE, f6960_0_createTree_Return(x0[9]), x2[9], x3[9], x4[9]) → F7067_1_CREATETREE_INVOKEMETHOD'(f1518_0_createTree_GT(x2[9] - 1), x2[9], x3[9], x4[9] + 1)
(11): COND_F7067_1_CREATETREE_INVOKEMETHOD3(TRUE, f6960_0_createTree_Return(x0[11]), x2[11], x3[11], x4[11]) → F1518_0_CREATETREE_GT'(x2[11] - 1)

(3) -> (0), if (x0[3] - 2* x0[0])


(7) -> (0), if (x2[7] - 1* x0[0])


(11) -> (0), if (x2[11] - 1* x0[0])


(0) -> (1), if (x0[0] > 0 && x1[0] > 0x0[0]* x0[1]x1[0]* x1[1])



The set Q consists of the following terms:
f6902_0_createTree_GE(x0, x1, x2)
Cond_f6902_0_createTree_GE(TRUE, x0, x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1526_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod(TRUE, f1526_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f1748_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f1853_0_createTree_InvokeMethod(x0, x1), x2, x3, x4)
f7067_1_createTree_InvokeMethod(f6960_0_createTree_Return(x0), x1, x2, x3)
Cond_f7067_1_createTree_InvokeMethod1(TRUE, f6960_0_createTree_Return(x0), x1, x2, x3)
f7067_1_createTree_InvokeMethod(f8210_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
f7067_1_createTree_InvokeMethod(f7313_0_createTree_InvokeMethod(x0, x1, x2, x3), x4, x5, x6)
Cond_f6902_0_createTree_GE1(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE2(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE3(TRUE, x0, x1, x2)
Cond_f6902_0_createTree_GE4(TRUE, x0, x1, x2, x3)

(29) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 7 less nodes.

(30) TRUE