(0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_22 (Sun Microsystems Inc.) Main-Class: BinTreeChanger/BinTreeChanger
package BinTreeChanger;

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

final Tree t = Tree.createTree(Random.random());

t.applyTreeChanger(new AnswerAdder());
}
}

class AnswerAdder implements TreeChanger {
public void change(final Tree t) {
final Tree newLeft = new Tree(42);
final Tree newRight = new Tree(42);
newLeft.left = t.left;
newRight.right = t.right;
t.left = newLeft;
t.right = newRight;
}
}


package BinTreeChanger;

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

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


package BinTreeChanger;

public interface TreeChanger {
public void change(Tree t);
}


package BinTreeChanger;

public class Tree {
Tree left;
Tree right;
int value;

public static Tree createTree(final int numElements) {
final Tree t = new Tree(Random.random());

for (int i = 0; i < numElements; i++) {
t.insert(Random.random());
}

return t;
}

public Tree(final int val) {
this.value = val;
}

public void insert(final int v) {
if (v <= this.value) {
if (this.left == null) {
this.left = new Tree(v);
} else {
this.left.insert(v);
}
} else {
if (this.right == null) {
this.right = new Tree(v);
} else {
this.right.insert(v);
}
}
}

public void applyTreeChanger(final TreeChanger c) {
final Tree oldLeft = this.left;
final Tree oldRight = this.right;
c.change(this);
if (oldLeft != null) {
oldLeft.applyTreeChanger(c);
}
if (oldRight != null) {
oldRight.applyTreeChanger(c);
}
}
}


(1) JBCToGraph (SOUND transformation)

Constructed TerminationGraph.

(2) Obligation:

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

BinTreeChanger.Tree.createTree(I)LBinTreeChanger/Tree;: Graph of 194 nodes with 1 SCC.

BinTreeChanger.Tree.applyTreeChanger(LBinTreeChanger/TreeChanger;)V: Graph of 100 nodes with 0 SCCs.

BinTreeChanger.Tree.insert(I)V: Graph of 72 nodes with 0 SCCs.


(3) TerminationGraphToSCCProof (SOUND transformation)

Splitted TerminationGraph to 3 SCCss.

(4) Complex Obligation (AND)

(5) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: BinTreeChanger.Tree.insert(I)V
SCC calls the following helper methods: BinTreeChanger.Tree.insert(I)V
Performed SCC analyses: UsedFieldsAnalysis

(6) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 28 rules for P and 51 rules for R.


P rules:
2793_0_insert_Load(EOS(STATIC_2793), java.lang.Object(o1966sub), i1231, i1231) → 2798_0_insert_FieldAccess(EOS(STATIC_2798), java.lang.Object(o1966sub), i1231, i1231, java.lang.Object(o1966sub))
2798_0_insert_FieldAccess(EOS(STATIC_2798), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992))) → 2807_0_insert_FieldAccess(EOS(STATIC_2807), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)))
2807_0_insert_FieldAccess(EOS(STATIC_2807), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992))) → 2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260)
2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260) → 2823_0_insert_GT(EOS(STATIC_2823), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260)
2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260) → 2824_0_insert_GT(EOS(STATIC_2824), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260)
2823_0_insert_GT(EOS(STATIC_2823), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260) → 2831_0_insert_Load(EOS(STATIC_2831), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231) | >(i1231, i1260)
2831_0_insert_Load(EOS(STATIC_2831), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231) → 2842_0_insert_FieldAccess(EOS(STATIC_2842), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)))
2842_0_insert_FieldAccess(EOS(STATIC_2842), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992))) → 2852_0_insert_NONNULL(EOS(STATIC_2852), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, o1993)
2852_0_insert_NONNULL(EOS(STATIC_2852), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2056sub), o1992)), i1231, java.lang.Object(o2056sub)) → 2863_0_insert_NONNULL(EOS(STATIC_2863), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2056sub), o1992)), i1231, java.lang.Object(o2056sub))
2863_0_insert_NONNULL(EOS(STATIC_2863), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2056sub), o1992)), i1231, java.lang.Object(o2056sub)) → 2874_0_insert_Load(EOS(STATIC_2874), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2056sub), o1992)), i1231)
2874_0_insert_Load(EOS(STATIC_2874), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2056sub), o1992)), i1231) → 2891_0_insert_FieldAccess(EOS(STATIC_2891), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2056sub), o1992)))
2891_0_insert_FieldAccess(EOS(STATIC_2891), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2056sub), o1992))) → 2903_0_insert_Load(EOS(STATIC_2903), i1231, java.lang.Object(o2056sub))
2903_0_insert_Load(EOS(STATIC_2903), i1231, java.lang.Object(o2056sub)) → 2919_0_insert_InvokeMethod(EOS(STATIC_2919), java.lang.Object(o2056sub), i1231)
2919_0_insert_InvokeMethod(EOS(STATIC_2919), java.lang.Object(o2056sub), i1231) → 2929_1_insert_InvokeMethod(2929_0_insert_Load(EOS(STATIC_2929), java.lang.Object(o2056sub), i1231), java.lang.Object(o2056sub), i1231)
2929_0_insert_Load(EOS(STATIC_2929), java.lang.Object(o2056sub), i1231) → 2937_0_insert_Load(EOS(STATIC_2937), java.lang.Object(o2056sub), i1231)
2937_0_insert_Load(EOS(STATIC_2937), java.lang.Object(o2056sub), i1231) → 2783_0_insert_Load(EOS(STATIC_2783), java.lang.Object(o2056sub), i1231)
2783_0_insert_Load(EOS(STATIC_2783), java.lang.Object(o1966sub), i1231) → 2793_0_insert_Load(EOS(STATIC_2793), java.lang.Object(o1966sub), i1231, i1231)
2824_0_insert_GT(EOS(STATIC_2824), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260) → 2832_0_insert_Load(EOS(STATIC_2832), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231) | <=(i1231, i1260)
2832_0_insert_Load(EOS(STATIC_2832), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231) → 2844_0_insert_FieldAccess(EOS(STATIC_2844), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)))
2844_0_insert_FieldAccess(EOS(STATIC_2844), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992))) → 2853_0_insert_NONNULL(EOS(STATIC_2853), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, o1992)
2853_0_insert_NONNULL(EOS(STATIC_2853), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2057sub))), i1231, java.lang.Object(o2057sub)) → 2865_0_insert_NONNULL(EOS(STATIC_2865), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2057sub))), i1231, java.lang.Object(o2057sub))
2865_0_insert_NONNULL(EOS(STATIC_2865), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2057sub))), i1231, java.lang.Object(o2057sub)) → 2876_0_insert_Load(EOS(STATIC_2876), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2057sub))), i1231)
2876_0_insert_Load(EOS(STATIC_2876), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2057sub))), i1231) → 2894_0_insert_FieldAccess(EOS(STATIC_2894), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2057sub))))
2894_0_insert_FieldAccess(EOS(STATIC_2894), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2057sub)))) → 2906_0_insert_Load(EOS(STATIC_2906), i1231, java.lang.Object(o2057sub))
2906_0_insert_Load(EOS(STATIC_2906), i1231, java.lang.Object(o2057sub)) → 2922_0_insert_InvokeMethod(EOS(STATIC_2922), java.lang.Object(o2057sub), i1231)
2922_0_insert_InvokeMethod(EOS(STATIC_2922), java.lang.Object(o2057sub), i1231) → 2932_1_insert_InvokeMethod(2932_0_insert_Load(EOS(STATIC_2932), java.lang.Object(o2057sub), i1231), java.lang.Object(o2057sub), i1231)
2932_0_insert_Load(EOS(STATIC_2932), java.lang.Object(o2057sub), i1231) → 2940_0_insert_Load(EOS(STATIC_2940), java.lang.Object(o2057sub), i1231)
2940_0_insert_Load(EOS(STATIC_2940), java.lang.Object(o2057sub), i1231) → 2783_0_insert_Load(EOS(STATIC_2783), java.lang.Object(o2057sub), i1231)
R rules:
2852_0_insert_NONNULL(EOS(STATIC_2852), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), i1231, NULL) → 2864_0_insert_NONNULL(EOS(STATIC_2864), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), i1231, NULL)
2853_0_insert_NONNULL(EOS(STATIC_2853), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), i1231, NULL) → 2866_0_insert_NONNULL(EOS(STATIC_2866), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), i1231, NULL)
2864_0_insert_NONNULL(EOS(STATIC_2864), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), i1231, NULL) → 2875_0_insert_Load(EOS(STATIC_2875), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), i1231)
2866_0_insert_NONNULL(EOS(STATIC_2866), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), i1231, NULL) → 2877_0_insert_Load(EOS(STATIC_2877), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), i1231)
2875_0_insert_Load(EOS(STATIC_2875), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), i1231) → 2893_0_insert_New(EOS(STATIC_2893), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)))
2877_0_insert_Load(EOS(STATIC_2877), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), i1231) → 2895_0_insert_New(EOS(STATIC_2895), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)))
2893_0_insert_New(EOS(STATIC_2893), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992))) → 2905_0_insert_Duplicate(EOS(STATIC_2905), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)))
2895_0_insert_New(EOS(STATIC_2895), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL))) → 2908_0_insert_Duplicate(EOS(STATIC_2908), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)))
2905_0_insert_Duplicate(EOS(STATIC_2905), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL))) → 2920_0_insert_Load(EOS(STATIC_2920), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL))) | =(matching1, 0)
2908_0_insert_Duplicate(EOS(STATIC_2908), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL))) → 2923_0_insert_Load(EOS(STATIC_2923), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL))) | =(matching1, 0)
2920_0_insert_Load(EOS(STATIC_2920), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL))) → 2931_0_insert_InvokeMethod(EOS(STATIC_2931), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231) | &&(=(matching1, 0), =(matching2, 0))
2923_0_insert_Load(EOS(STATIC_2923), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL))) → 2933_0_insert_InvokeMethod(EOS(STATIC_2933), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231) | &&(=(matching1, 0), =(matching2, 0))
2929_1_insert_InvokeMethod(2973_0_insert_Return(EOS(STATIC_2973)), java.lang.Object(o2056sub), i1376) → 2995_0_insert_Return(EOS(STATIC_2995), java.lang.Object(BinTreeChanger.Tree(EOC, i1374, java.lang.Object(BinTreeChanger.Tree(EOC, i1376, NULL, NULL)), o2141)), i1376)
2929_1_insert_InvokeMethod(2974_0_insert_Return(EOS(STATIC_2974)), java.lang.Object(o2056sub), i1393) → 3007_0_insert_Return(EOS(STATIC_3007), java.lang.Object(BinTreeChanger.Tree(EOC, i1391, o1993, java.lang.Object(BinTreeChanger.Tree(EOC, i1393, NULL, NULL)))), i1393)
2929_1_insert_InvokeMethod(3023_0_insert_Return(EOS(STATIC_3023)), java.lang.Object(o2056sub), i1441) → 3046_0_insert_Return(EOS(STATIC_3046), java.lang.Object(BinTreeChanger.Tree(EOC, i1440, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2168, o2167)), o2165)), i1441)
2929_1_insert_InvokeMethod(3031_0_insert_Return(EOS(STATIC_3031)), java.lang.Object(o2056sub), i1463) → 3059_0_insert_Return(EOS(STATIC_3059), java.lang.Object(BinTreeChanger.Tree(EOC, i1462, o2188, java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)))), i1463)
2931_0_insert_InvokeMethod(EOS(STATIC_2931), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231) → 2939_0_<init>_Load(EOS(STATIC_2939), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231) | &&(=(matching1, 0), =(matching2, 0))
2932_1_insert_InvokeMethod(2973_0_insert_Return(EOS(STATIC_2973)), java.lang.Object(o2057sub), i1383) → 2996_0_insert_Return(EOS(STATIC_2996), java.lang.Object(BinTreeChanger.Tree(EOC, i1381, java.lang.Object(BinTreeChanger.Tree(EOC, i1383, NULL, NULL)), o1992)), i1383)
2932_1_insert_InvokeMethod(2974_0_insert_Return(EOS(STATIC_2974)), java.lang.Object(o2057sub), i1400) → 3013_0_insert_Return(EOS(STATIC_3013), java.lang.Object(BinTreeChanger.Tree(EOC, i1398, o2153, java.lang.Object(BinTreeChanger.Tree(EOC, i1400, NULL, NULL)))), i1400)
2932_1_insert_InvokeMethod(3023_0_insert_Return(EOS(STATIC_3023)), java.lang.Object(o2057sub), i1445) → 3048_0_insert_Return(EOS(STATIC_3048), java.lang.Object(BinTreeChanger.Tree(EOC, i1444, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2168, o2167)), o2165)), i1445)
2932_1_insert_InvokeMethod(3031_0_insert_Return(EOS(STATIC_3031)), java.lang.Object(o2057sub), i1467) → 3063_0_insert_Return(EOS(STATIC_3063), java.lang.Object(BinTreeChanger.Tree(EOC, i1466, o2188, java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)))), i1467)
2933_0_insert_InvokeMethod(EOS(STATIC_2933), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231) → 2941_0_<init>_Load(EOS(STATIC_2941), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231) | &&(=(matching1, 0), =(matching2, 0))
2939_0_<init>_Load(EOS(STATIC_2939), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching3, NULL, NULL)), i1231) → 2947_0_<init>_InvokeMethod(EOS(STATIC_2947), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL))) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2941_0_<init>_Load(EOS(STATIC_2941), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching3, NULL, NULL)), i1231) → 2950_0_<init>_InvokeMethod(EOS(STATIC_2950), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL))) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2947_0_<init>_InvokeMethod(EOS(STATIC_2947), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching3, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching4, NULL, NULL))) → 2955_0_<init>_Load(EOS(STATIC_2955), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2950_0_<init>_InvokeMethod(EOS(STATIC_2950), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching3, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching4, NULL, NULL))) → 2957_0_<init>_Load(EOS(STATIC_2957), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2955_0_<init>_Load(EOS(STATIC_2955), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching3, NULL, NULL)), i1231) → 2958_0_<init>_Load(EOS(STATIC_2958), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL))) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2957_0_<init>_Load(EOS(STATIC_2957), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching3, NULL, NULL)), i1231) → 2960_0_<init>_Load(EOS(STATIC_2960), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL))) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2958_0_<init>_Load(EOS(STATIC_2958), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching3, NULL, NULL))) → 2961_0_<init>_FieldAccess(EOS(STATIC_2961), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2960_0_<init>_Load(EOS(STATIC_2960), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching3, NULL, NULL))) → 2962_0_<init>_FieldAccess(EOS(STATIC_2962), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)), i1231) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2961_0_<init>_FieldAccess(EOS(STATIC_2961), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching3, NULL, NULL)), i1231) → 2964_0_<init>_Return(EOS(STATIC_2964), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)), i1231) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2962_0_<init>_FieldAccess(EOS(STATIC_2962), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching2, NULL, NULL)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, matching3, NULL, NULL)), i1231) → 2966_0_<init>_Return(EOS(STATIC_2966), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)), i1231) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2964_0_<init>_Return(EOS(STATIC_2964), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)), i1231) → 2967_0_insert_FieldAccess(EOS(STATIC_2967), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)))
2966_0_<init>_Return(EOS(STATIC_2966), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)), i1231) → 2968_0_insert_FieldAccess(EOS(STATIC_2968), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)))
2967_0_insert_FieldAccess(EOS(STATIC_2967), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL))) → 2970_0_insert_JMP(EOS(STATIC_2970))
2968_0_insert_FieldAccess(EOS(STATIC_2968), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL))) → 2972_0_insert_JMP(EOS(STATIC_2972))
2970_0_insert_JMP(EOS(STATIC_2970)) → 2973_0_insert_Return(EOS(STATIC_2973))
2972_0_insert_JMP(EOS(STATIC_2972)) → 2974_0_insert_Return(EOS(STATIC_2974))
2973_0_insert_Return(EOS(STATIC_2973)) → 3023_0_insert_Return(EOS(STATIC_3023))
2974_0_insert_Return(EOS(STATIC_2974)) → 3031_0_insert_Return(EOS(STATIC_3031))
2995_0_insert_Return(EOS(STATIC_2995), java.lang.Object(BinTreeChanger.Tree(EOC, i1374, java.lang.Object(BinTreeChanger.Tree(EOC, i1376, NULL, NULL)), o2141)), i1376) → 3008_0_insert_Return(EOS(STATIC_3008), java.lang.Object(BinTreeChanger.Tree(EOC, i1374, java.lang.Object(BinTreeChanger.Tree(EOC, i1376, NULL, NULL)), o2141)), i1376)
2996_0_insert_Return(EOS(STATIC_2996), java.lang.Object(BinTreeChanger.Tree(EOC, i1381, java.lang.Object(BinTreeChanger.Tree(EOC, i1383, NULL, NULL)), o1992)), i1383) → 3014_0_insert_Return(EOS(STATIC_3014), java.lang.Object(BinTreeChanger.Tree(EOC, i1381, java.lang.Object(BinTreeChanger.Tree(EOC, i1383, NULL, NULL)), o1992)), i1383)
3007_0_insert_Return(EOS(STATIC_3007), java.lang.Object(BinTreeChanger.Tree(EOC, i1391, o1993, java.lang.Object(BinTreeChanger.Tree(EOC, i1393, NULL, NULL)))), i1393) → 3008_0_insert_Return(EOS(STATIC_3008), java.lang.Object(BinTreeChanger.Tree(EOC, i1391, o1993, java.lang.Object(BinTreeChanger.Tree(EOC, i1393, NULL, NULL)))), i1393)
3008_0_insert_Return(EOS(STATIC_3008), java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2168, o2167)), i1409) → 3023_0_insert_Return(EOS(STATIC_3023))
3013_0_insert_Return(EOS(STATIC_3013), java.lang.Object(BinTreeChanger.Tree(EOC, i1398, o2153, java.lang.Object(BinTreeChanger.Tree(EOC, i1400, NULL, NULL)))), i1400) → 3014_0_insert_Return(EOS(STATIC_3014), java.lang.Object(BinTreeChanger.Tree(EOC, i1398, o2153, java.lang.Object(BinTreeChanger.Tree(EOC, i1400, NULL, NULL)))), i1400)
3014_0_insert_Return(EOS(STATIC_3014), java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)), i1417) → 3024_0_insert_JMP(EOS(STATIC_3024))
3024_0_insert_JMP(EOS(STATIC_3024)) → 3031_0_insert_Return(EOS(STATIC_3031))
3046_0_insert_Return(EOS(STATIC_3046), java.lang.Object(BinTreeChanger.Tree(EOC, i1440, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2168, o2167)), o2165)), i1441) → 3008_0_insert_Return(EOS(STATIC_3008), java.lang.Object(BinTreeChanger.Tree(EOC, i1440, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2168, o2167)), o2165)), i1441)
3048_0_insert_Return(EOS(STATIC_3048), java.lang.Object(BinTreeChanger.Tree(EOC, i1444, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2168, o2167)), o2165)), i1445) → 3014_0_insert_Return(EOS(STATIC_3014), java.lang.Object(BinTreeChanger.Tree(EOC, i1444, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2168, o2167)), o2165)), i1445)
3059_0_insert_Return(EOS(STATIC_3059), java.lang.Object(BinTreeChanger.Tree(EOC, i1462, o2188, java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)))), i1463) → 3008_0_insert_Return(EOS(STATIC_3008), java.lang.Object(BinTreeChanger.Tree(EOC, i1462, o2188, java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)))), i1463)
3063_0_insert_Return(EOS(STATIC_3063), java.lang.Object(BinTreeChanger.Tree(EOC, i1466, o2188, java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)))), i1467) → 3014_0_insert_Return(EOS(STATIC_3014), java.lang.Object(BinTreeChanger.Tree(EOC, i1466, o2188, java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)))), i1467)

Combined rules. Obtained 2 conditional rules for P and 8 conditional rules for R.


P rules:
2793_0_insert_Load(EOS(STATIC_2793), java.lang.Object(BinTreeChanger.Tree(EOC, x0, java.lang.Object(x1), x2)), x3, x3) → 2929_1_insert_InvokeMethod(2793_0_insert_Load(EOS(STATIC_2793), java.lang.Object(x1), x3, x3), java.lang.Object(x1), x3) | >(x3, x0)
2793_0_insert_Load(EOS(STATIC_2793), java.lang.Object(BinTreeChanger.Tree(EOC, x0, x1, java.lang.Object(x2))), x3, x3) → 2932_1_insert_InvokeMethod(2793_0_insert_Load(EOS(STATIC_2793), java.lang.Object(x2), x3, x3), java.lang.Object(x2), x3) | <=(x3, x0)
R rules:
2929_1_insert_InvokeMethod(2973_0_insert_Return(EOS(STATIC_2973)), java.lang.Object(x0), x1) → 3023_0_insert_Return(EOS(STATIC_3023))
2929_1_insert_InvokeMethod(2974_0_insert_Return(EOS(STATIC_2974)), java.lang.Object(x0), x1) → 3023_0_insert_Return(EOS(STATIC_3023))
2929_1_insert_InvokeMethod(3023_0_insert_Return(EOS(STATIC_3023)), java.lang.Object(x0), x1) → 3023_0_insert_Return(EOS(STATIC_3023))
2929_1_insert_InvokeMethod(3031_0_insert_Return(EOS(STATIC_3031)), java.lang.Object(x0), x1) → 3023_0_insert_Return(EOS(STATIC_3023))
2932_1_insert_InvokeMethod(2973_0_insert_Return(EOS(STATIC_2973)), java.lang.Object(x0), x1) → 3031_0_insert_Return(EOS(STATIC_3031))
2932_1_insert_InvokeMethod(2974_0_insert_Return(EOS(STATIC_2974)), java.lang.Object(x0), x1) → 3031_0_insert_Return(EOS(STATIC_3031))
2932_1_insert_InvokeMethod(3023_0_insert_Return(EOS(STATIC_3023)), java.lang.Object(x0), x1) → 3031_0_insert_Return(EOS(STATIC_3031))
2932_1_insert_InvokeMethod(3031_0_insert_Return(EOS(STATIC_3031)), java.lang.Object(x0), x1) → 3031_0_insert_Return(EOS(STATIC_3031))

Filtered ground terms:



2793_0_insert_Load(x1, x2, x3, x4) → 2793_0_insert_Load(x2, x3, x4)
Cond_2793_0_insert_Load1(x1, x2, x3, x4, x5) → Cond_2793_0_insert_Load1(x1, x3, x4, x5)
BinTreeChanger.Tree(x1, x2, x3, x4) → BinTreeChanger.Tree(x2, x3, x4)
Cond_2793_0_insert_Load(x1, x2, x3, x4, x5) → Cond_2793_0_insert_Load(x1, x3, x4, x5)
3031_0_insert_Return(x1) → 3031_0_insert_Return
3023_0_insert_Return(x1) → 3023_0_insert_Return
2974_0_insert_Return(x1) → 2974_0_insert_Return
2973_0_insert_Return(x1) → 2973_0_insert_Return

Filtered duplicate args:



2793_0_insert_Load(x1, x2, x3) → 2793_0_insert_Load(x1, x3)
Cond_2793_0_insert_Load(x1, x2, x3, x4) → Cond_2793_0_insert_Load(x1, x2, x4)
Cond_2793_0_insert_Load1(x1, x2, x3, x4) → Cond_2793_0_insert_Load1(x1, x2, x4)

Filtered unneeded arguments:



2929_1_insert_InvokeMethod(x1, x2, x3) → 2929_1_insert_InvokeMethod(x1)
2932_1_insert_InvokeMethod(x1, x2, x3) → 2932_1_insert_InvokeMethod(x1)

Combined rules. Obtained 2 conditional rules for P and 8 conditional rules for R.


P rules:
2793_0_insert_Load(java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → 2929_1_insert_InvokeMethod(2793_0_insert_Load(java.lang.Object(x1), x3)) | >(x3, x0)
2793_0_insert_Load(java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → 2932_1_insert_InvokeMethod(2793_0_insert_Load(java.lang.Object(x2), x3)) | <=(x3, x0)
R rules:
2929_1_insert_InvokeMethod(2973_0_insert_Return) → 3023_0_insert_Return
2929_1_insert_InvokeMethod(2974_0_insert_Return) → 3023_0_insert_Return
2929_1_insert_InvokeMethod(3023_0_insert_Return) → 3023_0_insert_Return
2929_1_insert_InvokeMethod(3031_0_insert_Return) → 3023_0_insert_Return
2932_1_insert_InvokeMethod(2973_0_insert_Return) → 3031_0_insert_Return
2932_1_insert_InvokeMethod(2974_0_insert_Return) → 3031_0_insert_Return
2932_1_insert_InvokeMethod(3023_0_insert_Return) → 3031_0_insert_Return
2932_1_insert_InvokeMethod(3031_0_insert_Return) → 3031_0_insert_Return

Performed bisimulation on rules. Used the following equivalence classes: {[2929_1_insert_InvokeMethod_1, 2932_1_insert_InvokeMethod_1]=2929_1_insert_InvokeMethod_1, [2973_0_insert_Return, 3023_0_insert_Return, 2974_0_insert_Return, 3031_0_insert_Return]=2973_0_insert_Return}


Finished conversion. Obtained 4 rules for P and 1 rules for R. System has predefined symbols.


P rules:
2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → COND_2793_0_INSERT_LOAD(>(x3, x0), java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3)
COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → 2793_0_INSERT_LOAD(java.lang.Object(x1), x3)
2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → COND_2793_0_INSERT_LOAD1(<=(x3, x0), java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3)
COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → 2793_0_INSERT_LOAD(java.lang.Object(x2), x3)
R rules:
2929_1_insert_InvokeMethod(2973_0_insert_Return) → 2973_0_insert_Return

(7) 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


The ITRS R consists of the following rules:
2929_1_insert_InvokeMethod(2973_0_insert_Return) → 2973_0_insert_Return

The integer pair graph contains the following rules and edges:
(0): 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2793_0_INSERT_LOAD(x3[0] > x0[0], java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])
(1): COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1]) → 2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])
(2): 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2793_0_INSERT_LOAD1(x3[2] <= x0[2], java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])
(3): COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3]) → 2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])

(0) -> (1), if (x3[0] > x0[0]java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])) →* java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1]))∧x3[0]* x3[1])


(1) -> (0), if (java.lang.Object(x1[1]) →* java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0]))∧x3[1]* x3[0])


(1) -> (2), if (java.lang.Object(x1[1]) →* java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2])))∧x3[1]* x3[2])


(2) -> (3), if (x3[2] <= x0[2]java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))) →* java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3])))∧x3[2]* x3[3])


(3) -> (0), if (java.lang.Object(x2[3]) →* java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0]))∧x3[3]* x3[0])


(3) -> (2), if (java.lang.Object(x2[3]) →* java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2])))∧x3[3]* x3[2])



The set Q consists of the following terms:
2929_1_insert_InvokeMethod(2973_0_insert_Return)

(8) IDPNonInfProof (SOUND transformation)

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

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 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → COND_2793_0_INSERT_LOAD(>(x3, x0), java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) the following chains were created:
  • We consider the chain 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]), COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1]) → 2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1]) which results in the following constraint:

    (1)    (>(x3[0], x0[0])=TRUEjava.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0]))=java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1]))∧x3[0]=x3[1]2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])≥NonInfC∧2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])≥COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])∧(UIncreasing(COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])), ≥))



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

    (2)    (>(x3[0], x0[0])=TRUE2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])≥NonInfC∧2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])≥COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])∧(UIncreasing(COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])), ≥))



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

    (3)    (0 ≥ 0 ⇒ (UIncreasing(COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])), ≥)∧[bni_21 + (-1)Bound*bni_21] + [(2)bni_21]x2[0] + [bni_21]x1[0] + [bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (4)    (0 ≥ 0 ⇒ (UIncreasing(COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])), ≥)∧[bni_21 + (-1)Bound*bni_21] + [(2)bni_21]x2[0] + [bni_21]x1[0] + [bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (5)    (0 ≥ 0 ⇒ (UIncreasing(COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])), ≥)∧[bni_21 + (-1)Bound*bni_21] + [(2)bni_21]x2[0] + [bni_21]x1[0] + [bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (6)    (0 ≥ 0 ⇒ (UIncreasing(COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])), ≥)∧0 ≥ 0∧[(2)bni_21] ≥ 0∧[bni_21] ≥ 0∧[bni_21] ≥ 0∧[bni_21 + (-1)Bound*bni_21] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_22] ≥ 0)







For Pair COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → 2793_0_INSERT_LOAD(java.lang.Object(x1), x3) the following chains were created:
  • We consider the chain 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]), COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1]) → 2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1]), 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) which results in the following constraint:

    (7)    (>(x3[0], x0[0])=TRUEjava.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0]))=java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1]))∧x3[0]=x3[1]java.lang.Object(x1[1])=java.lang.Object(BinTreeChanger.Tree(x0[0]1, java.lang.Object(x1[0]1), x2[0]1))∧x3[1]=x3[0]1COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1])≥NonInfC∧COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1])≥2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])∧(UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥))



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

    (8)    (>(x3[0], x0[0])=TRUECOND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(BinTreeChanger.Tree(x0[0]1, java.lang.Object(x1[0]1), x2[0]1)), x2[0])), x3[0])≥NonInfC∧COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(BinTreeChanger.Tree(x0[0]1, java.lang.Object(x1[0]1), x2[0]1)), x2[0])), x3[0])≥2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0]1, java.lang.Object(x1[0]1), x2[0]1)), x3[0])∧(UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥))



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

    (9)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥)∧[(2)bni_23 + (-1)Bound*bni_23] + [(2)bni_23]x2[0] + [(2)bni_23]x2[0]1 + [bni_23]x1[0]1 + [bni_23]x0[0]1 + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + [2]x2[0] + x0[0] ≥ 0)



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

    (10)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥)∧[(2)bni_23 + (-1)Bound*bni_23] + [(2)bni_23]x2[0] + [(2)bni_23]x2[0]1 + [bni_23]x1[0]1 + [bni_23]x0[0]1 + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + [2]x2[0] + x0[0] ≥ 0)



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

    (11)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥)∧[(2)bni_23 + (-1)Bound*bni_23] + [(2)bni_23]x2[0] + [(2)bni_23]x2[0]1 + [bni_23]x1[0]1 + [bni_23]x0[0]1 + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + [2]x2[0] + x0[0] ≥ 0)



    We simplified constraint (11) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (12)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥)∧0 ≥ 0∧[(2)bni_23] ≥ 0∧[(2)bni_23] ≥ 0∧[bni_23] ≥ 0∧[bni_23] ≥ 0∧[bni_23] ≥ 0∧[(2)bni_23 + (-1)Bound*bni_23] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1 + (-1)bso_24] ≥ 0∧[1] ≥ 0)



  • We consider the chain 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]), COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1]) → 2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1]), 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) which results in the following constraint:

    (13)    (>(x3[0], x0[0])=TRUEjava.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0]))=java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1]))∧x3[0]=x3[1]java.lang.Object(x1[1])=java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2])))∧x3[1]=x3[2]COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1])≥NonInfC∧COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1])≥2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])∧(UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥))



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

    (14)    (>(x3[0], x0[0])=TRUECOND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x2[0])), x3[0])≥NonInfC∧COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x2[0])), x3[0])≥2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[0])∧(UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥))



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

    (15)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥)∧[(3)bni_23 + (-1)Bound*bni_23] + [(2)bni_23]x2[0] + [(2)bni_23]x2[2] + [bni_23]x1[2] + [bni_23]x0[2] + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + [2]x2[0] + x0[0] ≥ 0)



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

    (16)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥)∧[(3)bni_23 + (-1)Bound*bni_23] + [(2)bni_23]x2[0] + [(2)bni_23]x2[2] + [bni_23]x1[2] + [bni_23]x0[2] + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + [2]x2[0] + x0[0] ≥ 0)



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

    (17)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥)∧[(3)bni_23 + (-1)Bound*bni_23] + [(2)bni_23]x2[0] + [(2)bni_23]x2[2] + [bni_23]x1[2] + [bni_23]x0[2] + [bni_23]x0[0] ≥ 0∧[1 + (-1)bso_24] + [2]x2[0] + x0[0] ≥ 0)



    We simplified constraint (17) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥)∧0 ≥ 0∧[(2)bni_23] ≥ 0∧[(2)bni_23] ≥ 0∧[bni_23] ≥ 0∧[bni_23] ≥ 0∧[bni_23] ≥ 0∧[(3)bni_23 + (-1)Bound*bni_23] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1 + (-1)bso_24] ≥ 0∧[1] ≥ 0)







For Pair 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → COND_2793_0_INSERT_LOAD1(<=(x3, x0), java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) the following chains were created:
  • We consider the chain 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]), COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3]) → 2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3]) which results in the following constraint:

    (19)    (<=(x3[2], x0[2])=TRUEjava.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2])))=java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3])))∧x3[2]=x3[3]2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])≥NonInfC∧2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])≥COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])∧(UIncreasing(COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])), ≥))



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

    (20)    (<=(x3[2], x0[2])=TRUE2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])≥NonInfC∧2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])≥COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])∧(UIncreasing(COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])), ≥))



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

    (21)    (0 ≥ 0 ⇒ (UIncreasing(COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])), ≥)∧[(2)bni_25 + (-1)Bound*bni_25] + [(2)bni_25]x2[2] + [bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (22)    (0 ≥ 0 ⇒ (UIncreasing(COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])), ≥)∧[(2)bni_25 + (-1)Bound*bni_25] + [(2)bni_25]x2[2] + [bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (23)    (0 ≥ 0 ⇒ (UIncreasing(COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])), ≥)∧[(2)bni_25 + (-1)Bound*bni_25] + [(2)bni_25]x2[2] + [bni_25]x1[2] + [bni_25]x0[2] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (24)    (0 ≥ 0 ⇒ (UIncreasing(COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])), ≥)∧0 ≥ 0∧[(2)bni_25] ≥ 0∧[bni_25] ≥ 0∧[bni_25] ≥ 0∧[(2)bni_25 + (-1)Bound*bni_25] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_26] ≥ 0)







For Pair COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → 2793_0_INSERT_LOAD(java.lang.Object(x2), x3) the following chains were created:
  • We consider the chain 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]), COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3]) → 2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3]), 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) which results in the following constraint:

    (25)    (<=(x3[2], x0[2])=TRUEjava.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2])))=java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3])))∧x3[2]=x3[3]java.lang.Object(x2[3])=java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0]))∧x3[3]=x3[0]COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3])≥NonInfC∧COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3])≥2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])∧(UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥))



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

    (26)    (<=(x3[2], x0[2])=TRUECOND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])))), x3[2])≥NonInfC∧COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])))), x3[2])≥2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[2])∧(UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥))



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

    (27)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥)∧[(4)bni_27 + (-1)Bound*bni_27] + [(4)bni_27]x2[0] + [(2)bni_27]x1[0] + [(2)bni_27]x0[0] + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[3 + (-1)bso_28] + [2]x2[0] + x1[0] + x0[0] + x1[2] + x0[2] ≥ 0)



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

    (28)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥)∧[(4)bni_27 + (-1)Bound*bni_27] + [(4)bni_27]x2[0] + [(2)bni_27]x1[0] + [(2)bni_27]x0[0] + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[3 + (-1)bso_28] + [2]x2[0] + x1[0] + x0[0] + x1[2] + x0[2] ≥ 0)



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

    (29)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥)∧[(4)bni_27 + (-1)Bound*bni_27] + [(4)bni_27]x2[0] + [(2)bni_27]x1[0] + [(2)bni_27]x0[0] + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[3 + (-1)bso_28] + [2]x2[0] + x1[0] + x0[0] + x1[2] + x0[2] ≥ 0)



    We simplified constraint (29) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (30)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥)∧0 ≥ 0∧[(4)bni_27] ≥ 0∧[(2)bni_27] ≥ 0∧[(2)bni_27] ≥ 0∧[bni_27] ≥ 0∧[bni_27] ≥ 0∧[(4)bni_27 + (-1)Bound*bni_27] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[3 + (-1)bso_28] ≥ 0∧[1] ≥ 0)



  • We consider the chain 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]), COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3]) → 2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3]), 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) which results in the following constraint:

    (31)    (<=(x3[2], x0[2])=TRUEjava.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2])))=java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3])))∧x3[2]=x3[3]java.lang.Object(x2[3])=java.lang.Object(BinTreeChanger.Tree(x0[2]1, x1[2]1, java.lang.Object(x2[2]1)))∧x3[3]=x3[2]1COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3])≥NonInfC∧COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3])≥2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])∧(UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥))



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

    (32)    (<=(x3[2], x0[2])=TRUECOND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(BinTreeChanger.Tree(x0[2]1, x1[2]1, java.lang.Object(x2[2]1))))), x3[2])≥NonInfC∧COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(BinTreeChanger.Tree(x0[2]1, x1[2]1, java.lang.Object(x2[2]1))))), x3[2])≥2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2]1, x1[2]1, java.lang.Object(x2[2]1))), x3[2])∧(UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥))



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

    (33)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥)∧[(6)bni_27 + (-1)Bound*bni_27] + [(4)bni_27]x2[2]1 + [(2)bni_27]x1[2]1 + [(2)bni_27]x0[2]1 + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[4 + (-1)bso_28] + [2]x2[2]1 + x1[2]1 + x0[2]1 + x1[2] + x0[2] ≥ 0)



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

    (34)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥)∧[(6)bni_27 + (-1)Bound*bni_27] + [(4)bni_27]x2[2]1 + [(2)bni_27]x1[2]1 + [(2)bni_27]x0[2]1 + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[4 + (-1)bso_28] + [2]x2[2]1 + x1[2]1 + x0[2]1 + x1[2] + x0[2] ≥ 0)



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

    (35)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥)∧[(6)bni_27 + (-1)Bound*bni_27] + [(4)bni_27]x2[2]1 + [(2)bni_27]x1[2]1 + [(2)bni_27]x0[2]1 + [bni_27]x1[2] + [bni_27]x0[2] ≥ 0∧[4 + (-1)bso_28] + [2]x2[2]1 + x1[2]1 + x0[2]1 + x1[2] + x0[2] ≥ 0)



    We simplified constraint (35) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (36)    (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥)∧0 ≥ 0∧[(4)bni_27] ≥ 0∧[(2)bni_27] ≥ 0∧[(2)bni_27] ≥ 0∧[bni_27] ≥ 0∧[bni_27] ≥ 0∧[(6)bni_27 + (-1)Bound*bni_27] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[4 + (-1)bso_28] ≥ 0∧[1] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → COND_2793_0_INSERT_LOAD(>(x3, x0), java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])), ≥)∧0 ≥ 0∧[(2)bni_21] ≥ 0∧[bni_21] ≥ 0∧[bni_21] ≥ 0∧[bni_21 + (-1)Bound*bni_21] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_22] ≥ 0)

  • COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → 2793_0_INSERT_LOAD(java.lang.Object(x1), x3)
    • (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥)∧0 ≥ 0∧[(2)bni_23] ≥ 0∧[(2)bni_23] ≥ 0∧[bni_23] ≥ 0∧[bni_23] ≥ 0∧[bni_23] ≥ 0∧[(2)bni_23 + (-1)Bound*bni_23] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1 + (-1)bso_24] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])), ≥)∧0 ≥ 0∧[(2)bni_23] ≥ 0∧[(2)bni_23] ≥ 0∧[bni_23] ≥ 0∧[bni_23] ≥ 0∧[bni_23] ≥ 0∧[(3)bni_23 + (-1)Bound*bni_23] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1 + (-1)bso_24] ≥ 0∧[1] ≥ 0)

  • 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → COND_2793_0_INSERT_LOAD1(<=(x3, x0), java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])), ≥)∧0 ≥ 0∧[(2)bni_25] ≥ 0∧[bni_25] ≥ 0∧[bni_25] ≥ 0∧[(2)bni_25 + (-1)Bound*bni_25] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_26] ≥ 0)

  • COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → 2793_0_INSERT_LOAD(java.lang.Object(x2), x3)
    • (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥)∧0 ≥ 0∧[(4)bni_27] ≥ 0∧[(2)bni_27] ≥ 0∧[(2)bni_27] ≥ 0∧[bni_27] ≥ 0∧[bni_27] ≥ 0∧[(4)bni_27 + (-1)Bound*bni_27] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[3 + (-1)bso_28] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])), ≥)∧0 ≥ 0∧[(4)bni_27] ≥ 0∧[(2)bni_27] ≥ 0∧[(2)bni_27] ≥ 0∧[bni_27] ≥ 0∧[bni_27] ≥ 0∧[(6)bni_27 + (-1)Bound*bni_27] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[4 + (-1)bso_28] ≥ 0∧[1] ≥ 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 with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(2929_1_insert_InvokeMethod(x1)) = 0   
POL(2973_0_insert_Return) = 0   
POL(2793_0_INSERT_LOAD(x1, x2)) = [-1] + x1   
POL(java.lang.Object(x1)) = [1] + x1   
POL(BinTreeChanger.Tree(x1, x2, x3)) = [2]x3 + x2 + x1   
POL(COND_2793_0_INSERT_LOAD(x1, x2, x3)) = [-1] + x2   
POL(>(x1, x2)) = 0   
POL(COND_2793_0_INSERT_LOAD1(x1, x2, x3)) = [-1] + x2   
POL(<=(x1, x2)) = 0   

The following pairs are in P>:

COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1]) → 2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])
COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3]) → 2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])

The following pairs are in Pbound:

2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])
COND_2793_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1]) → 2793_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])
2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])
COND_2793_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3]) → 2793_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])

The following pairs are in P:

2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2793_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])
2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2793_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])

There are no usable rules.

(9) 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


The ITRS R consists of the following rules:
2929_1_insert_InvokeMethod(2973_0_insert_Return) → 2973_0_insert_Return

The integer pair graph contains the following rules and edges:
(0): 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2793_0_INSERT_LOAD(x3[0] > x0[0], java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])
(2): 2793_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2793_0_INSERT_LOAD1(x3[2] <= x0[2], java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])


The set Q consists of the following terms:
2929_1_insert_InvokeMethod(2973_0_insert_Return)

(10) IDependencyGraphProof (EQUIVALENT transformation)

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

(11) TRUE

(12) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: BinTreeChanger.Tree.applyTreeChanger(LBinTreeChanger/TreeChanger;)V
SCC calls the following helper methods: BinTreeChanger.Tree.applyTreeChanger(LBinTreeChanger/TreeChanger;)V
Performed SCC analyses: UsedFieldsAnalysis

(13) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 83 rules for P and 24 rules for R.


P rules:
1677_0_applyTreeChanger_FieldAccess(EOS(STATIC_1677), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 1680_0_applyTreeChanger_FieldAccess(EOS(STATIC_1680), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)))
1680_0_applyTreeChanger_FieldAccess(EOS(STATIC_1680), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 1688_0_applyTreeChanger_Store(EOS(STATIC_1688), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659)
1688_0_applyTreeChanger_Store(EOS(STATIC_1688), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659) → 1695_0_applyTreeChanger_Load(EOS(STATIC_1695), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659)
1695_0_applyTreeChanger_Load(EOS(STATIC_1695), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659) → 1700_0_applyTreeChanger_FieldAccess(EOS(STATIC_1700), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)))
1700_0_applyTreeChanger_FieldAccess(EOS(STATIC_1700), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 1706_0_applyTreeChanger_Store(EOS(STATIC_1706), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660)
1706_0_applyTreeChanger_Store(EOS(STATIC_1706), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660) → 1716_0_applyTreeChanger_Load(EOS(STATIC_1716), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660)
1716_0_applyTreeChanger_Load(EOS(STATIC_1716), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660) → 1720_0_applyTreeChanger_Load(EOS(STATIC_1720), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660)
1720_0_applyTreeChanger_Load(EOS(STATIC_1720), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660) → 1728_0_applyTreeChanger_InvokeMethod(EOS(STATIC_1728), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)))
1728_0_applyTreeChanger_InvokeMethod(EOS(STATIC_1728), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 1736_0_change_New(EOS(STATIC_1736), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)))
1736_0_change_New(EOS(STATIC_1736), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 1750_0_change_Duplicate(EOS(STATIC_1750), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))
1750_0_change_Duplicate(EOS(STATIC_1750), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1760_0_change_ConstantStackPush(EOS(STATIC_1760), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))
1760_0_change_ConstantStackPush(EOS(STATIC_1760), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1769_0_change_InvokeMethod(EOS(STATIC_1769), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42)
1769_0_change_InvokeMethod(EOS(STATIC_1769), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1) → 1780_0_<init>_Load(EOS(STATIC_1780), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42) | =(matching1, 42)
1780_0_<init>_Load(EOS(STATIC_1780), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching2) → 1800_0_<init>_InvokeMethod(EOS(STATIC_1800), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) | &&(=(matching1, 42), =(matching2, 42))
1800_0_<init>_InvokeMethod(EOS(STATIC_1800), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching2, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1811_0_<init>_Load(EOS(STATIC_1811), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42) | &&(=(matching1, 42), =(matching2, 42))
1811_0_<init>_Load(EOS(STATIC_1811), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching2) → 1828_0_<init>_Load(EOS(STATIC_1828), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) | &&(=(matching1, 42), =(matching2, 42))
1828_0_<init>_Load(EOS(STATIC_1828), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1, matching2, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1840_0_<init>_FieldAccess(EOS(STATIC_1840), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42) | &&(=(matching1, 42), =(matching2, 42))
1840_0_<init>_FieldAccess(EOS(STATIC_1840), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching2) → 1851_0_<init>_Return(EOS(STATIC_1851), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42) | &&(=(matching1, 42), =(matching2, 42))
1851_0_<init>_Return(EOS(STATIC_1851), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1) → 1859_0_change_Store(EOS(STATIC_1859), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) | =(matching1, 42)
1859_0_change_Store(EOS(STATIC_1859), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1863_0_change_New(EOS(STATIC_1863), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))
1863_0_change_New(EOS(STATIC_1863), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1876_0_change_Duplicate(EOS(STATIC_1876), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))
1876_0_change_Duplicate(EOS(STATIC_1876), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1883_0_change_ConstantStackPush(EOS(STATIC_1883), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))
1883_0_change_ConstantStackPush(EOS(STATIC_1883), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1889_0_change_InvokeMethod(EOS(STATIC_1889), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42)
1889_0_change_InvokeMethod(EOS(STATIC_1889), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1) → 1893_0_<init>_Load(EOS(STATIC_1893), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42) | =(matching1, 42)
1893_0_<init>_Load(EOS(STATIC_1893), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching2) → 1901_0_<init>_InvokeMethod(EOS(STATIC_1901), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) | &&(=(matching1, 42), =(matching2, 42))
1901_0_<init>_InvokeMethod(EOS(STATIC_1901), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching2, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1907_0_<init>_Load(EOS(STATIC_1907), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42) | &&(=(matching1, 42), =(matching2, 42))
1907_0_<init>_Load(EOS(STATIC_1907), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching2) → 1912_0_<init>_Load(EOS(STATIC_1912), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) | &&(=(matching1, 42), =(matching2, 42))
1912_0_<init>_Load(EOS(STATIC_1912), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1, matching2, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1917_0_<init>_FieldAccess(EOS(STATIC_1917), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42) | &&(=(matching1, 42), =(matching2, 42))
1917_0_<init>_FieldAccess(EOS(STATIC_1917), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching2) → 1938_0_<init>_Return(EOS(STATIC_1938), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), 42) | &&(=(matching1, 42), =(matching2, 42))
1938_0_<init>_Return(EOS(STATIC_1938), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), matching1) → 1957_0_change_Store(EOS(STATIC_1957), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) | =(matching1, 42)
1957_0_change_Store(EOS(STATIC_1957), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1966_0_change_Load(EOS(STATIC_1966), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))
1966_0_change_Load(EOS(STATIC_1966), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1973_0_change_Load(EOS(STATIC_1973), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))
1973_0_change_Load(EOS(STATIC_1973), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 1989_0_change_FieldAccess(EOS(STATIC_1989), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)))
1989_0_change_FieldAccess(EOS(STATIC_1989), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 2003_0_change_FieldAccess(EOS(STATIC_2003), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), o659)
2003_0_change_FieldAccess(EOS(STATIC_2003), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), o659) → 2013_0_change_Load(EOS(STATIC_2013), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))
2013_0_change_Load(EOS(STATIC_2013), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 2017_0_change_Load(EOS(STATIC_2017), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))
2017_0_change_Load(EOS(STATIC_2017), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))) → 2022_0_change_FieldAccess(EOS(STATIC_2022), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)))
2022_0_change_FieldAccess(EOS(STATIC_2022), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 2025_0_change_FieldAccess(EOS(STATIC_2025), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), o660)
2025_0_change_FieldAccess(EOS(STATIC_2025), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), o660) → 2031_0_change_Load(EOS(STATIC_2031), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660)))
2031_0_change_Load(EOS(STATIC_2031), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660))) → 2034_0_change_Load(EOS(STATIC_2034), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)))
2034_0_change_Load(EOS(STATIC_2034), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 2039_0_change_FieldAccess(EOS(STATIC_2039), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)))
2039_0_change_FieldAccess(EOS(STATIC_2039), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL))) → 2045_0_change_Load(EOS(STATIC_2045), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660)), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660)))
2045_0_change_Load(EOS(STATIC_2045), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660)), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660))) → 2049_0_change_Load(EOS(STATIC_2049), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660)))
2049_0_change_Load(EOS(STATIC_2049), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660))) → 2053_0_change_FieldAccess(EOS(STATIC_2053), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660)), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660)))
2053_0_change_FieldAccess(EOS(STATIC_2053), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660)), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), o660)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660))) → 2058_0_change_Return(EOS(STATIC_2058), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660)))))
2058_0_change_Return(EOS(STATIC_2058), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660))))) → 2062_0_applyTreeChanger_Load(EOS(STATIC_2062), o659, o660)
2062_0_applyTreeChanger_Load(EOS(STATIC_2062), o659, o660) → 2066_0_applyTreeChanger_NULL(EOS(STATIC_2066), o659, o660, o659)
2066_0_applyTreeChanger_NULL(EOS(STATIC_2066), java.lang.Object(o1014sub), o660, java.lang.Object(o1014sub)) → 2070_0_applyTreeChanger_NULL(EOS(STATIC_2070), java.lang.Object(o1014sub), o660, java.lang.Object(o1014sub))
2066_0_applyTreeChanger_NULL(EOS(STATIC_2066), NULL, o660, NULL) → 2071_0_applyTreeChanger_NULL(EOS(STATIC_2071), NULL, o660, NULL)
2070_0_applyTreeChanger_NULL(EOS(STATIC_2070), java.lang.Object(o1014sub), o660, java.lang.Object(o1014sub)) → 2076_0_applyTreeChanger_Load(EOS(STATIC_2076), java.lang.Object(o1014sub), o660)
2076_0_applyTreeChanger_Load(EOS(STATIC_2076), java.lang.Object(o1014sub), o660) → 2083_0_applyTreeChanger_Load(EOS(STATIC_2083), o660, java.lang.Object(o1014sub))
2083_0_applyTreeChanger_Load(EOS(STATIC_2083), o660, java.lang.Object(o1014sub)) → 2089_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2089), o660, java.lang.Object(o1014sub))
2089_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2089), o660, java.lang.Object(o1014sub)) → 2098_1_applyTreeChanger_InvokeMethod(2098_0_applyTreeChanger_Load(EOS(STATIC_2098), java.lang.Object(o1014sub)), o660, java.lang.Object(o1014sub))
2098_0_applyTreeChanger_Load(EOS(STATIC_2098), java.lang.Object(o1014sub)) → 2105_0_applyTreeChanger_Load(EOS(STATIC_2105), java.lang.Object(o1014sub))
2098_1_applyTreeChanger_InvokeMethod(2100_0_applyTreeChanger_Return(EOS(STATIC_2100)), o660, java.lang.Object(o1014sub)) → 2134_0_applyTreeChanger_Return(EOS(STATIC_2134), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2098_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return(EOS(STATIC_2368)), o660, java.lang.Object(o1014sub)) → 2424_0_applyTreeChanger_Return(EOS(STATIC_2424), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1306, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1308)))))))))
2098_1_applyTreeChanger_InvokeMethod(2414_0_applyTreeChanger_Return(EOS(STATIC_2414)), o660, java.lang.Object(o1014sub)) → 2468_0_applyTreeChanger_Return(EOS(STATIC_2468), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1270, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1272)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2098_1_applyTreeChanger_InvokeMethod(2603_0_applyTreeChanger_Return(EOS(STATIC_2603)), o660, java.lang.Object(o1014sub)) → 2635_0_applyTreeChanger_Return(EOS(STATIC_2635), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1591, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1593)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1597, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1599)))))))))
2105_0_applyTreeChanger_Load(EOS(STATIC_2105), java.lang.Object(o1014sub)) → 1671_0_applyTreeChanger_Load(EOS(STATIC_1671), java.lang.Object(o1014sub))
1671_0_applyTreeChanger_Load(EOS(STATIC_1671), java.lang.Object(o650sub)) → 1677_0_applyTreeChanger_FieldAccess(EOS(STATIC_1677), java.lang.Object(o650sub), java.lang.Object(o650sub))
2134_0_applyTreeChanger_Return(EOS(STATIC_2134), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2295_0_applyTreeChanger_Return(EOS(STATIC_2295), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2295_0_applyTreeChanger_Return(EOS(STATIC_2295), o1190, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1187, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2333_0_applyTreeChanger_Return(EOS(STATIC_2333), o1190, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1187, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2333_0_applyTreeChanger_Return(EOS(STATIC_2333), o1274, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1270, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1272))))) → 2363_0_applyTreeChanger_Load(EOS(STATIC_2363), o1274)
2363_0_applyTreeChanger_Load(EOS(STATIC_2363), o1274) → 2377_0_applyTreeChanger_NULL(EOS(STATIC_2377), o1274, o1274)
2377_0_applyTreeChanger_NULL(EOS(STATIC_2377), java.lang.Object(o1402sub), java.lang.Object(o1402sub)) → 2388_0_applyTreeChanger_NULL(EOS(STATIC_2388), java.lang.Object(o1402sub), java.lang.Object(o1402sub))
2388_0_applyTreeChanger_NULL(EOS(STATIC_2388), java.lang.Object(o1402sub), java.lang.Object(o1402sub)) → 2409_0_applyTreeChanger_Load(EOS(STATIC_2409), java.lang.Object(o1402sub))
2409_0_applyTreeChanger_Load(EOS(STATIC_2409), java.lang.Object(o1402sub)) → 2433_0_applyTreeChanger_Load(EOS(STATIC_2433), java.lang.Object(o1402sub))
2433_0_applyTreeChanger_Load(EOS(STATIC_2433), java.lang.Object(o1402sub)) → 2437_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2437), java.lang.Object(o1402sub))
2437_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2437), java.lang.Object(o1402sub)) → 2457_1_applyTreeChanger_InvokeMethod(2457_0_applyTreeChanger_Load(EOS(STATIC_2457), java.lang.Object(o1402sub)), java.lang.Object(o1402sub))
2457_0_applyTreeChanger_Load(EOS(STATIC_2457), java.lang.Object(o1402sub)) → 2483_0_applyTreeChanger_Load(EOS(STATIC_2483), java.lang.Object(o1402sub))
2483_0_applyTreeChanger_Load(EOS(STATIC_2483), java.lang.Object(o1402sub)) → 1671_0_applyTreeChanger_Load(EOS(STATIC_1671), java.lang.Object(o1402sub))
2424_0_applyTreeChanger_Return(EOS(STATIC_2424), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1306, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1308))))))))) → 2333_0_applyTreeChanger_Return(EOS(STATIC_2333), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1306, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1308)))))))))
2468_0_applyTreeChanger_Return(EOS(STATIC_2468), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1270, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1272)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2333_0_applyTreeChanger_Return(EOS(STATIC_2333), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1270, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1272)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2635_0_applyTreeChanger_Return(EOS(STATIC_2635), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1591, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1593)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1597, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1599))))))))) → 2333_0_applyTreeChanger_Return(EOS(STATIC_2333), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1591, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1593)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1597, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1599)))))))))
2071_0_applyTreeChanger_NULL(EOS(STATIC_2071), NULL, o660, NULL) → 2077_0_applyTreeChanger_Load(EOS(STATIC_2077), o660)
2077_0_applyTreeChanger_Load(EOS(STATIC_2077), o660) → 2085_0_applyTreeChanger_NULL(EOS(STATIC_2085), o660, o660)
2085_0_applyTreeChanger_NULL(EOS(STATIC_2085), java.lang.Object(o1027sub), java.lang.Object(o1027sub)) → 2090_0_applyTreeChanger_NULL(EOS(STATIC_2090), java.lang.Object(o1027sub), java.lang.Object(o1027sub))
2090_0_applyTreeChanger_NULL(EOS(STATIC_2090), java.lang.Object(o1027sub), java.lang.Object(o1027sub)) → 2099_0_applyTreeChanger_Load(EOS(STATIC_2099), java.lang.Object(o1027sub))
2099_0_applyTreeChanger_Load(EOS(STATIC_2099), java.lang.Object(o1027sub)) → 2106_0_applyTreeChanger_Load(EOS(STATIC_2106), java.lang.Object(o1027sub))
2106_0_applyTreeChanger_Load(EOS(STATIC_2106), java.lang.Object(o1027sub)) → 2112_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2112), java.lang.Object(o1027sub))
2112_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2112), java.lang.Object(o1027sub)) → 2127_1_applyTreeChanger_InvokeMethod(2127_0_applyTreeChanger_Load(EOS(STATIC_2127), java.lang.Object(o1027sub)), java.lang.Object(o1027sub))
2127_0_applyTreeChanger_Load(EOS(STATIC_2127), java.lang.Object(o1027sub)) → 2135_0_applyTreeChanger_Load(EOS(STATIC_2135), java.lang.Object(o1027sub))
2135_0_applyTreeChanger_Load(EOS(STATIC_2135), java.lang.Object(o1027sub)) → 1671_0_applyTreeChanger_Load(EOS(STATIC_1671), java.lang.Object(o1027sub))
R rules:
2085_0_applyTreeChanger_NULL(EOS(STATIC_2085), NULL, NULL) → 2091_0_applyTreeChanger_NULL(EOS(STATIC_2091), NULL, NULL)
2091_0_applyTreeChanger_NULL(EOS(STATIC_2091), NULL, NULL) → 2100_0_applyTreeChanger_Return(EOS(STATIC_2100))
2127_1_applyTreeChanger_InvokeMethod(2100_0_applyTreeChanger_Return(EOS(STATIC_2100)), java.lang.Object(o1027sub)) → 2170_0_applyTreeChanger_Return(EOS(STATIC_2170), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return(EOS(STATIC_2368)), java.lang.Object(o1027sub)) → 2429_0_applyTreeChanger_Return(EOS(STATIC_2429), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1306, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1308)))))))))
2127_1_applyTreeChanger_InvokeMethod(2414_0_applyTreeChanger_Return(EOS(STATIC_2414)), java.lang.Object(o1027sub)) → 2478_0_applyTreeChanger_Return(EOS(STATIC_2478), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1270, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1272)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2127_1_applyTreeChanger_InvokeMethod(2603_0_applyTreeChanger_Return(EOS(STATIC_2603)), java.lang.Object(o1027sub)) → 2642_0_applyTreeChanger_Return(EOS(STATIC_2642), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1591, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1593)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1597, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1599)))))))))
2170_0_applyTreeChanger_Return(EOS(STATIC_2170), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2306_0_applyTreeChanger_Return(EOS(STATIC_2306), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2306_0_applyTreeChanger_Return(EOS(STATIC_2306), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1219, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2348_0_applyTreeChanger_Return(EOS(STATIC_2348), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1219, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2348_0_applyTreeChanger_Return(EOS(STATIC_2348), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1306, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1308))))) → 2368_0_applyTreeChanger_Return(EOS(STATIC_2368))
2377_0_applyTreeChanger_NULL(EOS(STATIC_2377), NULL, NULL) → 2389_0_applyTreeChanger_NULL(EOS(STATIC_2389), NULL, NULL)
2389_0_applyTreeChanger_NULL(EOS(STATIC_2389), NULL, NULL) → 2414_0_applyTreeChanger_Return(EOS(STATIC_2414))
2429_0_applyTreeChanger_Return(EOS(STATIC_2429), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1306, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1308))))))))) → 2348_0_applyTreeChanger_Return(EOS(STATIC_2348), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1306, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1308)))))))))
2457_1_applyTreeChanger_InvokeMethod(2100_0_applyTreeChanger_Return(EOS(STATIC_2100)), java.lang.Object(o1402sub)) → 2515_0_applyTreeChanger_Return(EOS(STATIC_2515), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2457_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return(EOS(STATIC_2368)), java.lang.Object(o1402sub)) → 2537_0_applyTreeChanger_Return(EOS(STATIC_2537), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1306, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1308)))))))))
2457_1_applyTreeChanger_InvokeMethod(2414_0_applyTreeChanger_Return(EOS(STATIC_2414)), java.lang.Object(o1402sub)) → 2566_0_applyTreeChanger_Return(EOS(STATIC_2566), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1519, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1520)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2457_1_applyTreeChanger_InvokeMethod(2603_0_applyTreeChanger_Return(EOS(STATIC_2603)), java.lang.Object(o1402sub)) → 2650_0_applyTreeChanger_Return(EOS(STATIC_2650), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1591, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1593)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1597, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1599)))))))))
2478_0_applyTreeChanger_Return(EOS(STATIC_2478), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1270, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1272)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2348_0_applyTreeChanger_Return(EOS(STATIC_2348), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1270, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1272)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2515_0_applyTreeChanger_Return(EOS(STATIC_2515), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2538_0_applyTreeChanger_Return(EOS(STATIC_2538), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2537_0_applyTreeChanger_Return(EOS(STATIC_2537), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1306, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1308))))))))) → 2538_0_applyTreeChanger_Return(EOS(STATIC_2538), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1306, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1308)))))))))
2538_0_applyTreeChanger_Return(EOS(STATIC_2538), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1544))))) → 2567_0_applyTreeChanger_Return(EOS(STATIC_2567), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1544)))))
2566_0_applyTreeChanger_Return(EOS(STATIC_2566), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1519, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1520)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2567_0_applyTreeChanger_Return(EOS(STATIC_2567), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1519, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1520)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2567_0_applyTreeChanger_Return(EOS(STATIC_2567), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1597, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1599))))) → 2603_0_applyTreeChanger_Return(EOS(STATIC_2603))
2642_0_applyTreeChanger_Return(EOS(STATIC_2642), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1591, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1593)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1597, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1599))))))))) → 2348_0_applyTreeChanger_Return(EOS(STATIC_2348), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1591, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1593)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1597, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1599)))))))))
2650_0_applyTreeChanger_Return(EOS(STATIC_2650), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1591, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1593)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1597, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1599))))))))) → 2567_0_applyTreeChanger_Return(EOS(STATIC_2567), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1591, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1593)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1597, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1599)))))))))

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


P rules:
1677_0_applyTreeChanger_FieldAccess(EOS(STATIC_1677), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(x0), x1)), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(x0), x1))) → 2098_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(EOS(STATIC_1677), java.lang.Object(x0), java.lang.Object(x0)), x1, java.lang.Object(x0))
2098_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return(EOS(STATIC_2368)), java.lang.Object(x0), java.lang.Object(x1)) → 2457_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(EOS(STATIC_1677), java.lang.Object(x0), java.lang.Object(x0)), java.lang.Object(x0))
2098_1_applyTreeChanger_InvokeMethod(2414_0_applyTreeChanger_Return(EOS(STATIC_2414)), java.lang.Object(x0), java.lang.Object(x1)) → 2457_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(EOS(STATIC_1677), java.lang.Object(x0), java.lang.Object(x0)), java.lang.Object(x0))
2098_1_applyTreeChanger_InvokeMethod(2603_0_applyTreeChanger_Return(EOS(STATIC_2603)), java.lang.Object(x0), java.lang.Object(x1)) → 2457_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(EOS(STATIC_1677), java.lang.Object(x0), java.lang.Object(x0)), java.lang.Object(x0))
2098_1_applyTreeChanger_InvokeMethod(2100_0_applyTreeChanger_Return(EOS(STATIC_2100)), java.lang.Object(x0), java.lang.Object(x1)) → 2457_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(EOS(STATIC_1677), java.lang.Object(x0), java.lang.Object(x0)), java.lang.Object(x0))
1677_0_applyTreeChanger_FieldAccess(EOS(STATIC_1677), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(x0))), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(x0)))) → 2127_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(EOS(STATIC_1677), java.lang.Object(x0), java.lang.Object(x0)), java.lang.Object(x0))
R rules:
2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return(EOS(STATIC_2368)), java.lang.Object(x0)) → 2368_0_applyTreeChanger_Return(EOS(STATIC_2368))
2127_1_applyTreeChanger_InvokeMethod(2414_0_applyTreeChanger_Return(EOS(STATIC_2414)), java.lang.Object(x0)) → 2368_0_applyTreeChanger_Return(EOS(STATIC_2368))
2127_1_applyTreeChanger_InvokeMethod(2603_0_applyTreeChanger_Return(EOS(STATIC_2603)), java.lang.Object(x0)) → 2368_0_applyTreeChanger_Return(EOS(STATIC_2368))
2127_1_applyTreeChanger_InvokeMethod(2100_0_applyTreeChanger_Return(EOS(STATIC_2100)), java.lang.Object(x0)) → 2368_0_applyTreeChanger_Return(EOS(STATIC_2368))
2457_1_applyTreeChanger_InvokeMethod(2414_0_applyTreeChanger_Return(EOS(STATIC_2414)), java.lang.Object(x0)) → 2603_0_applyTreeChanger_Return(EOS(STATIC_2603))
2457_1_applyTreeChanger_InvokeMethod(2603_0_applyTreeChanger_Return(EOS(STATIC_2603)), java.lang.Object(x0)) → 2603_0_applyTreeChanger_Return(EOS(STATIC_2603))
2457_1_applyTreeChanger_InvokeMethod(2100_0_applyTreeChanger_Return(EOS(STATIC_2100)), java.lang.Object(x0)) → 2603_0_applyTreeChanger_Return(EOS(STATIC_2603))
2457_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return(EOS(STATIC_2368)), java.lang.Object(x0)) → 2603_0_applyTreeChanger_Return(EOS(STATIC_2603))

Filtered ground terms:



1677_0_applyTreeChanger_FieldAccess(x1, x2, x3) → 1677_0_applyTreeChanger_FieldAccess(x2, x3)
BinTreeChanger.Tree(x1, x2, x3) → BinTreeChanger.Tree(x2, x3)
2100_0_applyTreeChanger_Return(x1) → 2100_0_applyTreeChanger_Return
2603_0_applyTreeChanger_Return(x1) → 2603_0_applyTreeChanger_Return
2414_0_applyTreeChanger_Return(x1) → 2414_0_applyTreeChanger_Return
2368_0_applyTreeChanger_Return(x1) → 2368_0_applyTreeChanger_Return

Filtered duplicate args:



1677_0_applyTreeChanger_FieldAccess(x1, x2) → 1677_0_applyTreeChanger_FieldAccess(x2)

Filtered unneeded arguments:



2098_1_applyTreeChanger_InvokeMethod(x1, x2, x3) → 2098_1_applyTreeChanger_InvokeMethod(x1, x2)
2457_1_applyTreeChanger_InvokeMethod(x1, x2) → 2457_1_applyTreeChanger_InvokeMethod(x1)
2127_1_applyTreeChanger_InvokeMethod(x1, x2) → 2127_1_applyTreeChanger_InvokeMethod(x1)

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


P rules:
1677_0_applyTreeChanger_FieldAccess(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0), x1))) → 2098_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)), x1)
2098_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return, java.lang.Object(x0)) → 2457_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)))
2098_1_applyTreeChanger_InvokeMethod(2414_0_applyTreeChanger_Return, java.lang.Object(x0)) → 2457_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)))
2098_1_applyTreeChanger_InvokeMethod(2603_0_applyTreeChanger_Return, java.lang.Object(x0)) → 2457_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)))
2098_1_applyTreeChanger_InvokeMethod(2100_0_applyTreeChanger_Return, java.lang.Object(x0)) → 2457_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)))
1677_0_applyTreeChanger_FieldAccess(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0)))) → 2127_1_applyTreeChanger_InvokeMethod(1677_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)))
R rules:
2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return) → 2368_0_applyTreeChanger_Return
2127_1_applyTreeChanger_InvokeMethod(2414_0_applyTreeChanger_Return) → 2368_0_applyTreeChanger_Return
2127_1_applyTreeChanger_InvokeMethod(2603_0_applyTreeChanger_Return) → 2368_0_applyTreeChanger_Return
2127_1_applyTreeChanger_InvokeMethod(2100_0_applyTreeChanger_Return) → 2368_0_applyTreeChanger_Return
2457_1_applyTreeChanger_InvokeMethod(2414_0_applyTreeChanger_Return) → 2603_0_applyTreeChanger_Return
2457_1_applyTreeChanger_InvokeMethod(2603_0_applyTreeChanger_Return) → 2603_0_applyTreeChanger_Return
2457_1_applyTreeChanger_InvokeMethod(2100_0_applyTreeChanger_Return) → 2603_0_applyTreeChanger_Return
2457_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return) → 2603_0_applyTreeChanger_Return

Performed bisimulation on rules. Used the following equivalence classes: {[2127_1_applyTreeChanger_InvokeMethod_1, 2457_1_applyTreeChanger_InvokeMethod_1]=2127_1_applyTreeChanger_InvokeMethod_1, [2368_0_applyTreeChanger_Return, 2414_0_applyTreeChanger_Return, 2603_0_applyTreeChanger_Return, 2100_0_applyTreeChanger_Return]=2368_0_applyTreeChanger_Return}


Finished conversion. Obtained 4 rules for P and 1 rules for R. System has no predefined symbols.


P rules:
1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0), x1))) → 2098_1_APPLYTREECHANGER_INVOKEMETHOD(1677_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)), x1)
1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0), x1))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0))
2098_1_APPLYTREECHANGER_INVOKEMETHOD(2368_0_applyTreeChanger_Return, java.lang.Object(x0)) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0))
1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0)))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0))
R rules:
2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return) → 2368_0_applyTreeChanger_Return

(14) 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:
none


The ITRS R consists of the following rules:
2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return) → 2368_0_applyTreeChanger_Return

The integer pair graph contains the following rules and edges:
(0): 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[0]), x1[0]))) → 2098_1_APPLYTREECHANGER_INVOKEMETHOD(1677_0_applyTreeChanger_FieldAccess(java.lang.Object(x0[0])), x1[0])
(1): 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[1]), x1[1]))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[1]))
(2): 2098_1_APPLYTREECHANGER_INVOKEMETHOD(2368_0_applyTreeChanger_Return, java.lang.Object(x0[2])) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[2]))
(3): 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3])))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[3]))

(0) -> (2), if (1677_0_applyTreeChanger_FieldAccess(java.lang.Object(x0[0])) →* 2368_0_applyTreeChanger_Returnx1[0]* java.lang.Object(x0[2]))


(1) -> (0), if (java.lang.Object(x0[1]) →* java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[0]), x1[0])))


(1) -> (1), if (java.lang.Object(x0[1]) →* java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[1]'), x1[1]')))


(1) -> (3), if (java.lang.Object(x0[1]) →* java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3]))))


(2) -> (0), if (java.lang.Object(x0[2]) →* java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[0]), x1[0])))


(2) -> (1), if (java.lang.Object(x0[2]) →* java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[1]), x1[1])))


(2) -> (3), if (java.lang.Object(x0[2]) →* java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3]))))


(3) -> (0), if (java.lang.Object(x0[3]) →* java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[0]), x1[0])))


(3) -> (1), if (java.lang.Object(x0[3]) →* java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[1]), x1[1])))


(3) -> (3), if (java.lang.Object(x0[3]) →* java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3]'))))



The set Q consists of the following terms:
2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return)

(15) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(16) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[0]), x1[0]))) → 2098_1_APPLYTREECHANGER_INVOKEMETHOD(1677_0_applyTreeChanger_FieldAccess(java.lang.Object(x0[0])), x1[0])
1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[1]), x1[1]))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[1]))
2098_1_APPLYTREECHANGER_INVOKEMETHOD(2368_0_applyTreeChanger_Return, java.lang.Object(x0[2])) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[2]))
1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3])))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[3]))

The TRS R consists of the following rules:

2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return) → 2368_0_applyTreeChanger_Return

The set Q consists of the following terms:

2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return)

We have to consider all minimal (P,Q,R)-chains.

(17) DependencyGraphProof (EQUIVALENT transformation)

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

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[1]), x1[1]))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[1]))
1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3])))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[3]))

The TRS R consists of the following rules:

2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return) → 2368_0_applyTreeChanger_Return

The set Q consists of the following terms:

2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return)

We have to consider all minimal (P,Q,R)-chains.

(19) 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.

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[1]), x1[1]))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[1]))
1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3])))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[3]))

R is empty.
The set Q consists of the following terms:

2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return)

We have to consider all minimal (P,Q,R)-chains.

(21) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

2127_1_applyTreeChanger_InvokeMethod(2368_0_applyTreeChanger_Return)

(22) Obligation:

Q DP problem:
The TRS P consists of the following rules:

1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[1]), x1[1]))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[1]))
1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3])))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[3]))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(23) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[1]), x1[1]))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[1]))
    The graph contains the following edges 1 > 1

  • 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3])))) → 1677_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[3]))
    The graph contains the following edges 1 > 1

(24) YES

(25) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: BinTreeChanger.Tree.createTree(I)LBinTreeChanger/Tree;
SCC calls the following helper methods: BinTreeChanger.Tree.insert(I)V
Performed SCC analyses: UsedFieldsAnalysis

(26) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 37 rules for P and 81 rules for R.


P rules:
2408_0_createTree_Load(EOS(STATIC_2408), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985) → 2431_0_createTree_GE(EOS(STATIC_2431), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985, i115)
2431_0_createTree_GE(EOS(STATIC_2431), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985, i115) → 2436_0_createTree_GE(EOS(STATIC_2436), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985, i115)
2436_0_createTree_GE(EOS(STATIC_2436), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985, i115) → 2456_0_createTree_Load(EOS(STATIC_2456), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985) | <(i985, i115)
2456_0_createTree_Load(EOS(STATIC_2456), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985) → 2480_0_createTree_InvokeMethod(EOS(STATIC_2480), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)))
2480_0_createTree_InvokeMethod(EOS(STATIC_2480), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2485_0_random_FieldAccess(EOS(STATIC_2485), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)))
2485_0_random_FieldAccess(EOS(STATIC_2485), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2514_0_random_FieldAccess(EOS(STATIC_2514), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)))
2514_0_random_FieldAccess(EOS(STATIC_2514), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982))) → 2571_0_random_ArrayAccess(EOS(STATIC_2571), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i983)
2571_0_random_ArrayAccess(EOS(STATIC_2571), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i1066) → 2607_0_random_ArrayAccess(EOS(STATIC_2607), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i1066)
2607_0_random_ArrayAccess(EOS(STATIC_2607), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i1066) → 2613_0_random_ArrayAccess(EOS(STATIC_2613), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i1066)
2613_0_random_ArrayAccess(EOS(STATIC_2613), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i1066) → 2626_0_random_Store(EOS(STATIC_2626), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784) | <(i1066, i982)
2626_0_random_Store(EOS(STATIC_2626), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784) → 2655_0_random_FieldAccess(EOS(STATIC_2655), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784)
2655_0_random_FieldAccess(EOS(STATIC_2655), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784) → 2660_0_random_ConstantStackPush(EOS(STATIC_2660), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, i1066)
2660_0_random_ConstantStackPush(EOS(STATIC_2660), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, i1066) → 2664_0_random_IntArithmetic(EOS(STATIC_2664), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, i1066, 1)
2664_0_random_IntArithmetic(EOS(STATIC_2664), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, i1066, matching1) → 2669_0_random_FieldAccess(EOS(STATIC_2669), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, +(i1066, 1)) | &&(>=(i1066, 0), =(matching1, 1))
2669_0_random_FieldAccess(EOS(STATIC_2669), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, i1101) → 2674_0_random_Load(EOS(STATIC_2674), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784)
2674_0_random_Load(EOS(STATIC_2674), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784) → 2681_0_random_InvokeMethod(EOS(STATIC_2681), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784)
2681_0_random_InvokeMethod(EOS(STATIC_2681), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub)) → 2687_0_random_InvokeMethod(EOS(STATIC_2687), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub))
2687_0_random_InvokeMethod(EOS(STATIC_2687), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub)) → 2692_0_length_Load(EOS(STATIC_2692), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub), java.lang.Object(o1852sub))
2692_0_length_Load(EOS(STATIC_2692), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub), java.lang.Object(o1852sub)) → 2704_0_length_FieldAccess(EOS(STATIC_2704), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub), java.lang.Object(o1852sub))
2704_0_length_FieldAccess(EOS(STATIC_2704), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(java.lang.String(o1876sub, i1158)), java.lang.Object(java.lang.String(o1876sub, i1158))) → 2717_0_length_FieldAccess(EOS(STATIC_2717), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(java.lang.String(o1876sub, i1158)), java.lang.Object(java.lang.String(o1876sub, i1158))) | &&(>=(i1158, 0), >=(i1159, 0))
2717_0_length_FieldAccess(EOS(STATIC_2717), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(java.lang.String(o1876sub, i1158)), java.lang.Object(java.lang.String(o1876sub, i1158))) → 2740_0_length_Return(EOS(STATIC_2740), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(java.lang.String(o1876sub, i1158)), i1158)
2740_0_length_Return(EOS(STATIC_2740), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(java.lang.String(o1876sub, i1158)), i1158) → 2749_0_random_Return(EOS(STATIC_2749), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1158)
2749_0_random_Return(EOS(STATIC_2749), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1158) → 2752_0_createTree_InvokeMethod(EOS(STATIC_2752), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1158)
2752_0_createTree_InvokeMethod(EOS(STATIC_2752), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1158) → 2760_1_createTree_InvokeMethod(2760_0_insert_Load(EOS(STATIC_2760), java.lang.Object(BinTreeChanger.Tree(EOC)), i1158), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1158)
2760_1_createTree_InvokeMethod(2973_0_insert_Return(EOS(STATIC_2973)), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1369) → 2993_0_insert_Return(EOS(STATIC_2993), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1369)
2760_1_createTree_InvokeMethod(2974_0_insert_Return(EOS(STATIC_2974)), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1386) → 3000_0_insert_Return(EOS(STATIC_3000), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1386)
2760_1_createTree_InvokeMethod(3023_0_insert_Return(EOS(STATIC_3023)), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1437) → 3042_0_insert_Return(EOS(STATIC_3042), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1437)
2760_1_createTree_InvokeMethod(3031_0_insert_Return(EOS(STATIC_3031)), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1459) → 3056_0_insert_Return(EOS(STATIC_3056), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1459)
2993_0_insert_Return(EOS(STATIC_2993), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1369) → 3001_0_insert_Return(EOS(STATIC_3001), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1369)
3001_0_insert_Return(EOS(STATIC_3001), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1405) → 3018_0_createTree_Inc(EOS(STATIC_3018), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985)
3018_0_createTree_Inc(EOS(STATIC_3018), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985) → 3026_0_createTree_JMP(EOS(STATIC_3026), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), +(i985, 1)) | >=(i985, 0)
3026_0_createTree_JMP(EOS(STATIC_3026), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i1428) → 3035_0_createTree_Load(EOS(STATIC_3035), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i1428)
3035_0_createTree_Load(EOS(STATIC_3035), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i1428) → 2385_0_createTree_Load(EOS(STATIC_2385), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i1428)
2385_0_createTree_Load(EOS(STATIC_2385), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985) → 2408_0_createTree_Load(EOS(STATIC_2408), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985)
3000_0_insert_Return(EOS(STATIC_3000), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1386) → 3001_0_insert_Return(EOS(STATIC_3001), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1386)
3042_0_insert_Return(EOS(STATIC_3042), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1437) → 3001_0_insert_Return(EOS(STATIC_3001), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1437)
3056_0_insert_Return(EOS(STATIC_3056), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1459) → 3001_0_insert_Return(EOS(STATIC_3001), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1459)
R rules:
2760_0_insert_Load(EOS(STATIC_2760), java.lang.Object(BinTreeChanger.Tree(EOC)), i1158) → 2767_0_insert_Load(EOS(STATIC_2767), java.lang.Object(BinTreeChanger.Tree(EOC)), i1158)
2767_0_insert_Load(EOS(STATIC_2767), java.lang.Object(BinTreeChanger.Tree(EOC)), i1158) → 2783_0_insert_Load(EOS(STATIC_2783), java.lang.Object(BinTreeChanger.Tree(EOC)), i1158)
2937_0_insert_Load(EOS(STATIC_2937), java.lang.Object(o2056sub), i1231) → 2783_0_insert_Load(EOS(STATIC_2783), java.lang.Object(o2056sub), i1231)
2940_0_insert_Load(EOS(STATIC_2940), java.lang.Object(o2057sub), i1231) → 2783_0_insert_Load(EOS(STATIC_2783), java.lang.Object(o2057sub), i1231)
2783_0_insert_Load(EOS(STATIC_2783), java.lang.Object(o1966sub), i1231) → 2793_0_insert_Load(EOS(STATIC_2793), java.lang.Object(o1966sub), i1231, i1231)
2793_0_insert_Load(EOS(STATIC_2793), java.lang.Object(o1966sub), i1231, i1231) → 2798_0_insert_FieldAccess(EOS(STATIC_2798), java.lang.Object(o1966sub), i1231, i1231, java.lang.Object(o1966sub))
2798_0_insert_FieldAccess(EOS(STATIC_2798), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2807_0_insert_FieldAccess(EOS(STATIC_2807), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2807_0_insert_FieldAccess(EOS(STATIC_2807), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260)
2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260) → 2823_0_insert_GT(EOS(STATIC_2823), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260)
2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260) → 2824_0_insert_GT(EOS(STATIC_2824), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260)
2823_0_insert_GT(EOS(STATIC_2823), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260) → 2831_0_insert_Load(EOS(STATIC_2831), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) | >(i1231, i1260)
2824_0_insert_GT(EOS(STATIC_2824), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260) → 2832_0_insert_Load(EOS(STATIC_2832), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) | <=(i1231, i1260)
2831_0_insert_Load(EOS(STATIC_2831), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2842_0_insert_FieldAccess(EOS(STATIC_2842), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2832_0_insert_Load(EOS(STATIC_2832), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2844_0_insert_FieldAccess(EOS(STATIC_2844), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2842_0_insert_FieldAccess(EOS(STATIC_2842), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2852_0_insert_NONNULL(EOS(STATIC_2852), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, o1993)
2844_0_insert_FieldAccess(EOS(STATIC_2844), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2853_0_insert_NONNULL(EOS(STATIC_2853), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, o1992)
2852_0_insert_NONNULL(EOS(STATIC_2852), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2056sub)) → 2863_0_insert_NONNULL(EOS(STATIC_2863), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2056sub))
2852_0_insert_NONNULL(EOS(STATIC_2852), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL) → 2864_0_insert_NONNULL(EOS(STATIC_2864), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL)
2853_0_insert_NONNULL(EOS(STATIC_2853), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2057sub)) → 2865_0_insert_NONNULL(EOS(STATIC_2865), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2057sub))
2853_0_insert_NONNULL(EOS(STATIC_2853), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL) → 2866_0_insert_NONNULL(EOS(STATIC_2866), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL)
2863_0_insert_NONNULL(EOS(STATIC_2863), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2056sub)) → 2874_0_insert_Load(EOS(STATIC_2874), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2864_0_insert_NONNULL(EOS(STATIC_2864), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL) → 2875_0_insert_Load(EOS(STATIC_2875), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2865_0_insert_NONNULL(EOS(STATIC_2865), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2057sub)) → 2876_0_insert_Load(EOS(STATIC_2876), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2866_0_insert_NONNULL(EOS(STATIC_2866), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL) → 2877_0_insert_Load(EOS(STATIC_2877), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2874_0_insert_Load(EOS(STATIC_2874), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2891_0_insert_FieldAccess(EOS(STATIC_2891), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2875_0_insert_Load(EOS(STATIC_2875), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2893_0_insert_New(EOS(STATIC_2893), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2876_0_insert_Load(EOS(STATIC_2876), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2894_0_insert_FieldAccess(EOS(STATIC_2894), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2877_0_insert_Load(EOS(STATIC_2877), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2895_0_insert_New(EOS(STATIC_2895), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2891_0_insert_FieldAccess(EOS(STATIC_2891), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2903_0_insert_Load(EOS(STATIC_2903), i1231, java.lang.Object(o2056sub))
2893_0_insert_New(EOS(STATIC_2893), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2905_0_insert_Duplicate(EOS(STATIC_2905), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2894_0_insert_FieldAccess(EOS(STATIC_2894), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2906_0_insert_Load(EOS(STATIC_2906), i1231, java.lang.Object(o2057sub))
2895_0_insert_New(EOS(STATIC_2895), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2908_0_insert_Duplicate(EOS(STATIC_2908), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2903_0_insert_Load(EOS(STATIC_2903), i1231, java.lang.Object(o2056sub)) → 2919_0_insert_InvokeMethod(EOS(STATIC_2919), java.lang.Object(o2056sub), i1231)
2905_0_insert_Duplicate(EOS(STATIC_2905), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2920_0_insert_Load(EOS(STATIC_2920), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2906_0_insert_Load(EOS(STATIC_2906), i1231, java.lang.Object(o2057sub)) → 2922_0_insert_InvokeMethod(EOS(STATIC_2922), java.lang.Object(o2057sub), i1231)
2908_0_insert_Duplicate(EOS(STATIC_2908), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2923_0_insert_Load(EOS(STATIC_2923), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2919_0_insert_InvokeMethod(EOS(STATIC_2919), java.lang.Object(o2056sub), i1231) → 2929_1_insert_InvokeMethod(2929_0_insert_Load(EOS(STATIC_2929), java.lang.Object(o2056sub), i1231), java.lang.Object(o2056sub), i1231)
2920_0_insert_Load(EOS(STATIC_2920), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2931_0_insert_InvokeMethod(EOS(STATIC_2931), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2922_0_insert_InvokeMethod(EOS(STATIC_2922), java.lang.Object(o2057sub), i1231) → 2932_1_insert_InvokeMethod(2932_0_insert_Load(EOS(STATIC_2932), java.lang.Object(o2057sub), i1231), java.lang.Object(o2057sub), i1231)
2923_0_insert_Load(EOS(STATIC_2923), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2933_0_insert_InvokeMethod(EOS(STATIC_2933), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2929_0_insert_Load(EOS(STATIC_2929), java.lang.Object(o2056sub), i1231) → 2937_0_insert_Load(EOS(STATIC_2937), java.lang.Object(o2056sub), i1231)
2929_1_insert_InvokeMethod(2973_0_insert_Return(EOS(STATIC_2973)), java.lang.Object(o2056sub), i1376) → 2995_0_insert_Return(EOS(STATIC_2995), java.lang.Object(BinTreeChanger.Tree(EOC)), i1376)
2929_1_insert_InvokeMethod(2974_0_insert_Return(EOS(STATIC_2974)), java.lang.Object(o2056sub), i1393) → 3007_0_insert_Return(EOS(STATIC_3007), java.lang.Object(BinTreeChanger.Tree(EOC)), i1393)
2929_1_insert_InvokeMethod(3023_0_insert_Return(EOS(STATIC_3023)), java.lang.Object(o2056sub), i1441) → 3046_0_insert_Return(EOS(STATIC_3046), java.lang.Object(BinTreeChanger.Tree(EOC)), i1441)
2929_1_insert_InvokeMethod(3031_0_insert_Return(EOS(STATIC_3031)), java.lang.Object(o2056sub), i1463) → 3059_0_insert_Return(EOS(STATIC_3059), java.lang.Object(BinTreeChanger.Tree(EOC)), i1463)
2931_0_insert_InvokeMethod(EOS(STATIC_2931), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2939_0_<init>_Load(EOS(STATIC_2939), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2932_0_insert_Load(EOS(STATIC_2932), java.lang.Object(o2057sub), i1231) → 2940_0_insert_Load(EOS(STATIC_2940), java.lang.Object(o2057sub), i1231)
2932_1_insert_InvokeMethod(2973_0_insert_Return(EOS(STATIC_2973)), java.lang.Object(o2057sub), i1383) → 2996_0_insert_Return(EOS(STATIC_2996), java.lang.Object(BinTreeChanger.Tree(EOC)), i1383)
2932_1_insert_InvokeMethod(2974_0_insert_Return(EOS(STATIC_2974)), java.lang.Object(o2057sub), i1400) → 3013_0_insert_Return(EOS(STATIC_3013), java.lang.Object(BinTreeChanger.Tree(EOC)), i1400)
2932_1_insert_InvokeMethod(3023_0_insert_Return(EOS(STATIC_3023)), java.lang.Object(o2057sub), i1445) → 3048_0_insert_Return(EOS(STATIC_3048), java.lang.Object(BinTreeChanger.Tree(EOC)), i1445)
2932_1_insert_InvokeMethod(3031_0_insert_Return(EOS(STATIC_3031)), java.lang.Object(o2057sub), i1467) → 3063_0_insert_Return(EOS(STATIC_3063), java.lang.Object(BinTreeChanger.Tree(EOC)), i1467)
2933_0_insert_InvokeMethod(EOS(STATIC_2933), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2941_0_<init>_Load(EOS(STATIC_2941), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2939_0_<init>_Load(EOS(STATIC_2939), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2947_0_<init>_InvokeMethod(EOS(STATIC_2947), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2941_0_<init>_Load(EOS(STATIC_2941), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2950_0_<init>_InvokeMethod(EOS(STATIC_2950), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2947_0_<init>_InvokeMethod(EOS(STATIC_2947), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2955_0_<init>_Load(EOS(STATIC_2955), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2950_0_<init>_InvokeMethod(EOS(STATIC_2950), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2957_0_<init>_Load(EOS(STATIC_2957), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2955_0_<init>_Load(EOS(STATIC_2955), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2958_0_<init>_Load(EOS(STATIC_2958), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2957_0_<init>_Load(EOS(STATIC_2957), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2960_0_<init>_Load(EOS(STATIC_2960), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2958_0_<init>_Load(EOS(STATIC_2958), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2961_0_<init>_FieldAccess(EOS(STATIC_2961), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2960_0_<init>_Load(EOS(STATIC_2960), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2962_0_<init>_FieldAccess(EOS(STATIC_2962), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2961_0_<init>_FieldAccess(EOS(STATIC_2961), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2964_0_<init>_Return(EOS(STATIC_2964), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2962_0_<init>_FieldAccess(EOS(STATIC_2962), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2966_0_<init>_Return(EOS(STATIC_2966), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2964_0_<init>_Return(EOS(STATIC_2964), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2967_0_insert_FieldAccess(EOS(STATIC_2967), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2966_0_<init>_Return(EOS(STATIC_2966), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2968_0_insert_FieldAccess(EOS(STATIC_2968), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2967_0_insert_FieldAccess(EOS(STATIC_2967), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2970_0_insert_JMP(EOS(STATIC_2970))
2968_0_insert_FieldAccess(EOS(STATIC_2968), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2972_0_insert_JMP(EOS(STATIC_2972))
2970_0_insert_JMP(EOS(STATIC_2970)) → 2973_0_insert_Return(EOS(STATIC_2973))
2972_0_insert_JMP(EOS(STATIC_2972)) → 2974_0_insert_Return(EOS(STATIC_2974))
2973_0_insert_Return(EOS(STATIC_2973)) → 3023_0_insert_Return(EOS(STATIC_3023))
2974_0_insert_Return(EOS(STATIC_2974)) → 3031_0_insert_Return(EOS(STATIC_3031))
2995_0_insert_Return(EOS(STATIC_2995), java.lang.Object(BinTreeChanger.Tree(EOC)), i1376) → 3008_0_insert_Return(EOS(STATIC_3008), java.lang.Object(BinTreeChanger.Tree(EOC)), i1376)
2996_0_insert_Return(EOS(STATIC_2996), java.lang.Object(BinTreeChanger.Tree(EOC)), i1383) → 3014_0_insert_Return(EOS(STATIC_3014), java.lang.Object(BinTreeChanger.Tree(EOC)), i1383)
3007_0_insert_Return(EOS(STATIC_3007), java.lang.Object(BinTreeChanger.Tree(EOC)), i1393) → 3008_0_insert_Return(EOS(STATIC_3008), java.lang.Object(BinTreeChanger.Tree(EOC)), i1393)
3008_0_insert_Return(EOS(STATIC_3008), java.lang.Object(BinTreeChanger.Tree(EOC)), i1409) → 3023_0_insert_Return(EOS(STATIC_3023))
3013_0_insert_Return(EOS(STATIC_3013), java.lang.Object(BinTreeChanger.Tree(EOC)), i1400) → 3014_0_insert_Return(EOS(STATIC_3014), java.lang.Object(BinTreeChanger.Tree(EOC)), i1400)
3014_0_insert_Return(EOS(STATIC_3014), java.lang.Object(BinTreeChanger.Tree(EOC)), i1417) → 3024_0_insert_JMP(EOS(STATIC_3024))
3024_0_insert_JMP(EOS(STATIC_3024)) → 3031_0_insert_Return(EOS(STATIC_3031))
3046_0_insert_Return(EOS(STATIC_3046), java.lang.Object(BinTreeChanger.Tree(EOC)), i1441) → 3008_0_insert_Return(EOS(STATIC_3008), java.lang.Object(BinTreeChanger.Tree(EOC)), i1441)
3048_0_insert_Return(EOS(STATIC_3048), java.lang.Object(BinTreeChanger.Tree(EOC)), i1445) → 3014_0_insert_Return(EOS(STATIC_3014), java.lang.Object(BinTreeChanger.Tree(EOC)), i1445)
3059_0_insert_Return(EOS(STATIC_3059), java.lang.Object(BinTreeChanger.Tree(EOC)), i1463) → 3008_0_insert_Return(EOS(STATIC_3008), java.lang.Object(BinTreeChanger.Tree(EOC)), i1463)
3063_0_insert_Return(EOS(STATIC_3063), java.lang.Object(BinTreeChanger.Tree(EOC)), i1467) → 3014_0_insert_Return(EOS(STATIC_3014), java.lang.Object(BinTreeChanger.Tree(EOC)), i1467)

Combined rules. Obtained 4 conditional rules for P and 13 conditional rules for R.


P rules:
2760_1_createTree_InvokeMethod(2973_0_insert_Return(EOS(STATIC_2973)), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), x1, java.lang.Object(BinTreeChanger.Tree(EOC)), x2) → 2760_1_createTree_InvokeMethod(2760_0_insert_Load(EOS(STATIC_2760), java.lang.Object(BinTreeChanger.Tree(EOC)), x3), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), +(x1, 1), java.lang.Object(BinTreeChanger.Tree(EOC)), x3) | &&(&&(>(+(x3, 1), 0), >(+(x1, 1), 0)), >(x0, +(x1, 1)))
2760_1_createTree_InvokeMethod(2974_0_insert_Return(EOS(STATIC_2974)), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), x1, java.lang.Object(BinTreeChanger.Tree(EOC)), x2) → 2760_1_createTree_InvokeMethod(2760_0_insert_Load(EOS(STATIC_2760), java.lang.Object(BinTreeChanger.Tree(EOC)), x3), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), +(x1, 1), java.lang.Object(BinTreeChanger.Tree(EOC)), x3) | &&(&&(>(+(x3, 1), 0), >(+(x1, 1), 0)), >(x0, +(x1, 1)))
2760_1_createTree_InvokeMethod(3023_0_insert_Return(EOS(STATIC_3023)), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), x1, java.lang.Object(BinTreeChanger.Tree(EOC)), x2) → 2760_1_createTree_InvokeMethod(2760_0_insert_Load(EOS(STATIC_2760), java.lang.Object(BinTreeChanger.Tree(EOC)), x3), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), +(x1, 1), java.lang.Object(BinTreeChanger.Tree(EOC)), x3) | &&(&&(>(+(x3, 1), 0), >(+(x1, 1), 0)), >(x0, +(x1, 1)))
2760_1_createTree_InvokeMethod(3031_0_insert_Return(EOS(STATIC_3031)), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), x1, java.lang.Object(BinTreeChanger.Tree(EOC)), x2) → 2760_1_createTree_InvokeMethod(2760_0_insert_Load(EOS(STATIC_2760), java.lang.Object(BinTreeChanger.Tree(EOC)), x3), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), +(x1, 1), java.lang.Object(BinTreeChanger.Tree(EOC)), x3) | &&(&&(>(+(x3, 1), 0), >(+(x1, 1), 0)), >(x0, +(x1, 1)))
R rules:
2760_0_insert_Load(EOS(STATIC_2760), java.lang.Object(BinTreeChanger.Tree(EOC)), x0) → 2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x1)
2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x1) → 2929_1_insert_InvokeMethod(2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x2), java.lang.Object(BinTreeChanger.Tree(EOC)), x0) | <(x1, x0)
2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x1) → 2932_1_insert_InvokeMethod(2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x2), java.lang.Object(BinTreeChanger.Tree(EOC)), x0) | >=(x1, x0)
2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x1) → 3023_0_insert_Return(EOS(STATIC_3023)) | <(x1, x0)
2815_0_insert_GT(EOS(STATIC_2815), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x1) → 3031_0_insert_Return(EOS(STATIC_3031)) | >=(x1, x0)
2929_1_insert_InvokeMethod(2973_0_insert_Return(EOS(STATIC_2973)), java.lang.Object(x0), x1) → 3023_0_insert_Return(EOS(STATIC_3023))
2929_1_insert_InvokeMethod(2974_0_insert_Return(EOS(STATIC_2974)), java.lang.Object(x0), x1) → 3023_0_insert_Return(EOS(STATIC_3023))
2929_1_insert_InvokeMethod(3023_0_insert_Return(EOS(STATIC_3023)), java.lang.Object(x0), x1) → 3023_0_insert_Return(EOS(STATIC_3023))
2929_1_insert_InvokeMethod(3031_0_insert_Return(EOS(STATIC_3031)), java.lang.Object(x0), x1) → 3023_0_insert_Return(EOS(STATIC_3023))
2932_1_insert_InvokeMethod(2973_0_insert_Return(EOS(STATIC_2973)), java.lang.Object(x0), x1) → 3031_0_insert_Return(EOS(STATIC_3031))
2932_1_insert_InvokeMethod(2974_0_insert_Return(EOS(STATIC_2974)), java.lang.Object(x0), x1) → 3031_0_insert_Return(EOS(STATIC_3031))
2932_1_insert_InvokeMethod(3023_0_insert_Return(EOS(STATIC_3023)), java.lang.Object(x0), x1) → 3031_0_insert_Return(EOS(STATIC_3031))
2932_1_insert_InvokeMethod(3031_0_insert_Return(EOS(STATIC_3031)), java.lang.Object(x0), x1) → 3031_0_insert_Return(EOS(STATIC_3031))

Filtered ground terms:



2760_1_createTree_InvokeMethod(x1, x2, x3, x4, x5, x6) → 2760_1_createTree_InvokeMethod(x1, x2, x4, x6)
BinTreeChanger.Tree(x1) → BinTreeChanger.Tree
2760_0_insert_Load(x1, x2, x3) → 2760_0_insert_Load(x3)
Cond_2760_1_createTree_InvokeMethod3(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_2760_1_createTree_InvokeMethod3(x1, x3, x5, x7, x8)
3031_0_insert_Return(x1) → 3031_0_insert_Return
Cond_2760_1_createTree_InvokeMethod2(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_2760_1_createTree_InvokeMethod2(x1, x3, x5, x7, x8)
3023_0_insert_Return(x1) → 3023_0_insert_Return
Cond_2760_1_createTree_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_2760_1_createTree_InvokeMethod1(x1, x3, x5, x7, x8)
2974_0_insert_Return(x1) → 2974_0_insert_Return
Cond_2760_1_createTree_InvokeMethod(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_2760_1_createTree_InvokeMethod(x1, x3, x5, x7, x8)
2973_0_insert_Return(x1) → 2973_0_insert_Return
Cond_2815_0_insert_GT3(x1, x2, x3, x4, x5, x6) → Cond_2815_0_insert_GT3(x1, x4, x5, x6)
2815_0_insert_GT(x1, x2, x3, x4, x5) → 2815_0_insert_GT(x3, x4, x5)
Cond_2815_0_insert_GT2(x1, x2, x3, x4, x5, x6) → Cond_2815_0_insert_GT2(x1, x4, x5, x6)
Cond_2815_0_insert_GT1(x1, x2, x3, x4, x5, x6, x7) → Cond_2815_0_insert_GT1(x1, x4, x5, x6, x7)
Cond_2815_0_insert_GT(x1, x2, x3, x4, x5, x6, x7) → Cond_2815_0_insert_GT(x1, x4, x5, x6, x7)

Filtered duplicate args:



2815_0_insert_GT(x1, x2, x3) → 2815_0_insert_GT(x2, x3)
Cond_2815_0_insert_GT(x1, x2, x3, x4, x5) → Cond_2815_0_insert_GT(x1, x3, x4, x5)
Cond_2815_0_insert_GT1(x1, x2, x3, x4, x5) → Cond_2815_0_insert_GT1(x1, x3, x4, x5)
Cond_2815_0_insert_GT2(x1, x2, x3, x4) → Cond_2815_0_insert_GT2(x1, x3, x4)
Cond_2815_0_insert_GT3(x1, x2, x3, x4) → Cond_2815_0_insert_GT3(x1, x3, x4)

Filtered unneeded arguments:



2760_1_createTree_InvokeMethod(x1, x2, x3, x4) → 2760_1_createTree_InvokeMethod(x1, x2, x3)
Cond_2760_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_2760_1_createTree_InvokeMethod(x1, x2, x3, x5)
Cond_2760_1_createTree_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_2760_1_createTree_InvokeMethod1(x1, x2, x3, x5)
Cond_2760_1_createTree_InvokeMethod2(x1, x2, x3, x4, x5) → Cond_2760_1_createTree_InvokeMethod2(x1, x2, x3, x5)
Cond_2760_1_createTree_InvokeMethod3(x1, x2, x3, x4, x5) → Cond_2760_1_createTree_InvokeMethod3(x1, x2, x3, x5)
Cond_2815_0_insert_GT(x1, x2, x3, x4) → Cond_2815_0_insert_GT(x1, x2, x4)
2929_1_insert_InvokeMethod(x1, x2, x3) → 2929_1_insert_InvokeMethod(x1, x2)
Cond_2815_0_insert_GT1(x1, x2, x3, x4) → Cond_2815_0_insert_GT1(x1, x2, x4)
2932_1_insert_InvokeMethod(x1, x2, x3) → 2932_1_insert_InvokeMethod(x1, x2)
Cond_2815_0_insert_GT2(x1, x2, x3) → Cond_2815_0_insert_GT2(x1)
Cond_2815_0_insert_GT3(x1, x2, x3) → Cond_2815_0_insert_GT3(x1)

Filtered all non-integer terms:



2929_1_insert_InvokeMethod(x1, x2) → 2929_1_insert_InvokeMethod(x1)
2932_1_insert_InvokeMethod(x1, x2) → 2932_1_insert_InvokeMethod(x1)

Combined rules. Obtained 4 conditional rules for P and 13 conditional rules for R.


P rules:
2760_1_createTree_InvokeMethod(2973_0_insert_Return, x0, x1) → 2760_1_createTree_InvokeMethod(2760_0_insert_Load(x3), x0, +(x1, 1)) | &&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1)))
2760_1_createTree_InvokeMethod(2974_0_insert_Return, x0, x1) → 2760_1_createTree_InvokeMethod(2760_0_insert_Load(x3), x0, +(x1, 1)) | &&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1)))
2760_1_createTree_InvokeMethod(3023_0_insert_Return, x0, x1) → 2760_1_createTree_InvokeMethod(2760_0_insert_Load(x3), x0, +(x1, 1)) | &&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1)))
2760_1_createTree_InvokeMethod(3031_0_insert_Return, x0, x1) → 2760_1_createTree_InvokeMethod(2760_0_insert_Load(x3), x0, +(x1, 1)) | &&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1)))
R rules:
2760_0_insert_Load(x0) → 2815_0_insert_GT(x0, x1)
2815_0_insert_GT(x0, x1) → 2929_1_insert_InvokeMethod(2815_0_insert_GT(x0, x2)) | <(x1, x0)
2815_0_insert_GT(x0, x1) → 2932_1_insert_InvokeMethod(2815_0_insert_GT(x0, x2)) | >=(x1, x0)
2815_0_insert_GT(x0, x1) → 3023_0_insert_Return | <(x1, x0)
2815_0_insert_GT(x0, x1) → 3031_0_insert_Return | >=(x1, x0)
2929_1_insert_InvokeMethod(2973_0_insert_Return) → 3023_0_insert_Return
2929_1_insert_InvokeMethod(2974_0_insert_Return) → 3023_0_insert_Return
2929_1_insert_InvokeMethod(3023_0_insert_Return) → 3023_0_insert_Return
2929_1_insert_InvokeMethod(3031_0_insert_Return) → 3023_0_insert_Return
2932_1_insert_InvokeMethod(2973_0_insert_Return) → 3031_0_insert_Return
2932_1_insert_InvokeMethod(2974_0_insert_Return) → 3031_0_insert_Return
2932_1_insert_InvokeMethod(3023_0_insert_Return) → 3031_0_insert_Return
2932_1_insert_InvokeMethod(3031_0_insert_Return) → 3031_0_insert_Return

Performed bisimulation on rules. Used the following equivalence classes: {[2929_1_insert_InvokeMethod_1, 2932_1_insert_InvokeMethod_1]=2929_1_insert_InvokeMethod_1, [3023_0_insert_Return, 3031_0_insert_Return, 2973_0_insert_Return, 2974_0_insert_Return]=3023_0_insert_Return, [Cond_2760_1_createTree_InvokeMethod_5, Cond_2760_1_createTree_InvokeMethod1_5, Cond_2760_1_createTree_InvokeMethod2_5, Cond_2760_1_createTree_InvokeMethod3_5]=Cond_2760_1_createTree_InvokeMethod_5}


Finished conversion. Obtained 2 rules for P and 10 rules for R. System has predefined symbols.


P rules:
2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0, x1) → COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1))), 3023_0_insert_Return, x0, x1, x3)
COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0, x1, x3) → 2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3), x0, +(x1, 1))
R rules:
2760_0_insert_Load(x0) → 2815_0_insert_GT(x0, x1)
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT(<(x1, x0), x0, x1, x2)
Cond_2815_0_insert_GT(TRUE, x0, x1, x2) → 2929_1_insert_InvokeMethod(2815_0_insert_GT(x0, x2))
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT1(>=(x1, x0), x0, x1, x2)
Cond_2815_0_insert_GT1(TRUE, x0, x1, x2) → 2929_1_insert_InvokeMethod(2815_0_insert_GT(x0, x2))
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT2(<(x1, x0), x0, x1)
Cond_2815_0_insert_GT2(TRUE, x0, x1) → 3023_0_insert_Return
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT3(>=(x1, x0), x0, x1)
Cond_2815_0_insert_GT3(TRUE, x0, x1) → 3023_0_insert_Return
2929_1_insert_InvokeMethod(3023_0_insert_Return) → 3023_0_insert_Return

(27) 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:
2760_0_insert_Load(x0) → 2815_0_insert_GT(x0, x1)
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT(x1 < x0, x0, x1, x2)
Cond_2815_0_insert_GT(TRUE, x0, x1, x2) → 2929_1_insert_InvokeMethod(2815_0_insert_GT(x0, x2))
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT1(x1 >= x0, x0, x1, x2)
Cond_2815_0_insert_GT1(TRUE, x0, x1, x2) → 2929_1_insert_InvokeMethod(2815_0_insert_GT(x0, x2))
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT2(x1 < x0, x0, x1)
Cond_2815_0_insert_GT2(TRUE, x0, x1) → 3023_0_insert_Return
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT3(x1 >= x0, x0, x1)
Cond_2815_0_insert_GT3(TRUE, x0, x1) → 3023_0_insert_Return
2929_1_insert_InvokeMethod(3023_0_insert_Return) → 3023_0_insert_Return

The integer pair graph contains the following rules and edges:
(0): 2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], x1[0]) → COND_2760_1_CREATETREE_INVOKEMETHOD(x3[0] > -1 && x1[0] > -1 && x0[0] > x1[0] + 1, 3023_0_insert_Return, x0[0], x1[0], x3[0])
(1): COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[1], x1[1], x3[1]) → 2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], x1[1] + 1)

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


(1) -> (0), if (2760_0_insert_Load(x3[1]) →* 3023_0_insert_Returnx0[1]* x0[0]x1[1] + 1* x1[0])



The set Q consists of the following terms:
2760_0_insert_Load(x0)
2815_0_insert_GT(x0, x1)
Cond_2815_0_insert_GT(TRUE, x0, x1, x2)
Cond_2815_0_insert_GT1(TRUE, x0, x1, x2)
Cond_2815_0_insert_GT2(TRUE, x0, x1)
Cond_2815_0_insert_GT3(TRUE, x0, x1)
2929_1_insert_InvokeMethod(3023_0_insert_Return)

(28) 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.IdpDefaultShapeHeuristic@5501d4 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

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 2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0, x1) → COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1))), 3023_0_insert_Return, x0, x1, x3) the following chains were created:
  • We consider the chain COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[1], x1[1], x3[1]) → 2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1)), 2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], x1[0]) → COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0]), COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[1], x1[1], x3[1]) → 2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1)) which results in the following constraint:

    (1)    (2760_0_insert_Load(x3[1])=3023_0_insert_Returnx0[1]=x0[0]+(x1[1], 1)=x1[0]&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1)))=TRUEx0[0]=x0[1]1x1[0]=x1[1]1x3[0]=x3[1]12760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], x1[0])≥NonInfC∧2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], x1[0])≥COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])∧(UIncreasing(COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])), ≥))



    We simplified constraint (1) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (2)    (2760_0_insert_Load(x3[1])=3023_0_insert_Return>(x0[0], +(+(x1[1], 1), 1))=TRUE>(x3[0], -1)=TRUE>(+(x1[1], 1), -1)=TRUE2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], +(x1[1], 1))≥NonInfC∧2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], +(x1[1], 1))≥COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(+(x1[1], 1), -1)), >(x0[0], +(+(x1[1], 1), 1))), 3023_0_insert_Return, x0[0], +(x1[1], 1), x3[0])∧(UIncreasing(COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])), ≥))



    We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on 2760_0_insert_Load(x3[1])=3023_0_insert_Return which results in the following new constraint:

    (3)    (2815_0_insert_GT(x0, x1)=3023_0_insert_Return>(x0[0], +(+(x1[1], 1), 1))=TRUE>(x3[0], -1)=TRUE>(+(x1[1], 1), -1)=TRUE2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], +(x1[1], 1))≥NonInfC∧2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], +(x1[1], 1))≥COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(+(x1[1], 1), -1)), >(x0[0], +(+(x1[1], 1), 1))), 3023_0_insert_Return, x0[0], +(x1[1], 1), x3[0])∧(UIncreasing(COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])), ≥))



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

    (4)    (x0[0] + [-3] + [-1]x1[1] ≥ 0∧x3[0] ≥ 0∧x1[1] + [1] ≥ 0 ⇒ (UIncreasing(COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]x1[1] + [bni_43]x0[0] ≥ 0∧[(-1)bso_44] ≥ 0)



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

    (5)    (x0[0] + [-3] + [-1]x1[1] ≥ 0∧x3[0] ≥ 0∧x1[1] + [1] ≥ 0 ⇒ (UIncreasing(COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]x1[1] + [bni_43]x0[0] ≥ 0∧[(-1)bso_44] ≥ 0)



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

    (6)    (x0[0] + [-3] + [-1]x1[1] ≥ 0∧x3[0] ≥ 0∧x1[1] + [1] ≥ 0 ⇒ (UIncreasing(COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]x1[1] + [bni_43]x0[0] ≥ 0∧[(-1)bso_44] ≥ 0)



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

    (7)    (x0[0] ≥ 0∧x3[0] ≥ 0∧x1[1] + [1] ≥ 0 ⇒ (UIncreasing(COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(2)bni_43 + (-1)Bound*bni_43] + [bni_43]x0[0] ≥ 0∧[(-1)bso_44] ≥ 0)



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

    (8)    (x0[0] ≥ 0∧x3[0] ≥ 0∧[-1]x1[1] + [1] ≥ 0∧x1[1] ≥ 0 ⇒ (UIncreasing(COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(2)bni_43 + (-1)Bound*bni_43] + [bni_43]x0[0] ≥ 0∧[(-1)bso_44] ≥ 0)


    (9)    (x0[0] ≥ 0∧x3[0] ≥ 0∧x1[1] + [1] ≥ 0∧x1[1] ≥ 0 ⇒ (UIncreasing(COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(2)bni_43 + (-1)Bound*bni_43] + [bni_43]x0[0] ≥ 0∧[(-1)bso_44] ≥ 0)







For Pair COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0, x1, x3) → 2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3), x0, +(x1, 1)) the following chains were created:
  • We consider the chain 2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], x1[0]) → COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0]), COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[1], x1[1], x3[1]) → 2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1)), 2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], x1[0]) → COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0]) which results in the following constraint:

    (10)    (&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1)))=TRUEx0[0]=x0[1]x1[0]=x1[1]x3[0]=x3[1]2760_0_insert_Load(x3[1])=3023_0_insert_Returnx0[1]=x0[0]1+(x1[1], 1)=x1[0]1COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[1], x1[1], x3[1])≥NonInfC∧COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[1], x1[1], x3[1])≥2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))∧(UIncreasing(2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥))



    We simplified constraint (10) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (11)    (2760_0_insert_Load(x3[0])=3023_0_insert_Return>(x0[0], +(x1[0], 1))=TRUE>(x3[0], -1)=TRUE>(x1[0], -1)=TRUECOND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[0], x1[0], x3[0])≥NonInfC∧COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[0], x1[0], x3[0])≥2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[0]), x0[0], +(x1[0], 1))∧(UIncreasing(2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥))



    We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on 2760_0_insert_Load(x3[0])=3023_0_insert_Return which results in the following new constraint:

    (12)    (2815_0_insert_GT(x2, x3)=3023_0_insert_Return>(x0[0], +(x1[0], 1))=TRUE>(x2, -1)=TRUE>(x1[0], -1)=TRUECOND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[0], x1[0], x2)≥NonInfC∧COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[0], x1[0], x2)≥2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x2), x0[0], +(x1[0], 1))∧(UIncreasing(2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥))



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

    (13)    (x0[0] + [-2] + [-1]x1[0] ≥ 0∧x2 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥)∧[(-1)Bound*bni_45] + [(-1)bni_45]x1[0] + [bni_45]x0[0] ≥ 0∧[1 + (-1)bso_46] ≥ 0)



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

    (14)    (x0[0] + [-2] + [-1]x1[0] ≥ 0∧x2 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥)∧[(-1)Bound*bni_45] + [(-1)bni_45]x1[0] + [bni_45]x0[0] ≥ 0∧[1 + (-1)bso_46] ≥ 0)



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

    (15)    (x0[0] + [-2] + [-1]x1[0] ≥ 0∧x2 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥)∧[(-1)Bound*bni_45] + [(-1)bni_45]x1[0] + [bni_45]x0[0] ≥ 0∧[1 + (-1)bso_46] ≥ 0)



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

    (16)    (x0[0] ≥ 0∧x2 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥)∧[(-1)Bound*bni_45 + (2)bni_45] + [bni_45]x0[0] ≥ 0∧[1 + (-1)bso_46] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0, x1) → COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1))), 3023_0_insert_Return, x0, x1, x3)
    • (x0[0] ≥ 0∧x3[0] ≥ 0∧[-1]x1[1] + [1] ≥ 0∧x1[1] ≥ 0 ⇒ (UIncreasing(COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(2)bni_43 + (-1)Bound*bni_43] + [bni_43]x0[0] ≥ 0∧[(-1)bso_44] ≥ 0)
    • (x0[0] ≥ 0∧x3[0] ≥ 0∧x1[1] + [1] ≥ 0∧x1[1] ≥ 0 ⇒ (UIncreasing(COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(2)bni_43 + (-1)Bound*bni_43] + [bni_43]x0[0] ≥ 0∧[(-1)bso_44] ≥ 0)

  • COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0, x1, x3) → 2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3), x0, +(x1, 1))
    • (x0[0] ≥ 0∧x2 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥)∧[(-1)Bound*bni_45 + (2)bni_45] + [bni_45]x0[0] ≥ 0∧[1 + (-1)bso_46] ≥ 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(2760_0_insert_Load(x1)) = [-1]   
POL(2815_0_insert_GT(x1, x2)) = [-1]   
POL(Cond_2815_0_insert_GT(x1, x2, x3, x4)) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(2929_1_insert_InvokeMethod(x1)) = [-1]   
POL(Cond_2815_0_insert_GT1(x1, x2, x3, x4)) = [-1]   
POL(>=(x1, x2)) = [-1]   
POL(Cond_2815_0_insert_GT2(x1, x2, x3)) = [-1]   
POL(3023_0_insert_Return) = [-1]   
POL(Cond_2815_0_insert_GT3(x1, x2, x3)) = [-1]   
POL(2760_1_CREATETREE_INVOKEMETHOD(x1, x2, x3)) = [-1] + [-1]x3 + x2 + [-1]x1   
POL(COND_2760_1_CREATETREE_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x4 + x3 + [-1]x2   
POL(&&(x1, x2)) = 0   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   

The following pairs are in P>:

COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[1], x1[1], x3[1]) → 2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))

The following pairs are in Pbound:

2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], x1[0]) → COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])
COND_2760_1_CREATETREE_INVOKEMETHOD(TRUE, 3023_0_insert_Return, x0[1], x1[1], x3[1]) → 2760_1_CREATETREE_INVOKEMETHOD(2760_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))

The following pairs are in P:

2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], x1[0]) → COND_2760_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3023_0_insert_Return, x0[0], x1[0], x3[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1
2760_0_insert_Load(x0)12815_0_insert_GT(x0, x1)1
2815_0_insert_GT(x0, x1)1Cond_2815_0_insert_GT(<(x1, x0), x0, x1, x2)1
2815_0_insert_GT(x0, x1)1Cond_2815_0_insert_GT1(>=(x1, x0), x0, x1, x2)1
2815_0_insert_GT(x0, x1)1Cond_2815_0_insert_GT2(<(x1, x0), x0, x1)1
2815_0_insert_GT(x0, x1)1Cond_2815_0_insert_GT3(>=(x1, x0), x0, x1)1
Cond_2815_0_insert_GT(TRUE, x0, x1, x2)12929_1_insert_InvokeMethod(2815_0_insert_GT(x0, x2))1
Cond_2815_0_insert_GT1(TRUE, x0, x1, x2)12929_1_insert_InvokeMethod(2815_0_insert_GT(x0, x2))1
2929_1_insert_InvokeMethod(3023_0_insert_Return)13023_0_insert_Return1
Cond_2815_0_insert_GT2(TRUE, x0, x1)13023_0_insert_Return1
Cond_2815_0_insert_GT3(TRUE, x0, x1)13023_0_insert_Return1

(29) 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:
2760_0_insert_Load(x0) → 2815_0_insert_GT(x0, x1)
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT(x1 < x0, x0, x1, x2)
Cond_2815_0_insert_GT(TRUE, x0, x1, x2) → 2929_1_insert_InvokeMethod(2815_0_insert_GT(x0, x2))
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT1(x1 >= x0, x0, x1, x2)
Cond_2815_0_insert_GT1(TRUE, x0, x1, x2) → 2929_1_insert_InvokeMethod(2815_0_insert_GT(x0, x2))
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT2(x1 < x0, x0, x1)
Cond_2815_0_insert_GT2(TRUE, x0, x1) → 3023_0_insert_Return
2815_0_insert_GT(x0, x1) → Cond_2815_0_insert_GT3(x1 >= x0, x0, x1)
Cond_2815_0_insert_GT3(TRUE, x0, x1) → 3023_0_insert_Return
2929_1_insert_InvokeMethod(3023_0_insert_Return) → 3023_0_insert_Return

The integer pair graph contains the following rules and edges:
(0): 2760_1_CREATETREE_INVOKEMETHOD(3023_0_insert_Return, x0[0], x1[0]) → COND_2760_1_CREATETREE_INVOKEMETHOD(x3[0] > -1 && x1[0] > -1 && x0[0] > x1[0] + 1, 3023_0_insert_Return, x0[0], x1[0], x3[0])


The set Q consists of the following terms:
2760_0_insert_Load(x0)
2815_0_insert_GT(x0, x1)
Cond_2815_0_insert_GT(TRUE, x0, x1, x2)
Cond_2815_0_insert_GT1(TRUE, x0, x1, x2)
Cond_2815_0_insert_GT2(TRUE, x0, x1)
Cond_2815_0_insert_GT3(TRUE, x0, x1)
2929_1_insert_InvokeMethod(3023_0_insert_Return)

(30) IDependencyGraphProof (EQUIVALENT transformation)

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

(31) TRUE