(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:
2784_0_insert_Load(EOS(STATIC_2784), java.lang.Object(o1965sub), i1231, i1231) → 2790_0_insert_FieldAccess(EOS(STATIC_2790), java.lang.Object(o1965sub), i1231, i1231, java.lang.Object(o1965sub))
2790_0_insert_FieldAccess(EOS(STATIC_2790), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992))) → 2800_0_insert_FieldAccess(EOS(STATIC_2800), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)))
2800_0_insert_FieldAccess(EOS(STATIC_2800), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992))) → 2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260)
2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260) → 2816_0_insert_GT(EOS(STATIC_2816), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260)
2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260) → 2817_0_insert_GT(EOS(STATIC_2817), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260)
2816_0_insert_GT(EOS(STATIC_2816), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260) → 2824_0_insert_Load(EOS(STATIC_2824), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231) | >(i1231, i1260)
2824_0_insert_Load(EOS(STATIC_2824), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231) → 2834_0_insert_FieldAccess(EOS(STATIC_2834), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)))
2834_0_insert_FieldAccess(EOS(STATIC_2834), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992))) → 2843_0_insert_NONNULL(EOS(STATIC_2843), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, o1993)
2843_0_insert_NONNULL(EOS(STATIC_2843), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2055sub), o1992)), i1231, java.lang.Object(o2055sub)) → 2855_0_insert_NONNULL(EOS(STATIC_2855), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2055sub), o1992)), i1231, java.lang.Object(o2055sub))
2855_0_insert_NONNULL(EOS(STATIC_2855), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2055sub), o1992)), i1231, java.lang.Object(o2055sub)) → 2867_0_insert_Load(EOS(STATIC_2867), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2055sub), o1992)), i1231)
2867_0_insert_Load(EOS(STATIC_2867), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2055sub), o1992)), i1231) → 2884_0_insert_FieldAccess(EOS(STATIC_2884), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2055sub), o1992)))
2884_0_insert_FieldAccess(EOS(STATIC_2884), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, java.lang.Object(o2055sub), o1992))) → 2896_0_insert_Load(EOS(STATIC_2896), i1231, java.lang.Object(o2055sub))
2896_0_insert_Load(EOS(STATIC_2896), i1231, java.lang.Object(o2055sub)) → 2913_0_insert_InvokeMethod(EOS(STATIC_2913), java.lang.Object(o2055sub), i1231)
2913_0_insert_InvokeMethod(EOS(STATIC_2913), java.lang.Object(o2055sub), i1231) → 2923_1_insert_InvokeMethod(2923_0_insert_Load(EOS(STATIC_2923), java.lang.Object(o2055sub), i1231), java.lang.Object(o2055sub), i1231)
2923_0_insert_Load(EOS(STATIC_2923), java.lang.Object(o2055sub), i1231) → 2931_0_insert_Load(EOS(STATIC_2931), java.lang.Object(o2055sub), i1231)
2931_0_insert_Load(EOS(STATIC_2931), java.lang.Object(o2055sub), i1231) → 2775_0_insert_Load(EOS(STATIC_2775), java.lang.Object(o2055sub), i1231)
2775_0_insert_Load(EOS(STATIC_2775), java.lang.Object(o1965sub), i1231) → 2784_0_insert_Load(EOS(STATIC_2784), java.lang.Object(o1965sub), i1231, i1231)
2817_0_insert_GT(EOS(STATIC_2817), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, i1231, i1260) → 2825_0_insert_Load(EOS(STATIC_2825), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231) | <=(i1231, i1260)
2825_0_insert_Load(EOS(STATIC_2825), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231) → 2835_0_insert_FieldAccess(EOS(STATIC_2835), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)))
2835_0_insert_FieldAccess(EOS(STATIC_2835), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992))) → 2845_0_insert_NONNULL(EOS(STATIC_2845), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, o1992)), i1231, o1992)
2845_0_insert_NONNULL(EOS(STATIC_2845), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2056sub))), i1231, java.lang.Object(o2056sub)) → 2858_0_insert_NONNULL(EOS(STATIC_2858), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2056sub))), i1231, java.lang.Object(o2056sub))
2858_0_insert_NONNULL(EOS(STATIC_2858), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2056sub))), i1231, java.lang.Object(o2056sub)) → 2869_0_insert_Load(EOS(STATIC_2869), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2056sub))), i1231)
2869_0_insert_Load(EOS(STATIC_2869), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2056sub))), i1231) → 2886_0_insert_FieldAccess(EOS(STATIC_2886), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2056sub))))
2886_0_insert_FieldAccess(EOS(STATIC_2886), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, java.lang.Object(o2056sub)))) → 2898_0_insert_Load(EOS(STATIC_2898), i1231, java.lang.Object(o2056sub))
2898_0_insert_Load(EOS(STATIC_2898), i1231, java.lang.Object(o2056sub)) → 2915_0_insert_InvokeMethod(EOS(STATIC_2915), java.lang.Object(o2056sub), i1231)
2915_0_insert_InvokeMethod(EOS(STATIC_2915), java.lang.Object(o2056sub), i1231) → 2926_1_insert_InvokeMethod(2926_0_insert_Load(EOS(STATIC_2926), java.lang.Object(o2056sub), i1231), java.lang.Object(o2056sub), i1231)
2926_0_insert_Load(EOS(STATIC_2926), java.lang.Object(o2056sub), i1231) → 2934_0_insert_Load(EOS(STATIC_2934), java.lang.Object(o2056sub), i1231)
2934_0_insert_Load(EOS(STATIC_2934), java.lang.Object(o2056sub), i1231) → 2775_0_insert_Load(EOS(STATIC_2775), java.lang.Object(o2056sub), i1231)
R rules:
2843_0_insert_NONNULL(EOS(STATIC_2843), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), i1231, NULL) → 2856_0_insert_NONNULL(EOS(STATIC_2856), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), i1231, NULL)
2845_0_insert_NONNULL(EOS(STATIC_2845), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), i1231, NULL) → 2859_0_insert_NONNULL(EOS(STATIC_2859), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), i1231, NULL)
2856_0_insert_NONNULL(EOS(STATIC_2856), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), i1231, NULL) → 2868_0_insert_Load(EOS(STATIC_2868), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), i1231)
2859_0_insert_NONNULL(EOS(STATIC_2859), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), i1231, NULL) → 2870_0_insert_Load(EOS(STATIC_2870), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), i1231)
2868_0_insert_Load(EOS(STATIC_2868), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), i1231) → 2885_0_insert_New(EOS(STATIC_2885), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)))
2870_0_insert_Load(EOS(STATIC_2870), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), i1231) → 2888_0_insert_New(EOS(STATIC_2888), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)))
2885_0_insert_New(EOS(STATIC_2885), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992))) → 2897_0_insert_Duplicate(EOS(STATIC_2897), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)))
2888_0_insert_New(EOS(STATIC_2888), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL))) → 2900_0_insert_Duplicate(EOS(STATIC_2900), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, 0, NULL, NULL)))
2897_0_insert_Duplicate(EOS(STATIC_2897), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL))) → 2914_0_insert_Load(EOS(STATIC_2914), 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)
2900_0_insert_Duplicate(EOS(STATIC_2900), i1231, java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, matching1, NULL, NULL))) → 2916_0_insert_Load(EOS(STATIC_2916), 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)
2914_0_insert_Load(EOS(STATIC_2914), 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))) → 2924_0_insert_InvokeMethod(EOS(STATIC_2924), 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))
2916_0_insert_Load(EOS(STATIC_2916), 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))) → 2927_0_insert_InvokeMethod(EOS(STATIC_2927), 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))
2923_1_insert_InvokeMethod(2966_0_insert_Return(EOS(STATIC_2966)), java.lang.Object(o2055sub), i1376) → 2985_0_insert_Return(EOS(STATIC_2985), java.lang.Object(BinTreeChanger.Tree(EOC, i1374, java.lang.Object(BinTreeChanger.Tree(EOC, i1376, NULL, NULL)), o2141)), i1376)
2923_1_insert_InvokeMethod(2967_0_insert_Return(EOS(STATIC_2967)), java.lang.Object(o2055sub), i1393) → 2997_0_insert_Return(EOS(STATIC_2997), java.lang.Object(BinTreeChanger.Tree(EOC, i1391, o1993, java.lang.Object(BinTreeChanger.Tree(EOC, i1393, NULL, NULL)))), i1393)
2923_1_insert_InvokeMethod(3012_0_insert_Return(EOS(STATIC_3012)), java.lang.Object(o2055sub), i1441) → 3037_0_insert_Return(EOS(STATIC_3037), java.lang.Object(BinTreeChanger.Tree(EOC, i1440, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2166, o2165)), o2163)), i1441)
2923_1_insert_InvokeMethod(3020_0_insert_Return(EOS(STATIC_3020)), java.lang.Object(o2055sub), i1463) → 3049_0_insert_Return(EOS(STATIC_3049), java.lang.Object(BinTreeChanger.Tree(EOC, i1462, o2188, java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)))), i1463)
2924_0_insert_InvokeMethod(EOS(STATIC_2924), 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) → 2933_0_<init>_Load(EOS(STATIC_2933), 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))
2926_1_insert_InvokeMethod(2966_0_insert_Return(EOS(STATIC_2966)), java.lang.Object(o2056sub), i1383) → 2987_0_insert_Return(EOS(STATIC_2987), java.lang.Object(BinTreeChanger.Tree(EOC, i1381, java.lang.Object(BinTreeChanger.Tree(EOC, i1383, NULL, NULL)), o1992)), i1383)
2926_1_insert_InvokeMethod(2967_0_insert_Return(EOS(STATIC_2967)), java.lang.Object(o2056sub), i1400) → 3004_0_insert_Return(EOS(STATIC_3004), java.lang.Object(BinTreeChanger.Tree(EOC, i1398, o2152, java.lang.Object(BinTreeChanger.Tree(EOC, i1400, NULL, NULL)))), i1400)
2926_1_insert_InvokeMethod(3012_0_insert_Return(EOS(STATIC_3012)), java.lang.Object(o2056sub), i1445) → 3040_0_insert_Return(EOS(STATIC_3040), java.lang.Object(BinTreeChanger.Tree(EOC, i1444, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2166, o2165)), o2163)), i1445)
2926_1_insert_InvokeMethod(3020_0_insert_Return(EOS(STATIC_3020)), java.lang.Object(o2056sub), i1467) → 3052_0_insert_Return(EOS(STATIC_3052), java.lang.Object(BinTreeChanger.Tree(EOC, i1466, o2188, java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)))), i1467)
2927_0_insert_InvokeMethod(EOS(STATIC_2927), 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) → 2935_0_<init>_Load(EOS(STATIC_2935), 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))
2933_0_<init>_Load(EOS(STATIC_2933), 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) → 2941_0_<init>_InvokeMethod(EOS(STATIC_2941), 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))
2935_0_<init>_Load(EOS(STATIC_2935), 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) → 2943_0_<init>_InvokeMethod(EOS(STATIC_2943), 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))
2941_0_<init>_InvokeMethod(EOS(STATIC_2941), 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))) → 2948_0_<init>_Load(EOS(STATIC_2948), 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))
2943_0_<init>_InvokeMethod(EOS(STATIC_2943), 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))) → 2950_0_<init>_Load(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) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2948_0_<init>_Load(EOS(STATIC_2948), 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) → 2951_0_<init>_Load(EOS(STATIC_2951), 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))
2950_0_<init>_Load(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) → 2952_0_<init>_Load(EOS(STATIC_2952), 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))
2951_0_<init>_Load(EOS(STATIC_2951), 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))) → 2953_0_<init>_FieldAccess(EOS(STATIC_2953), 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))
2952_0_<init>_Load(EOS(STATIC_2952), 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))) → 2955_0_<init>_FieldAccess(EOS(STATIC_2955), 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))
2953_0_<init>_FieldAccess(EOS(STATIC_2953), 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) → 2956_0_<init>_Return(EOS(STATIC_2956), 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))
2955_0_<init>_FieldAccess(EOS(STATIC_2955), 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) → 2958_0_<init>_Return(EOS(STATIC_2958), 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))
2956_0_<init>_Return(EOS(STATIC_2956), 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) → 2960_0_insert_FieldAccess(EOS(STATIC_2960), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)))
2958_0_<init>_Return(EOS(STATIC_2958), 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) → 2961_0_insert_FieldAccess(EOS(STATIC_2961), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL)))
2960_0_insert_FieldAccess(EOS(STATIC_2960), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, NULL, o1992)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL))) → 2963_0_insert_JMP(EOS(STATIC_2963))
2961_0_insert_FieldAccess(EOS(STATIC_2961), java.lang.Object(BinTreeChanger.Tree(EOC, i1260, o1993, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, i1231, NULL, NULL))) → 2965_0_insert_JMP(EOS(STATIC_2965))
2963_0_insert_JMP(EOS(STATIC_2963)) → 2966_0_insert_Return(EOS(STATIC_2966))
2965_0_insert_JMP(EOS(STATIC_2965)) → 2967_0_insert_Return(EOS(STATIC_2967))
2966_0_insert_Return(EOS(STATIC_2966)) → 3012_0_insert_Return(EOS(STATIC_3012))
2967_0_insert_Return(EOS(STATIC_2967)) → 3020_0_insert_Return(EOS(STATIC_3020))
2985_0_insert_Return(EOS(STATIC_2985), java.lang.Object(BinTreeChanger.Tree(EOC, i1374, java.lang.Object(BinTreeChanger.Tree(EOC, i1376, NULL, NULL)), o2141)), i1376) → 2998_0_insert_Return(EOS(STATIC_2998), java.lang.Object(BinTreeChanger.Tree(EOC, i1374, java.lang.Object(BinTreeChanger.Tree(EOC, i1376, NULL, NULL)), o2141)), i1376)
2987_0_insert_Return(EOS(STATIC_2987), java.lang.Object(BinTreeChanger.Tree(EOC, i1381, java.lang.Object(BinTreeChanger.Tree(EOC, i1383, NULL, NULL)), o1992)), i1383) → 3005_0_insert_Return(EOS(STATIC_3005), java.lang.Object(BinTreeChanger.Tree(EOC, i1381, java.lang.Object(BinTreeChanger.Tree(EOC, i1383, NULL, NULL)), o1992)), i1383)
2997_0_insert_Return(EOS(STATIC_2997), java.lang.Object(BinTreeChanger.Tree(EOC, i1391, o1993, java.lang.Object(BinTreeChanger.Tree(EOC, i1393, NULL, NULL)))), i1393) → 2998_0_insert_Return(EOS(STATIC_2998), java.lang.Object(BinTreeChanger.Tree(EOC, i1391, o1993, java.lang.Object(BinTreeChanger.Tree(EOC, i1393, NULL, NULL)))), i1393)
2998_0_insert_Return(EOS(STATIC_2998), java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2166, o2165)), i1409) → 3012_0_insert_Return(EOS(STATIC_3012))
3004_0_insert_Return(EOS(STATIC_3004), java.lang.Object(BinTreeChanger.Tree(EOC, i1398, o2152, java.lang.Object(BinTreeChanger.Tree(EOC, i1400, NULL, NULL)))), i1400) → 3005_0_insert_Return(EOS(STATIC_3005), java.lang.Object(BinTreeChanger.Tree(EOC, i1398, o2152, java.lang.Object(BinTreeChanger.Tree(EOC, i1400, NULL, NULL)))), i1400)
3005_0_insert_Return(EOS(STATIC_3005), java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)), i1417) → 3014_0_insert_JMP(EOS(STATIC_3014))
3014_0_insert_JMP(EOS(STATIC_3014)) → 3020_0_insert_Return(EOS(STATIC_3020))
3037_0_insert_Return(EOS(STATIC_3037), java.lang.Object(BinTreeChanger.Tree(EOC, i1440, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2166, o2165)), o2163)), i1441) → 2998_0_insert_Return(EOS(STATIC_2998), java.lang.Object(BinTreeChanger.Tree(EOC, i1440, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2166, o2165)), o2163)), i1441)
3040_0_insert_Return(EOS(STATIC_3040), java.lang.Object(BinTreeChanger.Tree(EOC, i1444, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2166, o2165)), o2163)), i1445) → 3005_0_insert_Return(EOS(STATIC_3005), java.lang.Object(BinTreeChanger.Tree(EOC, i1444, java.lang.Object(BinTreeChanger.Tree(EOC, i1408, o2166, o2165)), o2163)), i1445)
3049_0_insert_Return(EOS(STATIC_3049), java.lang.Object(BinTreeChanger.Tree(EOC, i1462, o2188, java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)))), i1463) → 2998_0_insert_Return(EOS(STATIC_2998), java.lang.Object(BinTreeChanger.Tree(EOC, i1462, o2188, java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)))), i1463)
3052_0_insert_Return(EOS(STATIC_3052), java.lang.Object(BinTreeChanger.Tree(EOC, i1466, o2188, java.lang.Object(BinTreeChanger.Tree(EOC, i1416, o2187, o2186)))), i1467) → 3005_0_insert_Return(EOS(STATIC_3005), 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:
2784_0_insert_Load(EOS(STATIC_2784), java.lang.Object(BinTreeChanger.Tree(EOC, x0, java.lang.Object(x1), x2)), x3, x3) → 2923_1_insert_InvokeMethod(2784_0_insert_Load(EOS(STATIC_2784), java.lang.Object(x1), x3, x3), java.lang.Object(x1), x3) | >(x3, x0)
2784_0_insert_Load(EOS(STATIC_2784), java.lang.Object(BinTreeChanger.Tree(EOC, x0, x1, java.lang.Object(x2))), x3, x3) → 2926_1_insert_InvokeMethod(2784_0_insert_Load(EOS(STATIC_2784), java.lang.Object(x2), x3, x3), java.lang.Object(x2), x3) | <=(x3, x0)
R rules:
2923_1_insert_InvokeMethod(2966_0_insert_Return(EOS(STATIC_2966)), java.lang.Object(x0), x1) → 3012_0_insert_Return(EOS(STATIC_3012))
2923_1_insert_InvokeMethod(2967_0_insert_Return(EOS(STATIC_2967)), java.lang.Object(x0), x1) → 3012_0_insert_Return(EOS(STATIC_3012))
2923_1_insert_InvokeMethod(3012_0_insert_Return(EOS(STATIC_3012)), java.lang.Object(x0), x1) → 3012_0_insert_Return(EOS(STATIC_3012))
2923_1_insert_InvokeMethod(3020_0_insert_Return(EOS(STATIC_3020)), java.lang.Object(x0), x1) → 3012_0_insert_Return(EOS(STATIC_3012))
2926_1_insert_InvokeMethod(2966_0_insert_Return(EOS(STATIC_2966)), java.lang.Object(x0), x1) → 3020_0_insert_Return(EOS(STATIC_3020))
2926_1_insert_InvokeMethod(2967_0_insert_Return(EOS(STATIC_2967)), java.lang.Object(x0), x1) → 3020_0_insert_Return(EOS(STATIC_3020))
2926_1_insert_InvokeMethod(3012_0_insert_Return(EOS(STATIC_3012)), java.lang.Object(x0), x1) → 3020_0_insert_Return(EOS(STATIC_3020))
2926_1_insert_InvokeMethod(3020_0_insert_Return(EOS(STATIC_3020)), java.lang.Object(x0), x1) → 3020_0_insert_Return(EOS(STATIC_3020))

Filtered ground terms:



2784_0_insert_Load(x1, x2, x3, x4) → 2784_0_insert_Load(x2, x3, x4)
Cond_2784_0_insert_Load1(x1, x2, x3, x4, x5) → Cond_2784_0_insert_Load1(x1, x3, x4, x5)
BinTreeChanger.Tree(x1, x2, x3, x4) → BinTreeChanger.Tree(x2, x3, x4)
Cond_2784_0_insert_Load(x1, x2, x3, x4, x5) → Cond_2784_0_insert_Load(x1, x3, x4, x5)
3020_0_insert_Return(x1) → 3020_0_insert_Return
3012_0_insert_Return(x1) → 3012_0_insert_Return
2967_0_insert_Return(x1) → 2967_0_insert_Return
2966_0_insert_Return(x1) → 2966_0_insert_Return

Filtered duplicate args:



2784_0_insert_Load(x1, x2, x3) → 2784_0_insert_Load(x1, x3)
Cond_2784_0_insert_Load(x1, x2, x3, x4) → Cond_2784_0_insert_Load(x1, x2, x4)
Cond_2784_0_insert_Load1(x1, x2, x3, x4) → Cond_2784_0_insert_Load1(x1, x2, x4)

Filtered unneeded arguments:



2923_1_insert_InvokeMethod(x1, x2, x3) → 2923_1_insert_InvokeMethod(x1)
2926_1_insert_InvokeMethod(x1, x2, x3) → 2926_1_insert_InvokeMethod(x1)

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


P rules:
2784_0_insert_Load(java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → 2923_1_insert_InvokeMethod(2784_0_insert_Load(java.lang.Object(x1), x3)) | >(x3, x0)
2784_0_insert_Load(java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → 2926_1_insert_InvokeMethod(2784_0_insert_Load(java.lang.Object(x2), x3)) | <=(x3, x0)
R rules:
2923_1_insert_InvokeMethod(2966_0_insert_Return) → 3012_0_insert_Return
2923_1_insert_InvokeMethod(2967_0_insert_Return) → 3012_0_insert_Return
2923_1_insert_InvokeMethod(3012_0_insert_Return) → 3012_0_insert_Return
2923_1_insert_InvokeMethod(3020_0_insert_Return) → 3012_0_insert_Return
2926_1_insert_InvokeMethod(2966_0_insert_Return) → 3020_0_insert_Return
2926_1_insert_InvokeMethod(2967_0_insert_Return) → 3020_0_insert_Return
2926_1_insert_InvokeMethod(3012_0_insert_Return) → 3020_0_insert_Return
2926_1_insert_InvokeMethod(3020_0_insert_Return) → 3020_0_insert_Return

Performed bisimulation on rules. Used the following equivalence classes: {[2923_1_insert_InvokeMethod_1, 2926_1_insert_InvokeMethod_1]=2923_1_insert_InvokeMethod_1, [2966_0_insert_Return, 3012_0_insert_Return, 2967_0_insert_Return, 3020_0_insert_Return]=2966_0_insert_Return}


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


P rules:
2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → COND_2784_0_INSERT_LOAD(>(x3, x0), java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3)
COND_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → 2784_0_INSERT_LOAD(java.lang.Object(x1), x3)
2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → COND_2784_0_INSERT_LOAD1(<=(x3, x0), java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3)
COND_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → 2784_0_INSERT_LOAD(java.lang.Object(x2), x3)
R rules:
2923_1_insert_InvokeMethod(2966_0_insert_Return) → 2966_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:
2923_1_insert_InvokeMethod(2966_0_insert_Return) → 2966_0_insert_Return

The integer pair graph contains the following rules and edges:
(0): 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2784_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_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1]) → 2784_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])
(2): 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2784_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_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3]) → 2784_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:
2923_1_insert_InvokeMethod(2966_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@41aa8485 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 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → COND_2784_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 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2784_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]), COND_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1]) → 2784_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]2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])≥NonInfC∧2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])≥COND_2784_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_2784_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])=TRUE2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])≥NonInfC∧2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])≥COND_2784_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_2784_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_2784_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_2784_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_2784_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_2784_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_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → 2784_0_INSERT_LOAD(java.lang.Object(x1), x3) the following chains were created:
  • We consider the chain 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2784_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]), COND_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1]) → 2784_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1]), 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2784_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_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1])≥NonInfC∧COND_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1])≥2784_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])∧(UIncreasing(2784_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_2784_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_2784_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])≥2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0]1, java.lang.Object(x1[0]1), x2[0]1)), x3[0])∧(UIncreasing(2784_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(2784_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(2784_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(2784_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(2784_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 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2784_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]), COND_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1]) → 2784_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1]), 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2784_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_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1])≥NonInfC∧COND_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1])≥2784_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])∧(UIncreasing(2784_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_2784_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_2784_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])≥2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[0])∧(UIncreasing(2784_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(2784_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(2784_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(2784_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(2784_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 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → COND_2784_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 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2784_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]), COND_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3]) → 2784_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]2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])≥NonInfC∧2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])≥COND_2784_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_2784_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])=TRUE2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])≥NonInfC∧2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2])≥COND_2784_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_2784_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_2784_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_2784_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_2784_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_2784_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_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → 2784_0_INSERT_LOAD(java.lang.Object(x2), x3) the following chains were created:
  • We consider the chain 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2784_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]), COND_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3]) → 2784_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3]), 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2784_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_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3])≥NonInfC∧COND_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3])≥2784_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])∧(UIncreasing(2784_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_2784_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_2784_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])≥2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[2])∧(UIncreasing(2784_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(2784_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(2784_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(2784_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(2784_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 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2784_0_INSERT_LOAD1(<=(x3[2], x0[2]), java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]), COND_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3]) → 2784_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3]), 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2784_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_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3])≥NonInfC∧COND_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3])≥2784_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])∧(UIncreasing(2784_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_2784_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_2784_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])≥2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2]1, x1[2]1, java.lang.Object(x2[2]1))), x3[2])∧(UIncreasing(2784_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(2784_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(2784_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(2784_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(2784_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.
  • 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → COND_2784_0_INSERT_LOAD(>(x3, x0), java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2784_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_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, java.lang.Object(x1), x2)), x3) → 2784_0_INSERT_LOAD(java.lang.Object(x1), x3)
    • (0 ≥ 0 ⇒ (UIncreasing(2784_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(2784_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)

  • 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → COND_2784_0_INSERT_LOAD1(<=(x3, x0), java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2784_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_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0, x1, java.lang.Object(x2))), x3) → 2784_0_INSERT_LOAD(java.lang.Object(x2), x3)
    • (0 ≥ 0 ⇒ (UIncreasing(2784_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(2784_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(2923_1_insert_InvokeMethod(x1)) = 0   
POL(2966_0_insert_Return) = 0   
POL(2784_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_2784_0_INSERT_LOAD(x1, x2, x3)) = [-1] + x2   
POL(>(x1, x2)) = 0   
POL(COND_2784_0_INSERT_LOAD1(x1, x2, x3)) = [-1] + x2   
POL(<=(x1, x2)) = 0   

The following pairs are in P>:

COND_2784_0_INSERT_LOAD(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[1], java.lang.Object(x1[1]), x2[1])), x3[1]) → 2784_0_INSERT_LOAD(java.lang.Object(x1[1]), x3[1])
COND_2784_0_INSERT_LOAD1(TRUE, java.lang.Object(BinTreeChanger.Tree(x0[3], x1[3], java.lang.Object(x2[3]))), x3[3]) → 2784_0_INSERT_LOAD(java.lang.Object(x2[3]), x3[3])

The following pairs are in Pbound:

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

The following pairs are in P:

2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2784_0_INSERT_LOAD(>(x3[0], x0[0]), java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])
2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2784_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:
2923_1_insert_InvokeMethod(2966_0_insert_Return) → 2966_0_insert_Return

The integer pair graph contains the following rules and edges:
(0): 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0]) → COND_2784_0_INSERT_LOAD(x3[0] > x0[0], java.lang.Object(BinTreeChanger.Tree(x0[0], java.lang.Object(x1[0]), x2[0])), x3[0])
(2): 2784_0_INSERT_LOAD(java.lang.Object(BinTreeChanger.Tree(x0[2], x1[2], java.lang.Object(x2[2]))), x3[2]) → COND_2784_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:
2923_1_insert_InvokeMethod(2966_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:
1675_0_applyTreeChanger_FieldAccess(EOS(STATIC_1675), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 1679_0_applyTreeChanger_FieldAccess(EOS(STATIC_1679), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)))
1679_0_applyTreeChanger_FieldAccess(EOS(STATIC_1679), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 1686_0_applyTreeChanger_Store(EOS(STATIC_1686), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659)
1686_0_applyTreeChanger_Store(EOS(STATIC_1686), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659) → 1693_0_applyTreeChanger_Load(EOS(STATIC_1693), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659)
1693_0_applyTreeChanger_Load(EOS(STATIC_1693), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659) → 1698_0_applyTreeChanger_FieldAccess(EOS(STATIC_1698), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)))
1698_0_applyTreeChanger_FieldAccess(EOS(STATIC_1698), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 1704_0_applyTreeChanger_Store(EOS(STATIC_1704), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660)
1704_0_applyTreeChanger_Store(EOS(STATIC_1704), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660) → 1711_0_applyTreeChanger_Load(EOS(STATIC_1711), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660)
1711_0_applyTreeChanger_Load(EOS(STATIC_1711), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660) → 1715_0_applyTreeChanger_Load(EOS(STATIC_1715), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660)
1715_0_applyTreeChanger_Load(EOS(STATIC_1715), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), o659, o660) → 1722_0_applyTreeChanger_InvokeMethod(EOS(STATIC_1722), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)))
1722_0_applyTreeChanger_InvokeMethod(EOS(STATIC_1722), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 1728_0_change_New(EOS(STATIC_1728), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)))
1728_0_change_New(EOS(STATIC_1728), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660)), java.lang.Object(BinTreeChanger.Tree(EOC, o659, o660))) → 1740_0_change_Duplicate(EOS(STATIC_1740), 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)))
1740_0_change_Duplicate(EOS(STATIC_1740), 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))) → 1749_0_change_ConstantStackPush(EOS(STATIC_1749), 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)))
1749_0_change_ConstantStackPush(EOS(STATIC_1749), 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))) → 1757_0_change_InvokeMethod(EOS(STATIC_1757), 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)
1757_0_change_InvokeMethod(EOS(STATIC_1757), 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) → 1768_0_<init>_Load(EOS(STATIC_1768), 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)
1768_0_<init>_Load(EOS(STATIC_1768), 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) → 1789_0_<init>_InvokeMethod(EOS(STATIC_1789), 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))
1789_0_<init>_InvokeMethod(EOS(STATIC_1789), 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))) → 1801_0_<init>_Load(EOS(STATIC_1801), 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))
1801_0_<init>_Load(EOS(STATIC_1801), 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) → 1817_0_<init>_Load(EOS(STATIC_1817), 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))
1817_0_<init>_Load(EOS(STATIC_1817), 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))) → 1829_0_<init>_FieldAccess(EOS(STATIC_1829), 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))
1829_0_<init>_FieldAccess(EOS(STATIC_1829), 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) → 1841_0_<init>_Return(EOS(STATIC_1841), 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))
1841_0_<init>_Return(EOS(STATIC_1841), 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) → 1849_0_change_Store(EOS(STATIC_1849), 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)
1849_0_change_Store(EOS(STATIC_1849), 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))) → 1854_0_change_New(EOS(STATIC_1854), 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)))
1854_0_change_New(EOS(STATIC_1854), 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))) → 1867_0_change_Duplicate(EOS(STATIC_1867), 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)))
1867_0_change_Duplicate(EOS(STATIC_1867), 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))) → 1873_0_change_ConstantStackPush(EOS(STATIC_1873), 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)))
1873_0_change_ConstantStackPush(EOS(STATIC_1873), 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))) → 1879_0_change_InvokeMethod(EOS(STATIC_1879), 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)
1879_0_change_InvokeMethod(EOS(STATIC_1879), 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) → 1884_0_<init>_Load(EOS(STATIC_1884), 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)
1884_0_<init>_Load(EOS(STATIC_1884), 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) → 1892_0_<init>_InvokeMethod(EOS(STATIC_1892), 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))
1892_0_<init>_InvokeMethod(EOS(STATIC_1892), 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))) → 1899_0_<init>_Load(EOS(STATIC_1899), 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))
1899_0_<init>_Load(EOS(STATIC_1899), 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) → 1904_0_<init>_Load(EOS(STATIC_1904), 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))
1904_0_<init>_Load(EOS(STATIC_1904), 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))) → 1908_0_<init>_FieldAccess(EOS(STATIC_1908), 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))
1908_0_<init>_FieldAccess(EOS(STATIC_1908), 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) → 1929_0_<init>_Return(EOS(STATIC_1929), 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))
1929_0_<init>_Return(EOS(STATIC_1929), 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) → 1951_0_change_Store(EOS(STATIC_1951), 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)
1951_0_change_Store(EOS(STATIC_1951), 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))) → 1960_0_change_Load(EOS(STATIC_1960), 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)))
1960_0_change_Load(EOS(STATIC_1960), 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))) → 1967_0_change_Load(EOS(STATIC_1967), 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)))
1967_0_change_Load(EOS(STATIC_1967), 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))) → 1980_0_change_FieldAccess(EOS(STATIC_1980), 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)))
1980_0_change_FieldAccess(EOS(STATIC_1980), 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))) → 1996_0_change_FieldAccess(EOS(STATIC_1996), 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)
1996_0_change_FieldAccess(EOS(STATIC_1996), 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) → 2006_0_change_Load(EOS(STATIC_2006), 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)))
2006_0_change_Load(EOS(STATIC_2006), 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))) → 2010_0_change_Load(EOS(STATIC_2010), 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)))
2010_0_change_Load(EOS(STATIC_2010), 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))) → 2014_0_change_FieldAccess(EOS(STATIC_2014), 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)))
2014_0_change_FieldAccess(EOS(STATIC_2014), 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))) → 2019_0_change_FieldAccess(EOS(STATIC_2019), 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)
2019_0_change_FieldAccess(EOS(STATIC_2019), 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) → 2024_0_change_Load(EOS(STATIC_2024), 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)))
2024_0_change_Load(EOS(STATIC_2024), 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))) → 2028_0_change_Load(EOS(STATIC_2028), 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)))
2028_0_change_Load(EOS(STATIC_2028), 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))) → 2033_0_change_FieldAccess(EOS(STATIC_2033), 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)))
2033_0_change_FieldAccess(EOS(STATIC_2033), 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))) → 2038_0_change_Load(EOS(STATIC_2038), 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)))
2038_0_change_Load(EOS(STATIC_2038), 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))) → 2042_0_change_Load(EOS(STATIC_2042), 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)))
2042_0_change_Load(EOS(STATIC_2042), 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))) → 2046_0_change_FieldAccess(EOS(STATIC_2046), 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)))
2046_0_change_FieldAccess(EOS(STATIC_2046), 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))) → 2051_0_change_Return(EOS(STATIC_2051), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660)))))
2051_0_change_Return(EOS(STATIC_2051), o659, o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o659, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o660))))) → 2056_0_applyTreeChanger_Load(EOS(STATIC_2056), o659, o660)
2056_0_applyTreeChanger_Load(EOS(STATIC_2056), o659, o660) → 2061_0_applyTreeChanger_NULL(EOS(STATIC_2061), o659, o660, o659)
2061_0_applyTreeChanger_NULL(EOS(STATIC_2061), java.lang.Object(o1012sub), o660, java.lang.Object(o1012sub)) → 2064_0_applyTreeChanger_NULL(EOS(STATIC_2064), java.lang.Object(o1012sub), o660, java.lang.Object(o1012sub))
2061_0_applyTreeChanger_NULL(EOS(STATIC_2061), NULL, o660, NULL) → 2065_0_applyTreeChanger_NULL(EOS(STATIC_2065), NULL, o660, NULL)
2064_0_applyTreeChanger_NULL(EOS(STATIC_2064), java.lang.Object(o1012sub), o660, java.lang.Object(o1012sub)) → 2070_0_applyTreeChanger_Load(EOS(STATIC_2070), java.lang.Object(o1012sub), o660)
2070_0_applyTreeChanger_Load(EOS(STATIC_2070), java.lang.Object(o1012sub), o660) → 2077_0_applyTreeChanger_Load(EOS(STATIC_2077), o660, java.lang.Object(o1012sub))
2077_0_applyTreeChanger_Load(EOS(STATIC_2077), o660, java.lang.Object(o1012sub)) → 2083_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2083), o660, java.lang.Object(o1012sub))
2083_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2083), o660, java.lang.Object(o1012sub)) → 2092_1_applyTreeChanger_InvokeMethod(2092_0_applyTreeChanger_Load(EOS(STATIC_2092), java.lang.Object(o1012sub)), o660, java.lang.Object(o1012sub))
2092_0_applyTreeChanger_Load(EOS(STATIC_2092), java.lang.Object(o1012sub)) → 2099_0_applyTreeChanger_Load(EOS(STATIC_2099), java.lang.Object(o1012sub))
2092_1_applyTreeChanger_InvokeMethod(2094_0_applyTreeChanger_Return(EOS(STATIC_2094)), o660, java.lang.Object(o1012sub)) → 2129_0_applyTreeChanger_Return(EOS(STATIC_2129), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2092_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return(EOS(STATIC_2357)), o660, java.lang.Object(o1012sub)) → 2415_0_applyTreeChanger_Return(EOS(STATIC_2415), 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)))))))))
2092_1_applyTreeChanger_InvokeMethod(2404_0_applyTreeChanger_Return(EOS(STATIC_2404)), o660, java.lang.Object(o1012sub)) → 2458_0_applyTreeChanger_Return(EOS(STATIC_2458), 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)))))
2092_1_applyTreeChanger_InvokeMethod(2594_0_applyTreeChanger_Return(EOS(STATIC_2594)), o660, java.lang.Object(o1012sub)) → 2626_0_applyTreeChanger_Return(EOS(STATIC_2626), 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)))))))))
2099_0_applyTreeChanger_Load(EOS(STATIC_2099), java.lang.Object(o1012sub)) → 1669_0_applyTreeChanger_Load(EOS(STATIC_1669), java.lang.Object(o1012sub))
1669_0_applyTreeChanger_Load(EOS(STATIC_1669), java.lang.Object(o650sub)) → 1675_0_applyTreeChanger_FieldAccess(EOS(STATIC_1675), java.lang.Object(o650sub), java.lang.Object(o650sub))
2129_0_applyTreeChanger_Return(EOS(STATIC_2129), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2284_0_applyTreeChanger_Return(EOS(STATIC_2284), o660, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2284_0_applyTreeChanger_Return(EOS(STATIC_2284), o1189, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1185, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2321_0_applyTreeChanger_Return(EOS(STATIC_2321), o1189, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1185, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2321_0_applyTreeChanger_Return(EOS(STATIC_2321), o1274, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1270, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1272))))) → 2352_0_applyTreeChanger_Load(EOS(STATIC_2352), o1274)
2352_0_applyTreeChanger_Load(EOS(STATIC_2352), o1274) → 2367_0_applyTreeChanger_NULL(EOS(STATIC_2367), o1274, o1274)
2367_0_applyTreeChanger_NULL(EOS(STATIC_2367), java.lang.Object(o1400sub), java.lang.Object(o1400sub)) → 2378_0_applyTreeChanger_NULL(EOS(STATIC_2378), java.lang.Object(o1400sub), java.lang.Object(o1400sub))
2378_0_applyTreeChanger_NULL(EOS(STATIC_2378), java.lang.Object(o1400sub), java.lang.Object(o1400sub)) → 2399_0_applyTreeChanger_Load(EOS(STATIC_2399), java.lang.Object(o1400sub))
2399_0_applyTreeChanger_Load(EOS(STATIC_2399), java.lang.Object(o1400sub)) → 2426_0_applyTreeChanger_Load(EOS(STATIC_2426), java.lang.Object(o1400sub))
2426_0_applyTreeChanger_Load(EOS(STATIC_2426), java.lang.Object(o1400sub)) → 2431_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2431), java.lang.Object(o1400sub))
2431_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2431), java.lang.Object(o1400sub)) → 2447_1_applyTreeChanger_InvokeMethod(2447_0_applyTreeChanger_Load(EOS(STATIC_2447), java.lang.Object(o1400sub)), java.lang.Object(o1400sub))
2447_0_applyTreeChanger_Load(EOS(STATIC_2447), java.lang.Object(o1400sub)) → 2470_0_applyTreeChanger_Load(EOS(STATIC_2470), java.lang.Object(o1400sub))
2470_0_applyTreeChanger_Load(EOS(STATIC_2470), java.lang.Object(o1400sub)) → 1669_0_applyTreeChanger_Load(EOS(STATIC_1669), java.lang.Object(o1400sub))
2415_0_applyTreeChanger_Return(EOS(STATIC_2415), 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))))))))) → 2321_0_applyTreeChanger_Return(EOS(STATIC_2321), 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)))))))))
2458_0_applyTreeChanger_Return(EOS(STATIC_2458), 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))))) → 2321_0_applyTreeChanger_Return(EOS(STATIC_2321), 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)))))
2626_0_applyTreeChanger_Return(EOS(STATIC_2626), 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))))))))) → 2321_0_applyTreeChanger_Return(EOS(STATIC_2321), 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)))))))))
2065_0_applyTreeChanger_NULL(EOS(STATIC_2065), NULL, o660, NULL) → 2071_0_applyTreeChanger_Load(EOS(STATIC_2071), o660)
2071_0_applyTreeChanger_Load(EOS(STATIC_2071), o660) → 2079_0_applyTreeChanger_NULL(EOS(STATIC_2079), o660, o660)
2079_0_applyTreeChanger_NULL(EOS(STATIC_2079), java.lang.Object(o1026sub), java.lang.Object(o1026sub)) → 2084_0_applyTreeChanger_NULL(EOS(STATIC_2084), java.lang.Object(o1026sub), java.lang.Object(o1026sub))
2084_0_applyTreeChanger_NULL(EOS(STATIC_2084), java.lang.Object(o1026sub), java.lang.Object(o1026sub)) → 2093_0_applyTreeChanger_Load(EOS(STATIC_2093), java.lang.Object(o1026sub))
2093_0_applyTreeChanger_Load(EOS(STATIC_2093), java.lang.Object(o1026sub)) → 2100_0_applyTreeChanger_Load(EOS(STATIC_2100), java.lang.Object(o1026sub))
2100_0_applyTreeChanger_Load(EOS(STATIC_2100), java.lang.Object(o1026sub)) → 2106_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2106), java.lang.Object(o1026sub))
2106_0_applyTreeChanger_InvokeMethod(EOS(STATIC_2106), java.lang.Object(o1026sub)) → 2122_1_applyTreeChanger_InvokeMethod(2122_0_applyTreeChanger_Load(EOS(STATIC_2122), java.lang.Object(o1026sub)), java.lang.Object(o1026sub))
2122_0_applyTreeChanger_Load(EOS(STATIC_2122), java.lang.Object(o1026sub)) → 2130_0_applyTreeChanger_Load(EOS(STATIC_2130), java.lang.Object(o1026sub))
2130_0_applyTreeChanger_Load(EOS(STATIC_2130), java.lang.Object(o1026sub)) → 1669_0_applyTreeChanger_Load(EOS(STATIC_1669), java.lang.Object(o1026sub))
R rules:
2079_0_applyTreeChanger_NULL(EOS(STATIC_2079), NULL, NULL) → 2085_0_applyTreeChanger_NULL(EOS(STATIC_2085), NULL, NULL)
2085_0_applyTreeChanger_NULL(EOS(STATIC_2085), NULL, NULL) → 2094_0_applyTreeChanger_Return(EOS(STATIC_2094))
2122_1_applyTreeChanger_InvokeMethod(2094_0_applyTreeChanger_Return(EOS(STATIC_2094)), java.lang.Object(o1026sub)) → 2158_0_applyTreeChanger_Return(EOS(STATIC_2158), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2122_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return(EOS(STATIC_2357)), java.lang.Object(o1026sub)) → 2422_0_applyTreeChanger_Return(EOS(STATIC_2422), 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)))))))))
2122_1_applyTreeChanger_InvokeMethod(2404_0_applyTreeChanger_Return(EOS(STATIC_2404)), java.lang.Object(o1026sub)) → 2466_0_applyTreeChanger_Return(EOS(STATIC_2466), 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)))))
2122_1_applyTreeChanger_InvokeMethod(2594_0_applyTreeChanger_Return(EOS(STATIC_2594)), java.lang.Object(o1026sub)) → 2634_0_applyTreeChanger_Return(EOS(STATIC_2634), 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)))))))))
2158_0_applyTreeChanger_Return(EOS(STATIC_2158), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2294_0_applyTreeChanger_Return(EOS(STATIC_2294), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2294_0_applyTreeChanger_Return(EOS(STATIC_2294), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1219, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2337_0_applyTreeChanger_Return(EOS(STATIC_2337), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1219, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2337_0_applyTreeChanger_Return(EOS(STATIC_2337), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1306, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1308))))) → 2357_0_applyTreeChanger_Return(EOS(STATIC_2357))
2367_0_applyTreeChanger_NULL(EOS(STATIC_2367), NULL, NULL) → 2379_0_applyTreeChanger_NULL(EOS(STATIC_2379), NULL, NULL)
2379_0_applyTreeChanger_NULL(EOS(STATIC_2379), NULL, NULL) → 2404_0_applyTreeChanger_Return(EOS(STATIC_2404))
2422_0_applyTreeChanger_Return(EOS(STATIC_2422), 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))))))))) → 2337_0_applyTreeChanger_Return(EOS(STATIC_2337), 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)))))))))
2447_1_applyTreeChanger_InvokeMethod(2094_0_applyTreeChanger_Return(EOS(STATIC_2094)), java.lang.Object(o1400sub)) → 2505_0_applyTreeChanger_Return(EOS(STATIC_2505), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2447_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return(EOS(STATIC_2357)), java.lang.Object(o1400sub)) → 2527_0_applyTreeChanger_Return(EOS(STATIC_2527), 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)))))))))
2447_1_applyTreeChanger_InvokeMethod(2404_0_applyTreeChanger_Return(EOS(STATIC_2404)), java.lang.Object(o1400sub)) → 2556_0_applyTreeChanger_Return(EOS(STATIC_2556), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1518, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1519)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2447_1_applyTreeChanger_InvokeMethod(2594_0_applyTreeChanger_Return(EOS(STATIC_2594)), java.lang.Object(o1400sub)) → 2643_0_applyTreeChanger_Return(EOS(STATIC_2643), 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)))))))))
2466_0_applyTreeChanger_Return(EOS(STATIC_2466), 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))))) → 2337_0_applyTreeChanger_Return(EOS(STATIC_2337), 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)))))
2505_0_applyTreeChanger_Return(EOS(STATIC_2505), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2528_0_applyTreeChanger_Return(EOS(STATIC_2528), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2527_0_applyTreeChanger_Return(EOS(STATIC_2527), 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))))))))) → 2528_0_applyTreeChanger_Return(EOS(STATIC_2528), 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)))))))))
2528_0_applyTreeChanger_Return(EOS(STATIC_2528), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1544))))) → 2557_0_applyTreeChanger_Return(EOS(STATIC_2557), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1544)))))
2556_0_applyTreeChanger_Return(EOS(STATIC_2556), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1518, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1519)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL))))) → 2557_0_applyTreeChanger_Return(EOS(STATIC_2557), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1518, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1519)))), NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, NULL)))))
2557_0_applyTreeChanger_Return(EOS(STATIC_2557), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(BinTreeChanger.Tree(EOC, o1597, NULL)), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, o1599))))) → 2594_0_applyTreeChanger_Return(EOS(STATIC_2594))
2634_0_applyTreeChanger_Return(EOS(STATIC_2634), 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))))))))) → 2337_0_applyTreeChanger_Return(EOS(STATIC_2337), 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)))))))))
2643_0_applyTreeChanger_Return(EOS(STATIC_2643), 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))))))))) → 2557_0_applyTreeChanger_Return(EOS(STATIC_2557), 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:
1675_0_applyTreeChanger_FieldAccess(EOS(STATIC_1675), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(x0), x1)), java.lang.Object(BinTreeChanger.Tree(EOC, java.lang.Object(x0), x1))) → 2092_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(EOS(STATIC_1675), java.lang.Object(x0), java.lang.Object(x0)), x1, java.lang.Object(x0))
2092_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return(EOS(STATIC_2357)), java.lang.Object(x0), java.lang.Object(x1)) → 2447_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(EOS(STATIC_1675), java.lang.Object(x0), java.lang.Object(x0)), java.lang.Object(x0))
2092_1_applyTreeChanger_InvokeMethod(2404_0_applyTreeChanger_Return(EOS(STATIC_2404)), java.lang.Object(x0), java.lang.Object(x1)) → 2447_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(EOS(STATIC_1675), java.lang.Object(x0), java.lang.Object(x0)), java.lang.Object(x0))
2092_1_applyTreeChanger_InvokeMethod(2594_0_applyTreeChanger_Return(EOS(STATIC_2594)), java.lang.Object(x0), java.lang.Object(x1)) → 2447_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(EOS(STATIC_1675), java.lang.Object(x0), java.lang.Object(x0)), java.lang.Object(x0))
2092_1_applyTreeChanger_InvokeMethod(2094_0_applyTreeChanger_Return(EOS(STATIC_2094)), java.lang.Object(x0), java.lang.Object(x1)) → 2447_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(EOS(STATIC_1675), java.lang.Object(x0), java.lang.Object(x0)), java.lang.Object(x0))
1675_0_applyTreeChanger_FieldAccess(EOS(STATIC_1675), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(x0))), java.lang.Object(BinTreeChanger.Tree(EOC, NULL, java.lang.Object(x0)))) → 2122_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(EOS(STATIC_1675), java.lang.Object(x0), java.lang.Object(x0)), java.lang.Object(x0))
R rules:
2122_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return(EOS(STATIC_2357)), java.lang.Object(x0)) → 2357_0_applyTreeChanger_Return(EOS(STATIC_2357))
2122_1_applyTreeChanger_InvokeMethod(2404_0_applyTreeChanger_Return(EOS(STATIC_2404)), java.lang.Object(x0)) → 2357_0_applyTreeChanger_Return(EOS(STATIC_2357))
2122_1_applyTreeChanger_InvokeMethod(2594_0_applyTreeChanger_Return(EOS(STATIC_2594)), java.lang.Object(x0)) → 2357_0_applyTreeChanger_Return(EOS(STATIC_2357))
2122_1_applyTreeChanger_InvokeMethod(2094_0_applyTreeChanger_Return(EOS(STATIC_2094)), java.lang.Object(x0)) → 2357_0_applyTreeChanger_Return(EOS(STATIC_2357))
2447_1_applyTreeChanger_InvokeMethod(2404_0_applyTreeChanger_Return(EOS(STATIC_2404)), java.lang.Object(x0)) → 2594_0_applyTreeChanger_Return(EOS(STATIC_2594))
2447_1_applyTreeChanger_InvokeMethod(2594_0_applyTreeChanger_Return(EOS(STATIC_2594)), java.lang.Object(x0)) → 2594_0_applyTreeChanger_Return(EOS(STATIC_2594))
2447_1_applyTreeChanger_InvokeMethod(2094_0_applyTreeChanger_Return(EOS(STATIC_2094)), java.lang.Object(x0)) → 2594_0_applyTreeChanger_Return(EOS(STATIC_2594))
2447_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return(EOS(STATIC_2357)), java.lang.Object(x0)) → 2594_0_applyTreeChanger_Return(EOS(STATIC_2594))

Filtered ground terms:



1675_0_applyTreeChanger_FieldAccess(x1, x2, x3) → 1675_0_applyTreeChanger_FieldAccess(x2, x3)
BinTreeChanger.Tree(x1, x2, x3) → BinTreeChanger.Tree(x2, x3)
2094_0_applyTreeChanger_Return(x1) → 2094_0_applyTreeChanger_Return
2594_0_applyTreeChanger_Return(x1) → 2594_0_applyTreeChanger_Return
2404_0_applyTreeChanger_Return(x1) → 2404_0_applyTreeChanger_Return
2357_0_applyTreeChanger_Return(x1) → 2357_0_applyTreeChanger_Return

Filtered duplicate args:



1675_0_applyTreeChanger_FieldAccess(x1, x2) → 1675_0_applyTreeChanger_FieldAccess(x2)

Filtered unneeded arguments:



2092_1_applyTreeChanger_InvokeMethod(x1, x2, x3) → 2092_1_applyTreeChanger_InvokeMethod(x1, x2)
2447_1_applyTreeChanger_InvokeMethod(x1, x2) → 2447_1_applyTreeChanger_InvokeMethod(x1)
2122_1_applyTreeChanger_InvokeMethod(x1, x2) → 2122_1_applyTreeChanger_InvokeMethod(x1)

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


P rules:
1675_0_applyTreeChanger_FieldAccess(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0), x1))) → 2092_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)), x1)
2092_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return, java.lang.Object(x0)) → 2447_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)))
2092_1_applyTreeChanger_InvokeMethod(2404_0_applyTreeChanger_Return, java.lang.Object(x0)) → 2447_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)))
2092_1_applyTreeChanger_InvokeMethod(2594_0_applyTreeChanger_Return, java.lang.Object(x0)) → 2447_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)))
2092_1_applyTreeChanger_InvokeMethod(2094_0_applyTreeChanger_Return, java.lang.Object(x0)) → 2447_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)))
1675_0_applyTreeChanger_FieldAccess(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0)))) → 2122_1_applyTreeChanger_InvokeMethod(1675_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)))
R rules:
2122_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return) → 2357_0_applyTreeChanger_Return
2122_1_applyTreeChanger_InvokeMethod(2404_0_applyTreeChanger_Return) → 2357_0_applyTreeChanger_Return
2122_1_applyTreeChanger_InvokeMethod(2594_0_applyTreeChanger_Return) → 2357_0_applyTreeChanger_Return
2122_1_applyTreeChanger_InvokeMethod(2094_0_applyTreeChanger_Return) → 2357_0_applyTreeChanger_Return
2447_1_applyTreeChanger_InvokeMethod(2404_0_applyTreeChanger_Return) → 2594_0_applyTreeChanger_Return
2447_1_applyTreeChanger_InvokeMethod(2594_0_applyTreeChanger_Return) → 2594_0_applyTreeChanger_Return
2447_1_applyTreeChanger_InvokeMethod(2094_0_applyTreeChanger_Return) → 2594_0_applyTreeChanger_Return
2447_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return) → 2594_0_applyTreeChanger_Return

Performed bisimulation on rules. Used the following equivalence classes: {[2122_1_applyTreeChanger_InvokeMethod_1, 2447_1_applyTreeChanger_InvokeMethod_1]=2122_1_applyTreeChanger_InvokeMethod_1, [2357_0_applyTreeChanger_Return, 2404_0_applyTreeChanger_Return, 2594_0_applyTreeChanger_Return, 2094_0_applyTreeChanger_Return]=2357_0_applyTreeChanger_Return}


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


P rules:
1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0), x1))) → 2092_1_APPLYTREECHANGER_INVOKEMETHOD(1675_0_applyTreeChanger_FieldAccess(java.lang.Object(x0)), x1)
1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0), x1))) → 1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0))
2092_1_APPLYTREECHANGER_INVOKEMETHOD(2357_0_applyTreeChanger_Return, java.lang.Object(x0)) → 1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0))
1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0)))) → 1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0))
R rules:
2122_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return) → 2357_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:
2122_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return) → 2357_0_applyTreeChanger_Return

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

(0) -> (2), if (1675_0_applyTreeChanger_FieldAccess(java.lang.Object(x0[0])) →* 2357_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:
2122_1_applyTreeChanger_InvokeMethod(2357_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:

1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[0]), x1[0]))) → 2092_1_APPLYTREECHANGER_INVOKEMETHOD(1675_0_applyTreeChanger_FieldAccess(java.lang.Object(x0[0])), x1[0])
1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[1]), x1[1]))) → 1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[1]))
2092_1_APPLYTREECHANGER_INVOKEMETHOD(2357_0_applyTreeChanger_Return, java.lang.Object(x0[2])) → 1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[2]))
1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3])))) → 1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[3]))

The TRS R consists of the following rules:

2122_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return) → 2357_0_applyTreeChanger_Return

The set Q consists of the following terms:

2122_1_applyTreeChanger_InvokeMethod(2357_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:

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

The TRS R consists of the following rules:

2122_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return) → 2357_0_applyTreeChanger_Return

The set Q consists of the following terms:

2122_1_applyTreeChanger_InvokeMethod(2357_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:

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

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

2122_1_applyTreeChanger_InvokeMethod(2357_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].

2122_1_applyTreeChanger_InvokeMethod(2357_0_applyTreeChanger_Return)

(22) Obligation:

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

1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(java.lang.Object(x0[1]), x1[1]))) → 1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(x0[1]))
1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3])))) → 1675_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:

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

  • 1675_0_APPLYTREECHANGER_FIELDACCESS(java.lang.Object(BinTreeChanger.Tree(NULL, java.lang.Object(x0[3])))) → 1675_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:
2397_0_createTree_Load(EOS(STATIC_2397), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985) → 2424_0_createTree_GE(EOS(STATIC_2424), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985, i115)
2424_0_createTree_GE(EOS(STATIC_2424), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985, i115) → 2429_0_createTree_GE(EOS(STATIC_2429), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985, i115)
2429_0_createTree_GE(EOS(STATIC_2429), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985, i115) → 2446_0_createTree_Load(EOS(STATIC_2446), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985) | <(i985, i115)
2446_0_createTree_Load(EOS(STATIC_2446), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985) → 2468_0_createTree_InvokeMethod(EOS(STATIC_2468), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)))
2468_0_createTree_InvokeMethod(EOS(STATIC_2468), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2473_0_random_FieldAccess(EOS(STATIC_2473), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)))
2473_0_random_FieldAccess(EOS(STATIC_2473), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2504_0_random_FieldAccess(EOS(STATIC_2504), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)))
2504_0_random_FieldAccess(EOS(STATIC_2504), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982))) → 2561_0_random_ArrayAccess(EOS(STATIC_2561), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i983)
2561_0_random_ArrayAccess(EOS(STATIC_2561), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i1066) → 2598_0_random_ArrayAccess(EOS(STATIC_2598), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i1066)
2598_0_random_ArrayAccess(EOS(STATIC_2598), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i1066) → 2603_0_random_ArrayAccess(EOS(STATIC_2603), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i1066)
2603_0_random_ArrayAccess(EOS(STATIC_2603), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(ARRAY(i982)), i1066) → 2616_0_random_Store(EOS(STATIC_2616), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784) | <(i1066, i982)
2616_0_random_Store(EOS(STATIC_2616), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784) → 2647_0_random_FieldAccess(EOS(STATIC_2647), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784)
2647_0_random_FieldAccess(EOS(STATIC_2647), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784) → 2652_0_random_ConstantStackPush(EOS(STATIC_2652), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, i1066)
2652_0_random_ConstantStackPush(EOS(STATIC_2652), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, i1066) → 2657_0_random_IntArithmetic(EOS(STATIC_2657), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, i1066, 1)
2657_0_random_IntArithmetic(EOS(STATIC_2657), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, i1066, matching1) → 2660_0_random_FieldAccess(EOS(STATIC_2660), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, +(i1066, 1)) | &&(>=(i1066, 0), =(matching1, 1))
2660_0_random_FieldAccess(EOS(STATIC_2660), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784, i1101) → 2664_0_random_Load(EOS(STATIC_2664), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784)
2664_0_random_Load(EOS(STATIC_2664), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784) → 2672_0_random_InvokeMethod(EOS(STATIC_2672), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), o1784)
2672_0_random_InvokeMethod(EOS(STATIC_2672), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub)) → 2678_0_random_InvokeMethod(EOS(STATIC_2678), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub))
2678_0_random_InvokeMethod(EOS(STATIC_2678), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub)) → 2684_0_length_Load(EOS(STATIC_2684), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub), java.lang.Object(o1852sub))
2684_0_length_Load(EOS(STATIC_2684), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub), java.lang.Object(o1852sub)) → 2697_0_length_FieldAccess(EOS(STATIC_2697), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(o1852sub), java.lang.Object(o1852sub))
2697_0_length_FieldAccess(EOS(STATIC_2697), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(java.lang.String(o1875sub, i1158)), java.lang.Object(java.lang.String(o1875sub, i1158))) → 2710_0_length_FieldAccess(EOS(STATIC_2710), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(java.lang.String(o1875sub, i1158)), java.lang.Object(java.lang.String(o1875sub, i1158))) | &&(>=(i1158, 0), >=(i1159, 0))
2710_0_length_FieldAccess(EOS(STATIC_2710), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(java.lang.String(o1875sub, i1158)), java.lang.Object(java.lang.String(o1875sub, i1158))) → 2739_0_length_Return(EOS(STATIC_2739), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(java.lang.String(o1875sub, i1158)), i1158)
2739_0_length_Return(EOS(STATIC_2739), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(java.lang.String(o1875sub, i1158)), i1158) → 2744_0_random_Return(EOS(STATIC_2744), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1158)
2744_0_random_Return(EOS(STATIC_2744), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1158) → 2748_0_createTree_InvokeMethod(EOS(STATIC_2748), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1158)
2748_0_createTree_InvokeMethod(EOS(STATIC_2748), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1158) → 2756_1_createTree_InvokeMethod(2756_0_insert_Load(EOS(STATIC_2756), java.lang.Object(BinTreeChanger.Tree(EOC)), i1158), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1158)
2756_1_createTree_InvokeMethod(2966_0_insert_Return(EOS(STATIC_2966)), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1369) → 2984_0_insert_Return(EOS(STATIC_2984), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1369)
2756_1_createTree_InvokeMethod(2967_0_insert_Return(EOS(STATIC_2967)), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1386) → 2990_0_insert_Return(EOS(STATIC_2990), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1386)
2756_1_createTree_InvokeMethod(3012_0_insert_Return(EOS(STATIC_3012)), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1437) → 3034_0_insert_Return(EOS(STATIC_3034), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1437)
2756_1_createTree_InvokeMethod(3020_0_insert_Return(EOS(STATIC_3020)), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1459) → 3047_0_insert_Return(EOS(STATIC_3047), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1459)
2984_0_insert_Return(EOS(STATIC_2984), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1369) → 2991_0_insert_Return(EOS(STATIC_2991), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1369)
2991_0_insert_Return(EOS(STATIC_2991), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1405) → 3008_0_createTree_Inc(EOS(STATIC_3008), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985)
3008_0_createTree_Inc(EOS(STATIC_3008), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985) → 3015_0_createTree_JMP(EOS(STATIC_3015), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), +(i985, 1)) | >=(i985, 0)
3015_0_createTree_JMP(EOS(STATIC_3015), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i1428) → 3023_0_createTree_Load(EOS(STATIC_3023), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i1428)
3023_0_createTree_Load(EOS(STATIC_3023), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i1428) → 2375_0_createTree_Load(EOS(STATIC_2375), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i1428)
2375_0_createTree_Load(EOS(STATIC_2375), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985) → 2397_0_createTree_Load(EOS(STATIC_2397), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, i985)
2990_0_insert_Return(EOS(STATIC_2990), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1386) → 2991_0_insert_Return(EOS(STATIC_2991), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1386)
3034_0_insert_Return(EOS(STATIC_3034), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1437) → 2991_0_insert_Return(EOS(STATIC_2991), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1437)
3047_0_insert_Return(EOS(STATIC_3047), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1459) → 2991_0_insert_Return(EOS(STATIC_2991), i115, java.lang.Object(BinTreeChanger.Tree(EOC)), i985, java.lang.Object(BinTreeChanger.Tree(EOC)), i1459)
R rules:
2756_0_insert_Load(EOS(STATIC_2756), java.lang.Object(BinTreeChanger.Tree(EOC)), i1158) → 2760_0_insert_Load(EOS(STATIC_2760), java.lang.Object(BinTreeChanger.Tree(EOC)), i1158)
2760_0_insert_Load(EOS(STATIC_2760), java.lang.Object(BinTreeChanger.Tree(EOC)), i1158) → 2775_0_insert_Load(EOS(STATIC_2775), java.lang.Object(BinTreeChanger.Tree(EOC)), i1158)
2931_0_insert_Load(EOS(STATIC_2931), java.lang.Object(o2055sub), i1231) → 2775_0_insert_Load(EOS(STATIC_2775), java.lang.Object(o2055sub), i1231)
2934_0_insert_Load(EOS(STATIC_2934), java.lang.Object(o2056sub), i1231) → 2775_0_insert_Load(EOS(STATIC_2775), java.lang.Object(o2056sub), i1231)
2775_0_insert_Load(EOS(STATIC_2775), java.lang.Object(o1965sub), i1231) → 2784_0_insert_Load(EOS(STATIC_2784), java.lang.Object(o1965sub), i1231, i1231)
2784_0_insert_Load(EOS(STATIC_2784), java.lang.Object(o1965sub), i1231, i1231) → 2790_0_insert_FieldAccess(EOS(STATIC_2790), java.lang.Object(o1965sub), i1231, i1231, java.lang.Object(o1965sub))
2790_0_insert_FieldAccess(EOS(STATIC_2790), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2800_0_insert_FieldAccess(EOS(STATIC_2800), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2800_0_insert_FieldAccess(EOS(STATIC_2800), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260)
2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260) → 2816_0_insert_GT(EOS(STATIC_2816), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260)
2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260) → 2817_0_insert_GT(EOS(STATIC_2817), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260)
2816_0_insert_GT(EOS(STATIC_2816), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260) → 2824_0_insert_Load(EOS(STATIC_2824), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) | >(i1231, i1260)
2817_0_insert_GT(EOS(STATIC_2817), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, i1231, i1260) → 2825_0_insert_Load(EOS(STATIC_2825), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) | <=(i1231, i1260)
2824_0_insert_Load(EOS(STATIC_2824), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2834_0_insert_FieldAccess(EOS(STATIC_2834), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2825_0_insert_Load(EOS(STATIC_2825), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2835_0_insert_FieldAccess(EOS(STATIC_2835), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2834_0_insert_FieldAccess(EOS(STATIC_2834), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2843_0_insert_NONNULL(EOS(STATIC_2843), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, o1993)
2835_0_insert_FieldAccess(EOS(STATIC_2835), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2845_0_insert_NONNULL(EOS(STATIC_2845), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, o1992)
2843_0_insert_NONNULL(EOS(STATIC_2843), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2055sub)) → 2855_0_insert_NONNULL(EOS(STATIC_2855), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2055sub))
2843_0_insert_NONNULL(EOS(STATIC_2843), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL) → 2856_0_insert_NONNULL(EOS(STATIC_2856), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL)
2845_0_insert_NONNULL(EOS(STATIC_2845), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2056sub)) → 2858_0_insert_NONNULL(EOS(STATIC_2858), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2056sub))
2845_0_insert_NONNULL(EOS(STATIC_2845), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL) → 2859_0_insert_NONNULL(EOS(STATIC_2859), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL)
2855_0_insert_NONNULL(EOS(STATIC_2855), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2055sub)) → 2867_0_insert_Load(EOS(STATIC_2867), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2856_0_insert_NONNULL(EOS(STATIC_2856), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL) → 2868_0_insert_Load(EOS(STATIC_2868), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2858_0_insert_NONNULL(EOS(STATIC_2858), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, java.lang.Object(o2056sub)) → 2869_0_insert_Load(EOS(STATIC_2869), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2859_0_insert_NONNULL(EOS(STATIC_2859), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231, NULL) → 2870_0_insert_Load(EOS(STATIC_2870), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2867_0_insert_Load(EOS(STATIC_2867), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2884_0_insert_FieldAccess(EOS(STATIC_2884), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2868_0_insert_Load(EOS(STATIC_2868), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2885_0_insert_New(EOS(STATIC_2885), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2869_0_insert_Load(EOS(STATIC_2869), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2886_0_insert_FieldAccess(EOS(STATIC_2886), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2870_0_insert_Load(EOS(STATIC_2870), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2888_0_insert_New(EOS(STATIC_2888), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)))
2884_0_insert_FieldAccess(EOS(STATIC_2884), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2896_0_insert_Load(EOS(STATIC_2896), i1231, java.lang.Object(o2055sub))
2885_0_insert_New(EOS(STATIC_2885), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2897_0_insert_Duplicate(EOS(STATIC_2897), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2886_0_insert_FieldAccess(EOS(STATIC_2886), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2898_0_insert_Load(EOS(STATIC_2898), i1231, java.lang.Object(o2056sub))
2888_0_insert_New(EOS(STATIC_2888), i1231, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2900_0_insert_Duplicate(EOS(STATIC_2900), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2896_0_insert_Load(EOS(STATIC_2896), i1231, java.lang.Object(o2055sub)) → 2913_0_insert_InvokeMethod(EOS(STATIC_2913), java.lang.Object(o2055sub), i1231)
2897_0_insert_Duplicate(EOS(STATIC_2897), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2914_0_insert_Load(EOS(STATIC_2914), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2898_0_insert_Load(EOS(STATIC_2898), i1231, java.lang.Object(o2056sub)) → 2915_0_insert_InvokeMethod(EOS(STATIC_2915), java.lang.Object(o2056sub), i1231)
2900_0_insert_Duplicate(EOS(STATIC_2900), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2916_0_insert_Load(EOS(STATIC_2916), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2913_0_insert_InvokeMethod(EOS(STATIC_2913), java.lang.Object(o2055sub), i1231) → 2923_1_insert_InvokeMethod(2923_0_insert_Load(EOS(STATIC_2923), java.lang.Object(o2055sub), i1231), java.lang.Object(o2055sub), i1231)
2914_0_insert_Load(EOS(STATIC_2914), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2924_0_insert_InvokeMethod(EOS(STATIC_2924), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2915_0_insert_InvokeMethod(EOS(STATIC_2915), java.lang.Object(o2056sub), i1231) → 2926_1_insert_InvokeMethod(2926_0_insert_Load(EOS(STATIC_2926), java.lang.Object(o2056sub), i1231), java.lang.Object(o2056sub), i1231)
2916_0_insert_Load(EOS(STATIC_2916), i1231, java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2927_0_insert_InvokeMethod(EOS(STATIC_2927), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2923_0_insert_Load(EOS(STATIC_2923), java.lang.Object(o2055sub), i1231) → 2931_0_insert_Load(EOS(STATIC_2931), java.lang.Object(o2055sub), i1231)
2923_1_insert_InvokeMethod(2966_0_insert_Return(EOS(STATIC_2966)), java.lang.Object(o2055sub), i1376) → 2985_0_insert_Return(EOS(STATIC_2985), java.lang.Object(BinTreeChanger.Tree(EOC)), i1376)
2923_1_insert_InvokeMethod(2967_0_insert_Return(EOS(STATIC_2967)), java.lang.Object(o2055sub), i1393) → 2997_0_insert_Return(EOS(STATIC_2997), java.lang.Object(BinTreeChanger.Tree(EOC)), i1393)
2923_1_insert_InvokeMethod(3012_0_insert_Return(EOS(STATIC_3012)), java.lang.Object(o2055sub), i1441) → 3037_0_insert_Return(EOS(STATIC_3037), java.lang.Object(BinTreeChanger.Tree(EOC)), i1441)
2923_1_insert_InvokeMethod(3020_0_insert_Return(EOS(STATIC_3020)), java.lang.Object(o2055sub), i1463) → 3049_0_insert_Return(EOS(STATIC_3049), java.lang.Object(BinTreeChanger.Tree(EOC)), i1463)
2924_0_insert_InvokeMethod(EOS(STATIC_2924), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2933_0_<init>_Load(EOS(STATIC_2933), 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)
2926_0_insert_Load(EOS(STATIC_2926), java.lang.Object(o2056sub), i1231) → 2934_0_insert_Load(EOS(STATIC_2934), java.lang.Object(o2056sub), i1231)
2926_1_insert_InvokeMethod(2966_0_insert_Return(EOS(STATIC_2966)), java.lang.Object(o2056sub), i1383) → 2987_0_insert_Return(EOS(STATIC_2987), java.lang.Object(BinTreeChanger.Tree(EOC)), i1383)
2926_1_insert_InvokeMethod(2967_0_insert_Return(EOS(STATIC_2967)), java.lang.Object(o2056sub), i1400) → 3004_0_insert_Return(EOS(STATIC_3004), java.lang.Object(BinTreeChanger.Tree(EOC)), i1400)
2926_1_insert_InvokeMethod(3012_0_insert_Return(EOS(STATIC_3012)), java.lang.Object(o2056sub), i1445) → 3040_0_insert_Return(EOS(STATIC_3040), java.lang.Object(BinTreeChanger.Tree(EOC)), i1445)
2926_1_insert_InvokeMethod(3020_0_insert_Return(EOS(STATIC_3020)), java.lang.Object(o2056sub), i1467) → 3052_0_insert_Return(EOS(STATIC_3052), java.lang.Object(BinTreeChanger.Tree(EOC)), i1467)
2927_0_insert_InvokeMethod(EOS(STATIC_2927), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2935_0_<init>_Load(EOS(STATIC_2935), 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)
2933_0_<init>_Load(EOS(STATIC_2933), 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) → 2941_0_<init>_InvokeMethod(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, java.lang.Object(BinTreeChanger.Tree(EOC)))
2935_0_<init>_Load(EOS(STATIC_2935), 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) → 2943_0_<init>_InvokeMethod(EOS(STATIC_2943), 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>_InvokeMethod(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, java.lang.Object(BinTreeChanger.Tree(EOC))) → 2948_0_<init>_Load(EOS(STATIC_2948), 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)
2943_0_<init>_InvokeMethod(EOS(STATIC_2943), 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))) → 2950_0_<init>_Load(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)
2948_0_<init>_Load(EOS(STATIC_2948), 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) → 2951_0_<init>_Load(EOS(STATIC_2951), 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)))
2950_0_<init>_Load(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) → 2952_0_<init>_Load(EOS(STATIC_2952), 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)))
2951_0_<init>_Load(EOS(STATIC_2951), 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))) → 2953_0_<init>_FieldAccess(EOS(STATIC_2953), 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)
2952_0_<init>_Load(EOS(STATIC_2952), 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))) → 2955_0_<init>_FieldAccess(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)
2953_0_<init>_FieldAccess(EOS(STATIC_2953), 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) → 2956_0_<init>_Return(EOS(STATIC_2956), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2955_0_<init>_FieldAccess(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>_Return(EOS(STATIC_2958), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231)
2956_0_<init>_Return(EOS(STATIC_2956), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2960_0_insert_FieldAccess(EOS(STATIC_2960), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2958_0_<init>_Return(EOS(STATIC_2958), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)), i1231) → 2961_0_insert_FieldAccess(EOS(STATIC_2961), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC)))
2960_0_insert_FieldAccess(EOS(STATIC_2960), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2963_0_insert_JMP(EOS(STATIC_2963))
2961_0_insert_FieldAccess(EOS(STATIC_2961), java.lang.Object(BinTreeChanger.Tree(EOC)), java.lang.Object(BinTreeChanger.Tree(EOC))) → 2965_0_insert_JMP(EOS(STATIC_2965))
2963_0_insert_JMP(EOS(STATIC_2963)) → 2966_0_insert_Return(EOS(STATIC_2966))
2965_0_insert_JMP(EOS(STATIC_2965)) → 2967_0_insert_Return(EOS(STATIC_2967))
2966_0_insert_Return(EOS(STATIC_2966)) → 3012_0_insert_Return(EOS(STATIC_3012))
2967_0_insert_Return(EOS(STATIC_2967)) → 3020_0_insert_Return(EOS(STATIC_3020))
2985_0_insert_Return(EOS(STATIC_2985), java.lang.Object(BinTreeChanger.Tree(EOC)), i1376) → 2998_0_insert_Return(EOS(STATIC_2998), java.lang.Object(BinTreeChanger.Tree(EOC)), i1376)
2987_0_insert_Return(EOS(STATIC_2987), java.lang.Object(BinTreeChanger.Tree(EOC)), i1383) → 3005_0_insert_Return(EOS(STATIC_3005), java.lang.Object(BinTreeChanger.Tree(EOC)), i1383)
2997_0_insert_Return(EOS(STATIC_2997), java.lang.Object(BinTreeChanger.Tree(EOC)), i1393) → 2998_0_insert_Return(EOS(STATIC_2998), java.lang.Object(BinTreeChanger.Tree(EOC)), i1393)
2998_0_insert_Return(EOS(STATIC_2998), java.lang.Object(BinTreeChanger.Tree(EOC)), i1409) → 3012_0_insert_Return(EOS(STATIC_3012))
3004_0_insert_Return(EOS(STATIC_3004), java.lang.Object(BinTreeChanger.Tree(EOC)), i1400) → 3005_0_insert_Return(EOS(STATIC_3005), java.lang.Object(BinTreeChanger.Tree(EOC)), i1400)
3005_0_insert_Return(EOS(STATIC_3005), java.lang.Object(BinTreeChanger.Tree(EOC)), i1417) → 3014_0_insert_JMP(EOS(STATIC_3014))
3014_0_insert_JMP(EOS(STATIC_3014)) → 3020_0_insert_Return(EOS(STATIC_3020))
3037_0_insert_Return(EOS(STATIC_3037), java.lang.Object(BinTreeChanger.Tree(EOC)), i1441) → 2998_0_insert_Return(EOS(STATIC_2998), java.lang.Object(BinTreeChanger.Tree(EOC)), i1441)
3040_0_insert_Return(EOS(STATIC_3040), java.lang.Object(BinTreeChanger.Tree(EOC)), i1445) → 3005_0_insert_Return(EOS(STATIC_3005), java.lang.Object(BinTreeChanger.Tree(EOC)), i1445)
3049_0_insert_Return(EOS(STATIC_3049), java.lang.Object(BinTreeChanger.Tree(EOC)), i1463) → 2998_0_insert_Return(EOS(STATIC_2998), java.lang.Object(BinTreeChanger.Tree(EOC)), i1463)
3052_0_insert_Return(EOS(STATIC_3052), java.lang.Object(BinTreeChanger.Tree(EOC)), i1467) → 3005_0_insert_Return(EOS(STATIC_3005), java.lang.Object(BinTreeChanger.Tree(EOC)), i1467)

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


P rules:
2756_1_createTree_InvokeMethod(2966_0_insert_Return(EOS(STATIC_2966)), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), x1, java.lang.Object(BinTreeChanger.Tree(EOC)), x2) → 2756_1_createTree_InvokeMethod(2756_0_insert_Load(EOS(STATIC_2756), 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)))
2756_1_createTree_InvokeMethod(2967_0_insert_Return(EOS(STATIC_2967)), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), x1, java.lang.Object(BinTreeChanger.Tree(EOC)), x2) → 2756_1_createTree_InvokeMethod(2756_0_insert_Load(EOS(STATIC_2756), 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)))
2756_1_createTree_InvokeMethod(3012_0_insert_Return(EOS(STATIC_3012)), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), x1, java.lang.Object(BinTreeChanger.Tree(EOC)), x2) → 2756_1_createTree_InvokeMethod(2756_0_insert_Load(EOS(STATIC_2756), 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)))
2756_1_createTree_InvokeMethod(3020_0_insert_Return(EOS(STATIC_3020)), x0, java.lang.Object(BinTreeChanger.Tree(EOC)), x1, java.lang.Object(BinTreeChanger.Tree(EOC)), x2) → 2756_1_createTree_InvokeMethod(2756_0_insert_Load(EOS(STATIC_2756), 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:
2756_0_insert_Load(EOS(STATIC_2756), java.lang.Object(BinTreeChanger.Tree(EOC)), x0) → 2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x1)
2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x1) → 2923_1_insert_InvokeMethod(2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x2), java.lang.Object(BinTreeChanger.Tree(EOC)), x0) | <(x1, x0)
2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x1) → 2926_1_insert_InvokeMethod(2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x2), java.lang.Object(BinTreeChanger.Tree(EOC)), x0) | >=(x1, x0)
2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x1) → 3012_0_insert_Return(EOS(STATIC_3012)) | <(x1, x0)
2808_0_insert_GT(EOS(STATIC_2808), java.lang.Object(BinTreeChanger.Tree(EOC)), x0, x0, x1) → 3020_0_insert_Return(EOS(STATIC_3020)) | >=(x1, x0)
2923_1_insert_InvokeMethod(2966_0_insert_Return(EOS(STATIC_2966)), java.lang.Object(x0), x1) → 3012_0_insert_Return(EOS(STATIC_3012))
2923_1_insert_InvokeMethod(2967_0_insert_Return(EOS(STATIC_2967)), java.lang.Object(x0), x1) → 3012_0_insert_Return(EOS(STATIC_3012))
2923_1_insert_InvokeMethod(3012_0_insert_Return(EOS(STATIC_3012)), java.lang.Object(x0), x1) → 3012_0_insert_Return(EOS(STATIC_3012))
2923_1_insert_InvokeMethod(3020_0_insert_Return(EOS(STATIC_3020)), java.lang.Object(x0), x1) → 3012_0_insert_Return(EOS(STATIC_3012))
2926_1_insert_InvokeMethod(2966_0_insert_Return(EOS(STATIC_2966)), java.lang.Object(x0), x1) → 3020_0_insert_Return(EOS(STATIC_3020))
2926_1_insert_InvokeMethod(2967_0_insert_Return(EOS(STATIC_2967)), java.lang.Object(x0), x1) → 3020_0_insert_Return(EOS(STATIC_3020))
2926_1_insert_InvokeMethod(3012_0_insert_Return(EOS(STATIC_3012)), java.lang.Object(x0), x1) → 3020_0_insert_Return(EOS(STATIC_3020))
2926_1_insert_InvokeMethod(3020_0_insert_Return(EOS(STATIC_3020)), java.lang.Object(x0), x1) → 3020_0_insert_Return(EOS(STATIC_3020))

Filtered ground terms:



2756_1_createTree_InvokeMethod(x1, x2, x3, x4, x5, x6) → 2756_1_createTree_InvokeMethod(x1, x2, x4, x6)
BinTreeChanger.Tree(x1) → BinTreeChanger.Tree
2756_0_insert_Load(x1, x2, x3) → 2756_0_insert_Load(x3)
Cond_2756_1_createTree_InvokeMethod3(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_2756_1_createTree_InvokeMethod3(x1, x3, x5, x7, x8)
3020_0_insert_Return(x1) → 3020_0_insert_Return
Cond_2756_1_createTree_InvokeMethod2(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_2756_1_createTree_InvokeMethod2(x1, x3, x5, x7, x8)
3012_0_insert_Return(x1) → 3012_0_insert_Return
Cond_2756_1_createTree_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_2756_1_createTree_InvokeMethod1(x1, x3, x5, x7, x8)
2967_0_insert_Return(x1) → 2967_0_insert_Return
Cond_2756_1_createTree_InvokeMethod(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_2756_1_createTree_InvokeMethod(x1, x3, x5, x7, x8)
2966_0_insert_Return(x1) → 2966_0_insert_Return
Cond_2808_0_insert_GT3(x1, x2, x3, x4, x5, x6) → Cond_2808_0_insert_GT3(x1, x4, x5, x6)
2808_0_insert_GT(x1, x2, x3, x4, x5) → 2808_0_insert_GT(x3, x4, x5)
Cond_2808_0_insert_GT2(x1, x2, x3, x4, x5, x6) → Cond_2808_0_insert_GT2(x1, x4, x5, x6)
Cond_2808_0_insert_GT1(x1, x2, x3, x4, x5, x6, x7) → Cond_2808_0_insert_GT1(x1, x4, x5, x6, x7)
Cond_2808_0_insert_GT(x1, x2, x3, x4, x5, x6, x7) → Cond_2808_0_insert_GT(x1, x4, x5, x6, x7)

Filtered duplicate args:



2808_0_insert_GT(x1, x2, x3) → 2808_0_insert_GT(x2, x3)
Cond_2808_0_insert_GT(x1, x2, x3, x4, x5) → Cond_2808_0_insert_GT(x1, x3, x4, x5)
Cond_2808_0_insert_GT1(x1, x2, x3, x4, x5) → Cond_2808_0_insert_GT1(x1, x3, x4, x5)
Cond_2808_0_insert_GT2(x1, x2, x3, x4) → Cond_2808_0_insert_GT2(x1, x3, x4)
Cond_2808_0_insert_GT3(x1, x2, x3, x4) → Cond_2808_0_insert_GT3(x1, x3, x4)

Filtered unneeded arguments:



2756_1_createTree_InvokeMethod(x1, x2, x3, x4) → 2756_1_createTree_InvokeMethod(x1, x2, x3)
Cond_2756_1_createTree_InvokeMethod(x1, x2, x3, x4, x5) → Cond_2756_1_createTree_InvokeMethod(x1, x2, x3, x5)
Cond_2756_1_createTree_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_2756_1_createTree_InvokeMethod1(x1, x2, x3, x5)
Cond_2756_1_createTree_InvokeMethod2(x1, x2, x3, x4, x5) → Cond_2756_1_createTree_InvokeMethod2(x1, x2, x3, x5)
Cond_2756_1_createTree_InvokeMethod3(x1, x2, x3, x4, x5) → Cond_2756_1_createTree_InvokeMethod3(x1, x2, x3, x5)
Cond_2808_0_insert_GT(x1, x2, x3, x4) → Cond_2808_0_insert_GT(x1, x2, x4)
2923_1_insert_InvokeMethod(x1, x2, x3) → 2923_1_insert_InvokeMethod(x1, x2)
Cond_2808_0_insert_GT1(x1, x2, x3, x4) → Cond_2808_0_insert_GT1(x1, x2, x4)
2926_1_insert_InvokeMethod(x1, x2, x3) → 2926_1_insert_InvokeMethod(x1, x2)
Cond_2808_0_insert_GT2(x1, x2, x3) → Cond_2808_0_insert_GT2(x1)
Cond_2808_0_insert_GT3(x1, x2, x3) → Cond_2808_0_insert_GT3(x1)

Filtered all non-integer terms:



2923_1_insert_InvokeMethod(x1, x2) → 2923_1_insert_InvokeMethod(x1)
2926_1_insert_InvokeMethod(x1, x2) → 2926_1_insert_InvokeMethod(x1)

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


P rules:
2756_1_createTree_InvokeMethod(2966_0_insert_Return, x0, x1) → 2756_1_createTree_InvokeMethod(2756_0_insert_Load(x3), x0, +(x1, 1)) | &&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1)))
2756_1_createTree_InvokeMethod(2967_0_insert_Return, x0, x1) → 2756_1_createTree_InvokeMethod(2756_0_insert_Load(x3), x0, +(x1, 1)) | &&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1)))
2756_1_createTree_InvokeMethod(3012_0_insert_Return, x0, x1) → 2756_1_createTree_InvokeMethod(2756_0_insert_Load(x3), x0, +(x1, 1)) | &&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1)))
2756_1_createTree_InvokeMethod(3020_0_insert_Return, x0, x1) → 2756_1_createTree_InvokeMethod(2756_0_insert_Load(x3), x0, +(x1, 1)) | &&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1)))
R rules:
2756_0_insert_Load(x0) → 2808_0_insert_GT(x0, x1)
2808_0_insert_GT(x0, x1) → 2923_1_insert_InvokeMethod(2808_0_insert_GT(x0, x2)) | <(x1, x0)
2808_0_insert_GT(x0, x1) → 2926_1_insert_InvokeMethod(2808_0_insert_GT(x0, x2)) | >=(x1, x0)
2808_0_insert_GT(x0, x1) → 3012_0_insert_Return | <(x1, x0)
2808_0_insert_GT(x0, x1) → 3020_0_insert_Return | >=(x1, x0)
2923_1_insert_InvokeMethod(2966_0_insert_Return) → 3012_0_insert_Return
2923_1_insert_InvokeMethod(2967_0_insert_Return) → 3012_0_insert_Return
2923_1_insert_InvokeMethod(3012_0_insert_Return) → 3012_0_insert_Return
2923_1_insert_InvokeMethod(3020_0_insert_Return) → 3012_0_insert_Return
2926_1_insert_InvokeMethod(2966_0_insert_Return) → 3020_0_insert_Return
2926_1_insert_InvokeMethod(2967_0_insert_Return) → 3020_0_insert_Return
2926_1_insert_InvokeMethod(3012_0_insert_Return) → 3020_0_insert_Return
2926_1_insert_InvokeMethod(3020_0_insert_Return) → 3020_0_insert_Return

Performed bisimulation on rules. Used the following equivalence classes: {[2923_1_insert_InvokeMethod_1, 2926_1_insert_InvokeMethod_1]=2923_1_insert_InvokeMethod_1, [3012_0_insert_Return, 3020_0_insert_Return, 2966_0_insert_Return, 2967_0_insert_Return]=3012_0_insert_Return, [Cond_2756_1_createTree_InvokeMethod_5, Cond_2756_1_createTree_InvokeMethod1_5, Cond_2756_1_createTree_InvokeMethod2_5, Cond_2756_1_createTree_InvokeMethod3_5]=Cond_2756_1_createTree_InvokeMethod_5}


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


P rules:
2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0, x1) → COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1))), 3012_0_insert_Return, x0, x1, x3)
COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0, x1, x3) → 2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3), x0, +(x1, 1))
R rules:
2756_0_insert_Load(x0) → 2808_0_insert_GT(x0, x1)
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT(<(x1, x0), x0, x1, x2)
Cond_2808_0_insert_GT(TRUE, x0, x1, x2) → 2923_1_insert_InvokeMethod(2808_0_insert_GT(x0, x2))
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT1(>=(x1, x0), x0, x1, x2)
Cond_2808_0_insert_GT1(TRUE, x0, x1, x2) → 2923_1_insert_InvokeMethod(2808_0_insert_GT(x0, x2))
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT2(<(x1, x0), x0, x1)
Cond_2808_0_insert_GT2(TRUE, x0, x1) → 3012_0_insert_Return
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT3(>=(x1, x0), x0, x1)
Cond_2808_0_insert_GT3(TRUE, x0, x1) → 3012_0_insert_Return
2923_1_insert_InvokeMethod(3012_0_insert_Return) → 3012_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:
2756_0_insert_Load(x0) → 2808_0_insert_GT(x0, x1)
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT(x1 < x0, x0, x1, x2)
Cond_2808_0_insert_GT(TRUE, x0, x1, x2) → 2923_1_insert_InvokeMethod(2808_0_insert_GT(x0, x2))
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT1(x1 >= x0, x0, x1, x2)
Cond_2808_0_insert_GT1(TRUE, x0, x1, x2) → 2923_1_insert_InvokeMethod(2808_0_insert_GT(x0, x2))
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT2(x1 < x0, x0, x1)
Cond_2808_0_insert_GT2(TRUE, x0, x1) → 3012_0_insert_Return
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT3(x1 >= x0, x0, x1)
Cond_2808_0_insert_GT3(TRUE, x0, x1) → 3012_0_insert_Return
2923_1_insert_InvokeMethod(3012_0_insert_Return) → 3012_0_insert_Return

The integer pair graph contains the following rules and edges:
(0): 2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], x1[0]) → COND_2756_1_CREATETREE_INVOKEMETHOD(x3[0] > -1 && x1[0] > -1 && x0[0] > x1[0] + 1, 3012_0_insert_Return, x0[0], x1[0], x3[0])
(1): COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[1], x1[1], x3[1]) → 2756_1_CREATETREE_INVOKEMETHOD(2756_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 (2756_0_insert_Load(x3[1]) →* 3012_0_insert_Returnx0[1]* x0[0]x1[1] + 1* x1[0])



The set Q consists of the following terms:
2756_0_insert_Load(x0)
2808_0_insert_GT(x0, x1)
Cond_2808_0_insert_GT(TRUE, x0, x1, x2)
Cond_2808_0_insert_GT1(TRUE, x0, x1, x2)
Cond_2808_0_insert_GT2(TRUE, x0, x1)
Cond_2808_0_insert_GT3(TRUE, x0, x1)
2923_1_insert_InvokeMethod(3012_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@6af39445 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 2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0, x1) → COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1))), 3012_0_insert_Return, x0, x1, x3) the following chains were created:
  • We consider the chain COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[1], x1[1], x3[1]) → 2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1)), 2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], x1[0]) → COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0]), COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[1], x1[1], x3[1]) → 2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1)) which results in the following constraint:

    (1)    (2756_0_insert_Load(x3[1])=3012_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]12756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], x1[0])≥NonInfC∧2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], x1[0])≥COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0])∧(UIncreasing(COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_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)    (2756_0_insert_Load(x3[1])=3012_0_insert_Return>(x0[0], +(+(x1[1], 1), 1))=TRUE>(x3[0], -1)=TRUE>(+(x1[1], 1), -1)=TRUE2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], +(x1[1], 1))≥NonInfC∧2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], +(x1[1], 1))≥COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(+(x1[1], 1), -1)), >(x0[0], +(+(x1[1], 1), 1))), 3012_0_insert_Return, x0[0], +(x1[1], 1), x3[0])∧(UIncreasing(COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0])), ≥))



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

    (3)    (2808_0_insert_GT(x0, x1)=3012_0_insert_Return>(x0[0], +(+(x1[1], 1), 1))=TRUE>(x3[0], -1)=TRUE>(+(x1[1], 1), -1)=TRUE2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], +(x1[1], 1))≥NonInfC∧2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], +(x1[1], 1))≥COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(+(x1[1], 1), -1)), >(x0[0], +(+(x1[1], 1), 1))), 3012_0_insert_Return, x0[0], +(x1[1], 1), x3[0])∧(UIncreasing(COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_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_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(-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_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(-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_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(-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_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(-1)Bound*bni_43 + (3)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_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(-1)Bound*bni_43 + (3)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_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(-1)Bound*bni_43 + (3)bni_43] + [bni_43]x0[0] ≥ 0∧[(-1)bso_44] ≥ 0)







For Pair COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0, x1, x3) → 2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3), x0, +(x1, 1)) the following chains were created:
  • We consider the chain 2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], x1[0]) → COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0]), COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[1], x1[1], x3[1]) → 2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1)), 2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], x1[0]) → COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_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]2756_0_insert_Load(x3[1])=3012_0_insert_Returnx0[1]=x0[0]1+(x1[1], 1)=x1[0]1COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[1], x1[1], x3[1])≥NonInfC∧COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[1], x1[1], x3[1])≥2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))∧(UIncreasing(2756_1_CREATETREE_INVOKEMETHOD(2756_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)    (2756_0_insert_Load(x3[0])=3012_0_insert_Return>(x0[0], +(x1[0], 1))=TRUE>(x3[0], -1)=TRUE>(x1[0], -1)=TRUECOND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[0], x1[0], x3[0])≥NonInfC∧COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[0], x1[0], x3[0])≥2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[0]), x0[0], +(x1[0], 1))∧(UIncreasing(2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥))



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

    (12)    (2808_0_insert_GT(x2, x3)=3012_0_insert_Return>(x0[0], +(x1[0], 1))=TRUE>(x2, -1)=TRUE>(x1[0], -1)=TRUECOND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[0], x1[0], x2)≥NonInfC∧COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[0], x1[0], x2)≥2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x2), x0[0], +(x1[0], 1))∧(UIncreasing(2756_1_CREATETREE_INVOKEMETHOD(2756_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(2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥)∧[bni_45 + (-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(2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥)∧[bni_45 + (-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(2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥)∧[bni_45 + (-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(2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥)∧[(3)bni_45 + (-1)Bound*bni_45] + [bni_45]x0[0] ≥ 0∧[1 + (-1)bso_46] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0, x1) → COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3, -1), >(x1, -1)), >(x0, +(x1, 1))), 3012_0_insert_Return, x0, x1, x3)
    • (x0[0] ≥ 0∧x3[0] ≥ 0∧[-1]x1[1] + [1] ≥ 0∧x1[1] ≥ 0 ⇒ (UIncreasing(COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(-1)Bound*bni_43 + (3)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_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0])), ≥)∧[(-1)Bound*bni_43 + (3)bni_43] + [bni_43]x0[0] ≥ 0∧[(-1)bso_44] ≥ 0)

  • COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0, x1, x3) → 2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3), x0, +(x1, 1))
    • (x0[0] ≥ 0∧x2 ≥ 0∧x1[0] ≥ 0 ⇒ (UIncreasing(2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))), ≥)∧[(3)bni_45 + (-1)Bound*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(2756_0_insert_Load(x1)) = [-1]   
POL(2808_0_insert_GT(x1, x2)) = [-1]   
POL(Cond_2808_0_insert_GT(x1, x2, x3, x4)) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(2923_1_insert_InvokeMethod(x1)) = [-1]   
POL(Cond_2808_0_insert_GT1(x1, x2, x3, x4)) = [-1]   
POL(>=(x1, x2)) = [-1]   
POL(Cond_2808_0_insert_GT2(x1, x2, x3)) = [-1]   
POL(3012_0_insert_Return) = [-1]   
POL(Cond_2808_0_insert_GT3(x1, x2, x3)) = [-1]   
POL(2756_1_CREATETREE_INVOKEMETHOD(x1, x2, x3)) = [-1]x3 + x2 + [-1]x1   
POL(COND_2756_1_CREATETREE_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1]x4 + x3 + [-1]x2 + [-1]x1   
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_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[1], x1[1], x3[1]) → 2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))

The following pairs are in Pbound:

2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], x1[0]) → COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_0_insert_Return, x0[0], x1[0], x3[0])
COND_2756_1_CREATETREE_INVOKEMETHOD(TRUE, 3012_0_insert_Return, x0[1], x1[1], x3[1]) → 2756_1_CREATETREE_INVOKEMETHOD(2756_0_insert_Load(x3[1]), x0[1], +(x1[1], 1))

The following pairs are in P:

2756_1_CREATETREE_INVOKEMETHOD(3012_0_insert_Return, x0[0], x1[0]) → COND_2756_1_CREATETREE_INVOKEMETHOD(&&(&&(>(x3[0], -1), >(x1[0], -1)), >(x0[0], +(x1[0], 1))), 3012_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
2756_0_insert_Load(x0)12808_0_insert_GT(x0, x1)1
2808_0_insert_GT(x0, x1)1Cond_2808_0_insert_GT(<(x1, x0), x0, x1, x2)1
2808_0_insert_GT(x0, x1)1Cond_2808_0_insert_GT1(>=(x1, x0), x0, x1, x2)1
2808_0_insert_GT(x0, x1)1Cond_2808_0_insert_GT2(<(x1, x0), x0, x1)1
2808_0_insert_GT(x0, x1)1Cond_2808_0_insert_GT3(>=(x1, x0), x0, x1)1
Cond_2808_0_insert_GT(TRUE, x0, x1, x2)12923_1_insert_InvokeMethod(2808_0_insert_GT(x0, x2))1
Cond_2808_0_insert_GT1(TRUE, x0, x1, x2)12923_1_insert_InvokeMethod(2808_0_insert_GT(x0, x2))1
2923_1_insert_InvokeMethod(3012_0_insert_Return)13012_0_insert_Return1
Cond_2808_0_insert_GT2(TRUE, x0, x1)13012_0_insert_Return1
Cond_2808_0_insert_GT3(TRUE, x0, x1)13012_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:
2756_0_insert_Load(x0) → 2808_0_insert_GT(x0, x1)
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT(x1 < x0, x0, x1, x2)
Cond_2808_0_insert_GT(TRUE, x0, x1, x2) → 2923_1_insert_InvokeMethod(2808_0_insert_GT(x0, x2))
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT1(x1 >= x0, x0, x1, x2)
Cond_2808_0_insert_GT1(TRUE, x0, x1, x2) → 2923_1_insert_InvokeMethod(2808_0_insert_GT(x0, x2))
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT2(x1 < x0, x0, x1)
Cond_2808_0_insert_GT2(TRUE, x0, x1) → 3012_0_insert_Return
2808_0_insert_GT(x0, x1) → Cond_2808_0_insert_GT3(x1 >= x0, x0, x1)
Cond_2808_0_insert_GT3(TRUE, x0, x1) → 3012_0_insert_Return
2923_1_insert_InvokeMethod(3012_0_insert_Return) → 3012_0_insert_Return

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


The set Q consists of the following terms:
2756_0_insert_Load(x0)
2808_0_insert_GT(x0, x1)
Cond_2808_0_insert_GT(TRUE, x0, x1, x2)
Cond_2808_0_insert_GT1(TRUE, x0, x1, x2)
Cond_2808_0_insert_GT2(TRUE, x0, x1)
Cond_2808_0_insert_GT3(TRUE, x0, x1)
2923_1_insert_InvokeMethod(3012_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