### (0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_16 (Sun Microsystems Inc.) Main-Class: Count
`public class Count {  public static void main(String[] args) {    Random.args = args;    Tree tree = Tree.createTree();    int c = count(tree);  }  public static Tree flatten(Tree start) {    Tree result = null;    Tree s,t,u;    while (start != null) {      if (start.left == null) {        result = new Tree(null,result);        start = start.right;      }      else {        s = start.left.left;        t = start.left.right;        u = start.right;        start = new Tree(s, new Tree(t,u));      }    }    return result;  }  public static int count(Tree start) {    int res = 0;    while (start != null) {      if (start.left == null) {        res++;        start = start.right;      }      else {        start = flatten(start);          }    }    return res;  }}public class Random {  static String[] args;  static int index = 0;  public static int random() {    String string = args[index];    index++;    return string.length();  }}public class Tree {  Tree left;  Tree right;  Object value;  public Tree(Tree l, Tree r) {    this.left = l;    this.right = r;  }  public Tree() {  }  public static Tree createNode() {    Tree result = new Tree();    result.value = new Object();    return result;  }  public static Tree createTree() {    int counter = Random.random();    if (counter == 0) {      return null;    }    Tree result = createNode();    Tree t = result;    while (counter > 0) {      int branch = Random.random();      if (branch > 0) {        if (t.left == null) {          t.left = createNode();          t = result;        } else {          t = t.left;        }      } else {        if (t.right == null) {          t.right = createNode();          t = result;        } else {          t = t.right;        }      }      counter--;    }    return result;  }  public static void main(String[] args) {    Random.args = args;    createTree();  }}`

### (1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

### (2) Obligation:

FIGraph based on JBC Program:
Graph of 750 nodes with 2 SCCs.

### (3) FIGtoITRSProof (SOUND transformation)

Transformed FIGraph to ITRS rules

### (5) Obligation:

ITRS 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 TRS R consists of the following rules:
Load4124(o3879, o3878, i341) → NULL4222(o3879, o3878, i341, o3878)
NULL4222(o3956, java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0, o4301Field1)), o4175)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0, o4301Field1)), o4175))) → Load40400(o3956, java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0, o4301Field1)), o4175)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0, o4301Field1)), o4175)), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0, o4301Field1)), o4175)), NULL)
Store46056(o41578, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o47312, o47313)), o43139)), o41571, o47312) → Load40400(o41578, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(o47312, java.lang.Object(Tree(o47313, o43139)))), o41571)
Load40400(o41578, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o47312, o47313)), o43139)), o41571) → Load40400(o41578, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(o47312, java.lang.Object(Tree(o47313, o43139)))), o41571)
Load40400(o41578, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(NULL, o43139)), o41571) → Load40400(o41578, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), o43139, java.lang.Object(Tree(NULL, o41571)))
Load40400(o41578, java.lang.Object(Tree(java.lang.Object(Tree(o43922, o43923)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o43922, o43923)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o43922, o43923)), o41575)), o41571) → Load40400(o41578, java.lang.Object(Tree(java.lang.Object(Tree(o43922, o43923)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o43922, o43923)), o41575)), java.lang.Object(Tree(o43922, java.lang.Object(Tree(o43923, o41575)))), o41571)
FieldAccess40823(java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), o41773, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776))) → Load40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(o45716, java.lang.Object(Tree(o45717, o41776)))), o41773)
Load40540(java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), o41773) → Load40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(o45716, java.lang.Object(Tree(o45717, o41776)))), o41773)
Load40400(o41578, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o49252, o49253)), o43139)), o41571) → Store46056(o41578, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o49252, o49253)), o43139)), o41571, o49252)
Load40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), o41571) → FieldAccess40823(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), o41571, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)))
FieldAccess40823(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184)), o41773, java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184))) → Store46301(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184)), o41773, o49860)
Load40540(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184)), o41773) → Store46301(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184)), o41773, o49860)
Store46301(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o47663, o47664)), o43184)), o41773, o47663) → Load40540(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o47663, java.lang.Object(Tree(o47664, o43184)))), o41773)
FieldAccess40823(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o47663, o47664)), o43184)), o41773, java.lang.Object(Tree(java.lang.Object(Tree(o47663, o47664)), o43184))) → Load40540(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o47663, java.lang.Object(Tree(o47664, o43184)))), o41773)
Load40540(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o47663, o47664)), o43184)), o41773) → Load40540(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o47663, java.lang.Object(Tree(o47664, o43184)))), o41773)
JMP52452(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773))) → Load40540(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773)))
FieldAccess40823(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(NULL, o43184)), o41773, java.lang.Object(Tree(NULL, o43184))) → Load40540(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773)))
Load40540(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(NULL, o43184)), o41773) → Load40540(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773)))
NULL4222(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182))) → Load40540(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), NULL)
Load40540(java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o41775, o41776)), i356, java.lang.Object(Tree(o41775, o41776)), NULL, o41773) → JMP41221(java.lang.Object(Tree(o41775, o41776)), o41773, i356)
JMP41221(o41578, o41571, i356) → Load4124(o41578, o41571, i356)
Load40400(o41578, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), NULL, o41571) → Load4124(o41578, o41571, i356)
JMP5284(o3956, o4175, i426) → Load4124(o3956, o4175, i426)
NULL4222(o3956, java.lang.Object(Tree(NULL, o4175)), i356, java.lang.Object(Tree(NULL, o4175))) → Load4124(o3956, o4175, i356 + 1)
FieldAccess40823(java.lang.Object(Tree(NULL, o41776)), java.lang.Object(Tree(NULL, o41776)), i356, java.lang.Object(Tree(NULL, o41776)), java.lang.Object(Tree(NULL, o41776)), o41773, java.lang.Object(Tree(NULL, o41776))) → JMP52452(java.lang.Object(Tree(NULL, o41776)), java.lang.Object(Tree(NULL, o41776)), i356, java.lang.Object(Tree(NULL, o41776)), o41776, java.lang.Object(Tree(NULL, o41773)))
Load40540(java.lang.Object(Tree(NULL, o41776)), java.lang.Object(Tree(NULL, o41776)), i356, java.lang.Object(Tree(NULL, o41776)), java.lang.Object(Tree(NULL, o41776)), o41773) → JMP52452(java.lang.Object(Tree(NULL, o41776)), java.lang.Object(Tree(NULL, o41776)), i356, java.lang.Object(Tree(NULL, o41776)), o41776, java.lang.Object(Tree(NULL, o41773)))
NULL4222(java.lang.Object(Tree(NULL, o4182)), java.lang.Object(Tree(NULL, o4182)), i356, java.lang.Object(Tree(NULL, o4182))) → JMP5284(java.lang.Object(Tree(NULL, o4182)), o4182, i356 + 1)
The set Q consists of the following terms:
NULL4222(x0, java.lang.Object(Tree(java.lang.Object(Tree(x1, x2)), x3)), x4, java.lang.Object(Tree(java.lang.Object(Tree(x1, x2)), x3)))
Store46056(x0, java.lang.Object(Tree(java.lang.Object(Tree(x1, x2)), x3)), x4, java.lang.Object(Tree(java.lang.Object(Tree(x1, x2)), x3)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8, x5)
Load40400(x0, java.lang.Object(Tree(java.lang.Object(Tree(x1, x2)), x3)), x4, java.lang.Object(Tree(java.lang.Object(Tree(x1, x2)), x3)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8)
Load40400(x0, java.lang.Object(Tree(java.lang.Object(Tree(x1, x2)), x3)), x4, java.lang.Object(Tree(java.lang.Object(Tree(x1, x2)), x3)), java.lang.Object(Tree(NULL, x5)), x6)
FieldAccess40823(java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(x0, x1)), x2, java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)))
Load40540(java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(x0, x1)), x2, java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6)
Store46301(java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(x0, x1)), x2, java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6, x3)
JMP52452(java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(x0, x1)), x2, java.lang.Object(Tree(x0, x1)), x3, java.lang.Object(Tree(NULL, x4)))
FieldAccess40823(java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(x0, x1)), x2, java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(NULL, x3)), x4, java.lang.Object(Tree(NULL, x3)))
Load40540(java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(x0, x1)), x2, java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(NULL, x3)), x4)
Load40540(java.lang.Object(Tree(x0, x1)), java.lang.Object(Tree(x0, x1)), x2, java.lang.Object(Tree(x0, x1)), NULL, x3)
JMP41221(x0, x1, x2)
Load40400(x0, java.lang.Object(Tree(java.lang.Object(Tree(x1, x2)), x3)), x4, java.lang.Object(Tree(java.lang.Object(Tree(x1, x2)), x3)), NULL, x5)
JMP5284(x0, x1, x2)
NULL4222(x0, java.lang.Object(Tree(NULL, x1)), x2, java.lang.Object(Tree(NULL, x1)))

### (6) DuplicateArgsRemoverProof (EQUIVALENT transformation)

Some arguments are removed because they only appear as duplicates.
We removed arguments according to the following replacements:

NULL4222(x1, x2, x3, x4) → NULL4222(x1, x3, x4)
JMP52452(x1, x2, x3, x4, x5, x6) → JMP52452(x3, x4, x5, x6)
FieldAccess40823(x1, x2, x3, x4, x5, x6, x7) → FieldAccess40823(x3, x4, x6, x7)
Load40400(x1, x2, x3, x4, x5, x6) → Load40400(x1, x3, x4, x5, x6)
Store46301(x1, x2, x3, x4, x5, x6, x7) → Store46301(x3, x4, x5, x6, x7)
Store46056(x1, x2, x3, x4, x5, x6, x7) → Store46056(x1, x3, x4, x5, x6, x7)

### (7) Obligation:

ITRS 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 TRS R consists of the following rules:
Load4124(o3879, o3878, i341) → NULL4222(o3879, i341, o3878)
NULL4222(o3956, i356, java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0, o4301Field1)), o4175))) → Load40400(o3956, i356, java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0, o4301Field1)), o4175)), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0, o4301Field1)), o4175)), NULL)
Store46056(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o47312, o47313)), o43139)), o41571, o47312) → Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(o47312, java.lang.Object(Tree(o47313, o43139)))), o41571)
Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o47312, o47313)), o43139)), o41571) → Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(o47312, java.lang.Object(Tree(o47313, o43139)))), o41571)
Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(NULL, o43139)), o41571) → Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), o43139, java.lang.Object(Tree(NULL, o41571)))
Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o43922, o43923)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o43922, o43923)), o41575)), o41571) → Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o43922, o43923)), o41575)), java.lang.Object(Tree(o43922, java.lang.Object(Tree(o43923, o41575)))), o41571)
FieldAccess40823(i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), o41773, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776))) → Load40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(o45716, java.lang.Object(Tree(o45717, o41776)))), o41773)
Load40540(i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), o41773) → Load40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(o45716, java.lang.Object(Tree(o45717, o41776)))), o41773)
Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o49252, o49253)), o43139)), o41571) → Store46056(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o49252, o49253)), o43139)), o41571, o49252)
Load40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), o41571) → FieldAccess40823(i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), o41571, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)))
FieldAccess40823(i356, java.lang.Object(Tree(o41775, o41776)), o41773, java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184))) → Store46301(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184)), o41773, o49860)
Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184)), o41773) → Store46301(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184)), o41773, o49860)
Store46301(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o47663, o47664)), o43184)), o41773, o47663) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o47663, java.lang.Object(Tree(o47664, o43184)))), o41773)
FieldAccess40823(i356, java.lang.Object(Tree(o41775, o41776)), o41773, java.lang.Object(Tree(java.lang.Object(Tree(o47663, o47664)), o43184))) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o47663, java.lang.Object(Tree(o47664, o43184)))), o41773)
Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o47663, o47664)), o43184)), o41773) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o47663, java.lang.Object(Tree(o47664, o43184)))), o41773)
JMP52452(i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773))) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773)))
FieldAccess40823(i356, java.lang.Object(Tree(o41775, o41776)), o41773, java.lang.Object(Tree(NULL, o43184))) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773)))
Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(NULL, o43184)), o41773) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773)))
NULL4222(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182))) → Load40540(i356, java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), NULL)
Load40540(i356, java.lang.Object(Tree(o41775, o41776)), NULL, o41773) → JMP41221(java.lang.Object(Tree(o41775, o41776)), o41773, i356)
JMP41221(o41578, o41571, i356) → Load4124(o41578, o41571, i356)
JMP5284(o3956, o4175, i426) → Load4124(o3956, o4175, i426)
NULL4222(o3956, i356, java.lang.Object(Tree(NULL, o4175))) → Load4124(o3956, o4175, i356 + 1)
FieldAccess40823(i356, java.lang.Object(Tree(NULL, o41776)), o41773, java.lang.Object(Tree(NULL, o41776))) → JMP52452(i356, java.lang.Object(Tree(NULL, o41776)), o41776, java.lang.Object(Tree(NULL, o41773)))
Load40540(i356, java.lang.Object(Tree(NULL, o41776)), java.lang.Object(Tree(NULL, o41776)), o41773) → JMP52452(i356, java.lang.Object(Tree(NULL, o41776)), o41776, java.lang.Object(Tree(NULL, o41773)))
NULL4222(java.lang.Object(Tree(NULL, o4182)), i356, java.lang.Object(Tree(NULL, o4182))) → JMP5284(java.lang.Object(Tree(NULL, o4182)), o4182, i356 + 1)
The set Q consists of the following terms:
NULL4222(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)))
Store46056(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8, x5)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(NULL, x5)), x6)
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5)), x6)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6)
Store46301(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6, x3)
JMP52452(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(NULL, x3)), x4)
JMP41221(x0, x1, x2)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), NULL, x5)
JMP5284(x0, x1, x2)
NULL4222(x0, x1, java.lang.Object(Tree(NULL, x2)))

### (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:
Load4124(o3879, o3878, i341) → NULL4222(o3879, i341, o3878)
NULL4222(o3956, i356, java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0, o4301Field1)), o4175))) → Load40400(o3956, i356, java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0, o4301Field1)), o4175)), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0, o4301Field1)), o4175)), NULL)
Store46056(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o47312, o47313)), o43139)), o41571, o47312) → Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(o47312, java.lang.Object(Tree(o47313, o43139)))), o41571)
Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o47312, o47313)), o43139)), o41571) → Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(o47312, java.lang.Object(Tree(o47313, o43139)))), o41571)
Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(NULL, o43139)), o41571) → Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), o43139, java.lang.Object(Tree(NULL, o41571)))
Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o43922, o43923)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o43922, o43923)), o41575)), o41571) → Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o43922, o43923)), o41575)), java.lang.Object(Tree(o43922, java.lang.Object(Tree(o43923, o41575)))), o41571)
FieldAccess40823(i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), o41773, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776))) → Load40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(o45716, java.lang.Object(Tree(o45717, o41776)))), o41773)
Load40540(i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), o41773) → Load40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o45716, o45717)), o41776)), java.lang.Object(Tree(o45716, java.lang.Object(Tree(o45717, o41776)))), o41773)
Load40400(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o49252, o49253)), o43139)), o41571) → Store46056(o41578, i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o49252, o49253)), o43139)), o41571, o49252)
Load40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), o41571) → FieldAccess40823(i356, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)), o41571, java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0, o41574Field1)), o41575)))
FieldAccess40823(i356, java.lang.Object(Tree(o41775, o41776)), o41773, java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184))) → Store46301(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184)), o41773, o49860)
Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184)), o41773) → Store46301(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o49860, o49861)), o43184)), o41773, o49860)
Store46301(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o47663, o47664)), o43184)), o41773, o47663) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o47663, java.lang.Object(Tree(o47664, o43184)))), o41773)
FieldAccess40823(i356, java.lang.Object(Tree(o41775, o41776)), o41773, java.lang.Object(Tree(java.lang.Object(Tree(o47663, o47664)), o43184))) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o47663, java.lang.Object(Tree(o47664, o43184)))), o41773)
Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(java.lang.Object(Tree(o47663, o47664)), o43184)), o41773) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(o47663, java.lang.Object(Tree(o47664, o43184)))), o41773)
JMP52452(i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773))) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773)))
FieldAccess40823(i356, java.lang.Object(Tree(o41775, o41776)), o41773, java.lang.Object(Tree(NULL, o43184))) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773)))
Load40540(i356, java.lang.Object(Tree(o41775, o41776)), java.lang.Object(Tree(NULL, o43184)), o41773) → Load40540(i356, java.lang.Object(Tree(o41775, o41776)), o43184, java.lang.Object(Tree(NULL, o41773)))
NULL4222(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), i356, java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182))) → Load40540(i356, java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0, o4323Field1)), o4182)), NULL)
Load40540(i356, java.lang.Object(Tree(o41775, o41776)), NULL, o41773) → JMP41221(java.lang.Object(Tree(o41775, o41776)), o41773, i356)
JMP41221(o41578, o41571, i356) → Load4124(o41578, o41571, i356)
JMP5284(o3956, o4175, i426) → Load4124(o3956, o4175, i426)
NULL4222(o3956, i356, java.lang.Object(Tree(NULL, o4175))) → Load4124(o3956, o4175, i356 + 1)
FieldAccess40823(i356, java.lang.Object(Tree(NULL, o41776)), o41773, java.lang.Object(Tree(NULL, o41776))) → JMP52452(i356, java.lang.Object(Tree(NULL, o41776)), o41776, java.lang.Object(Tree(NULL, o41773)))
Load40540(i356, java.lang.Object(Tree(NULL, o41776)), java.lang.Object(Tree(NULL, o41776)), o41773) → JMP52452(i356, java.lang.Object(Tree(NULL, o41776)), o41776, java.lang.Object(Tree(NULL, o41773)))
NULL4222(java.lang.Object(Tree(NULL, o4182)), i356, java.lang.Object(Tree(NULL, o4182))) → JMP5284(java.lang.Object(Tree(NULL, o4182)), o4182, i356 + 1)

The integer pair graph contains the following rules and edges:
(0): LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
(1): NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
(2): STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
(3): LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
(4): LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
(5): LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
(6): FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
(7): LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
(8): LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
(9): LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
(10): FIELDACCESS40823(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), o41773[10], java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10]))) → STORE46301(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10])), o41773[10], o49860[10])
(11): LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
(12): STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
(13): FIELDACCESS40823(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), o41773[13], java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13]))) → LOAD40540(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))), o41773[13])
(14): LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
(15): JMP52452'(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15]))) → LOAD40540(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15])))
(16): FIELDACCESS40823(i356[16], java.lang.Object(Tree(o41775[16], o41776[16])), o41773[16], java.lang.Object(Tree(NULL, o43184[16]))) → LOAD40540(i356[16], java.lang.Object(Tree(o41775[16], o41776[16])), o43184[16], java.lang.Object(Tree(NULL, o41773[16])))
(17): LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
(18): NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
(19): LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
(20): JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
(21): LOAD40400(o41578[21], i356[21], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])), NULL, o41571[21]) → LOAD4124(o41578[21], o41571[21], i356[21])
(22): JMP5284'(o3956[22], o4175[22], i426[22]) → LOAD4124(o3956[22], o4175[22], i426[22])
(23): NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], i356[23] + 1)
(24): FIELDACCESS40823(i356[24], java.lang.Object(Tree(NULL, o41776[24])), o41773[24], java.lang.Object(Tree(NULL, o41776[24]))) → JMP52452'(i356[24], java.lang.Object(Tree(NULL, o41776[24])), o41776[24], java.lang.Object(Tree(NULL, o41773[24])))
(25): LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
(26): NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], i356[26] + 1)

(0) -> (1), if ((o3878[0]* java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])))∧(o3879[0]* o3956[1])∧(i341[0]* i356[1]))

(0) -> (18), if ((o3879[0]* java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])))∧(i341[0]* i356[18])∧(o3878[0]* java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))))

(0) -> (23), if ((o3878[0]* java.lang.Object(Tree(NULL, o4175[23])))∧(i341[0]* i356[23])∧(o3879[0]* o3956[23]))

(0) -> (26), if ((i341[0]* i356[26])∧(o3878[0]* java.lang.Object(Tree(NULL, o4182[26])))∧(o3879[0]* java.lang.Object(Tree(NULL, o4182[26]))))

(1) -> (3), if ((NULL* o41571[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])))∧(i356[1]* i356[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])))∧(o3956[1]* o41578[3]))

(1) -> (4), if ((o3956[1]* o41578[4])∧(i356[1]* i356[4])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(NULL, o43139[4])))∧(NULL* o41571[4])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4]))))

(1) -> (5), if ((NULL* o41571[5])∧(i356[1]* i356[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(o3956[1]* o41578[5]))

(1) -> (8), if ((java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(o3956[1]* o41578[8])∧(i356[1]* i356[8])∧(NULL* o41571[8]))

(1) -> (9), if ((i356[1]* i356[9])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(o3956[1]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(NULL* o41571[9]))

(1) -> (21), if ((o3956[1]* o41578[21])∧(NULL* o41571[21])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* NULL)∧(i356[1]* i356[21]))

(2) -> (3), if ((i356[2]* i356[3])∧(o41571[2]* o41571[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])))∧(o41578[2]* o41578[3])∧(java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3]))))

(2) -> (4), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])))∧(o41571[2]* o41571[4])∧(java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* java.lang.Object(Tree(NULL, o43139[4])))∧(i356[2]* i356[4])∧(o41578[2]* o41578[4]))

(2) -> (5), if ((o41571[2]* o41571[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(o41578[2]* o41578[5])∧(i356[2]* i356[5]))

(2) -> (8), if ((java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(o41578[2]* o41578[8])∧(o41571[2]* o41571[8])∧(i356[2]* i356[8]))

(2) -> (9), if ((i356[2]* i356[9])∧(o41571[2]* o41571[9])∧(o41578[2]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9]))))

(2) -> (21), if ((o41578[2]* o41578[21])∧(o41571[2]* o41571[21])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* NULL)∧(i356[2]* i356[21]))

(3) -> (3), if ((o41571[3]* o41571[3]')∧(java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3]', o47313[3]')), o43139[3]')))∧(o41578[3]* o41578[3]')∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3]', o41574Field1[3]')), o41575[3]')))∧(i356[3]* i356[3]'))

(3) -> (4), if ((o41578[3]* o41578[4])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])))∧(i356[3]* i356[4])∧(java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* java.lang.Object(Tree(NULL, o43139[4])))∧(o41571[3]* o41571[4]))

(3) -> (5), if ((o41571[3]* o41571[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(i356[3]* i356[5])∧(java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(o41578[3]* o41578[5]))

(3) -> (8), if ((java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(o41578[3]* o41578[8])∧(i356[3]* i356[8])∧(o41571[3]* o41571[8]))

(3) -> (9), if ((o41571[3]* o41571[9])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(o41578[3]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(i356[3]* i356[9])∧(java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9]))))

(3) -> (21), if ((o41571[3]* o41571[21])∧(java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* NULL)∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(o41578[3]* o41578[21])∧(i356[3]* i356[21]))

(4) -> (3), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])))∧(i356[4]* i356[3])∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[3])∧(o41578[4]* o41578[3]))

(4) -> (4), if ((o43139[4]* java.lang.Object(Tree(NULL, o43139[4]')))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[4]')∧(o41578[4]* o41578[4]')∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4]', o41574Field1[4]')), o41575[4]')))∧(i356[4]* i356[4]'))

(4) -> (5), if ((i356[4]* i356[5])∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(o41578[4]* o41578[5]))

(4) -> (8), if ((i356[4]* i356[8])∧(o41578[4]* o41578[8])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[8]))

(4) -> (9), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(o41578[4]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[9])∧(i356[4]* i356[9]))

(4) -> (21), if ((o43139[4]* NULL)∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[21])∧(i356[4]* i356[21])∧(o41578[4]* o41578[21]))

(5) -> (3), if ((java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])))∧(o41571[5]* o41571[3])∧(i356[5]* i356[3])∧(o41578[5]* o41578[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3]))))

(5) -> (4), if ((o41571[5]* o41571[4])∧(java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* java.lang.Object(Tree(NULL, o43139[4])))∧(o41578[5]* o41578[4])∧(java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])))∧(i356[5]* i356[4]))

(5) -> (5), if ((java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5]', o43923[5]')), o41575[5]')))∧(o41578[5]* o41578[5]')∧(i356[5]* i356[5]')∧(o41571[5]* o41571[5]')∧(java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5]', o43923[5]')), o41575[5]'))))

(5) -> (8), if ((java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(i356[5]* i356[8])∧(o41578[5]* o41578[8])∧(o41571[5]* o41571[8])∧(java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8]))))

(5) -> (9), if ((o41578[5]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(i356[5]* i356[9])∧(o41571[5]* o41571[9]))

(5) -> (21), if ((o41571[5]* o41571[21])∧(o41578[5]* o41578[21])∧(java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* NULL)∧(i356[5]* i356[21]))

(6) -> (3), if ((java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])))∧(o41773[6]* o41571[3])∧(i356[6]* i356[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[3]))

(6) -> (4), if ((java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* java.lang.Object(Tree(NULL, o43139[4])))∧(o41773[6]* o41571[4])∧(i356[6]* i356[4])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[4]))

(6) -> (5), if ((java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[5])∧(java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(o41773[6]* o41571[5])∧(i356[6]* i356[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5]))))

(6) -> (8), if ((i356[6]* i356[8])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(o41773[6]* o41571[8])∧(java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[8]))

(6) -> (9), if ((java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(i356[6]* i356[9])∧(o41773[6]* o41571[9])∧(java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9]))))

(6) -> (21), if ((o41773[6]* o41571[21])∧(java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* NULL)∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[21])∧(i356[6]* i356[21])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21]))))

(7) -> (3), if ((o41773[7]* o41571[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])))∧(i356[7]* i356[3])∧(java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[3]))

(7) -> (4), if ((o41773[7]* o41571[4])∧(i356[7]* i356[4])∧(java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* java.lang.Object(Tree(NULL, o43139[4])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[4]))

(7) -> (5), if ((o41773[7]* o41571[5])∧(java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(i356[7]* i356[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[5]))

(7) -> (8), if ((java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[8])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(o41773[7]* o41571[8])∧(i356[7]* i356[8]))

(7) -> (9), if ((java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(o41773[7]* o41571[9])∧(i356[7]* i356[9])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9]))))

(7) -> (21), if ((java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[21])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(o41773[7]* o41571[21])∧(i356[7]* i356[21])∧(java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* NULL))

(8) -> (2), if ((o41571[8]* o41571[2])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])))∧(o49252[8]* o47312[2])∧(o41578[8]* o41578[2])∧(java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])))∧(i356[8]* i356[2]))

(9) -> (6), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])))∧(o41571[9]* o41773[6])∧(i356[9]* i356[6]))

(9) -> (10), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(o41775[10], o41776[10])))∧(o41571[9]* o41773[10])∧(i356[9]* i356[10])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10]))))

(9) -> (13), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13])))∧(i356[9]* i356[13])∧(o41571[9]* o41773[13])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(o41775[13], o41776[13]))))

(9) -> (16), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(o41775[16], o41776[16])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(NULL, o43184[16])))∧(i356[9]* i356[16])∧(o41571[9]* o41773[16]))

(9) -> (24), if ((o41571[9]* o41773[24])∧(i356[9]* i356[24])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(NULL, o41776[24]))))

(10) -> (12), if ((o41773[10]* o41773[12])∧(o49860[10]* o47663[12])∧(java.lang.Object(Tree(o41775[10], o41776[10])) →* java.lang.Object(Tree(o41775[12], o41776[12])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])))∧(i356[10]* i356[12]))

(11) -> (12), if ((java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])))∧(o49860[11]* o47663[12])∧(java.lang.Object(Tree(o41775[11], o41776[11])) →* java.lang.Object(Tree(o41775[12], o41776[12])))∧(o41773[11]* o41773[12])∧(i356[11]* i356[12]))

(12) -> (7), if ((i356[12]* i356[7])∧(java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(o41773[12]* o41773[7]))

(12) -> (11), if ((java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(o41775[11], o41776[11])))∧(i356[12]* i356[11])∧(o41773[12]* o41773[11])∧(java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11]))))

(12) -> (14), if ((java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(o41773[12]* o41773[14])∧(i356[12]* i356[14]))

(12) -> (17), if ((java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(o41775[17], o41776[17])))∧(o41773[12]* o41773[17])∧(java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* java.lang.Object(Tree(NULL, o43184[17])))∧(i356[12]* i356[17]))

(12) -> (19), if ((java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* NULL)∧(java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(o41773[12]* o41773[19])∧(i356[12]* i356[19]))

(12) -> (25), if ((i356[12]* i356[25])∧(o41773[12]* o41773[25])∧(java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* java.lang.Object(Tree(NULL, o41776[25])))∧(java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(NULL, o41776[25]))))

(13) -> (7), if ((i356[13]* i356[7])∧(java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(o41773[13]* o41773[7]))

(13) -> (11), if ((o41773[13]* o41773[11])∧(i356[13]* i356[11])∧(java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(o41775[11], o41776[11]))))

(13) -> (14), if ((java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(o41773[13]* o41773[14])∧(i356[13]* i356[14])∧(java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14]))))

(13) -> (17), if ((java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* java.lang.Object(Tree(NULL, o43184[17])))∧(i356[13]* i356[17])∧(o41773[13]* o41773[17])∧(java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(o41775[17], o41776[17]))))

(13) -> (19), if ((java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(i356[13]* i356[19])∧(java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* NULL)∧(o41773[13]* o41773[19]))

(13) -> (25), if ((java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* java.lang.Object(Tree(NULL, o41776[25])))∧(java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(NULL, o41776[25])))∧(o41773[13]* o41773[25])∧(i356[13]* i356[25]))

(14) -> (7), if ((java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(i356[14]* i356[7])∧(o41773[14]* o41773[7])∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7]))))

(14) -> (11), if ((i356[14]* i356[11])∧(java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(o41773[14]* o41773[11])∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(o41775[11], o41776[11]))))

(14) -> (14), if ((java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14]', o47664[14]')), o43184[14]')))∧(i356[14]* i356[14]')∧(o41773[14]* o41773[14]')∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(o41775[14]', o41776[14]'))))

(14) -> (17), if ((o41773[14]* o41773[17])∧(i356[14]* i356[17])∧(java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* java.lang.Object(Tree(NULL, o43184[17])))∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(o41775[17], o41776[17]))))

(14) -> (19), if ((java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* NULL)∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(o41773[14]* o41773[19])∧(i356[14]* i356[19]))

(14) -> (25), if ((java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* java.lang.Object(Tree(NULL, o41776[25])))∧(o41773[14]* o41773[25])∧(i356[14]* i356[25])∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(NULL, o41776[25]))))

(15) -> (7), if ((o43184[15]* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[7])∧(java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(i356[15]* i356[7]))

(15) -> (11), if ((o43184[15]* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[11])∧(java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(o41775[11], o41776[11])))∧(i356[15]* i356[11]))

(15) -> (14), if ((o43184[15]* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[14])∧(java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(i356[15]* i356[14]))

(15) -> (17), if ((o43184[15]* java.lang.Object(Tree(NULL, o43184[17])))∧(java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(o41775[17], o41776[17])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[17])∧(i356[15]* i356[17]))

(15) -> (19), if ((java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[19])∧(o43184[15]* NULL)∧(i356[15]* i356[19]))

(15) -> (25), if ((o43184[15]* java.lang.Object(Tree(NULL, o41776[25])))∧(i356[15]* i356[25])∧(java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(NULL, o41776[25])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[25]))

(16) -> (7), if ((i356[16]* i356[7])∧(o43184[16]* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[7])∧(java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7]))))

(16) -> (11), if ((java.lang.Object(Tree(NULL, o41773[16])) →* o41773[11])∧(java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(o41775[11], o41776[11])))∧(o43184[16]* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(i356[16]* i356[11]))

(16) -> (14), if ((java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(i356[16]* i356[14])∧(o43184[16]* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[14]))

(16) -> (17), if ((java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(o41775[17], o41776[17])))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[17])∧(i356[16]* i356[17])∧(o43184[16]* java.lang.Object(Tree(NULL, o43184[17]))))

(16) -> (19), if ((i356[16]* i356[19])∧(java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[19])∧(o43184[16]* NULL))

(16) -> (25), if ((java.lang.Object(Tree(NULL, o41773[16])) →* o41773[25])∧(java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(NULL, o41776[25])))∧(o43184[16]* java.lang.Object(Tree(NULL, o41776[25])))∧(i356[16]* i356[25]))

(17) -> (7), if ((o43184[17]* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(i356[17]* i356[7])∧(java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[7]))

(17) -> (11), if ((o43184[17]* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[11])∧(i356[17]* i356[11])∧(java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(o41775[11], o41776[11]))))

(17) -> (14), if ((java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(o43184[17]* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(i356[17]* i356[14])∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[14]))

(17) -> (17), if ((java.lang.Object(Tree(NULL, o41773[17])) →* o41773[17]')∧(o43184[17]* java.lang.Object(Tree(NULL, o43184[17]')))∧(i356[17]* i356[17]')∧(java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(o41775[17]', o41776[17]'))))

(17) -> (19), if ((o43184[17]* NULL)∧(i356[17]* i356[19])∧(java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[19]))

(17) -> (25), if ((java.lang.Object(Tree(NULL, o41773[17])) →* o41773[25])∧(java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(NULL, o41776[25])))∧(i356[17]* i356[25])∧(o43184[17]* java.lang.Object(Tree(NULL, o41776[25]))))

(18) -> (7), if ((NULL* o41773[7])∧(i356[18]* i356[7])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7]))))

(18) -> (11), if ((java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(NULL* o41773[11])∧(i356[18]* i356[11])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(o41775[11], o41776[11]))))

(18) -> (14), if ((NULL* o41773[14])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(i356[18]* i356[14]))

(18) -> (17), if ((i356[18]* i356[17])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(NULL, o43184[17])))∧(NULL* o41773[17])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(o41775[17], o41776[17]))))

(18) -> (19), if ((i356[18]* i356[19])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* NULL)∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(NULL* o41773[19]))

(18) -> (25), if ((java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(NULL, o41776[25])))∧(NULL* o41773[25])∧(i356[18]* i356[25]))

(19) -> (20), if ((o41773[19]* o41571[20])∧(i356[19]* i356[20])∧(java.lang.Object(Tree(o41775[19], o41776[19])) →* o41578[20]))

(20) -> (0), if ((o41571[20]* o3878[0])∧(i356[20]* i341[0])∧(o41578[20]* o3879[0]))

(21) -> (0), if ((i356[21]* i341[0])∧(o41571[21]* o3878[0])∧(o41578[21]* o3879[0]))

(22) -> (0), if ((i426[22]* i341[0])∧(o4175[22]* o3878[0])∧(o3956[22]* o3879[0]))

(23) -> (0), if ((o3956[23]* o3879[0])∧(i356[23] + 1* i341[0])∧(o4175[23]* o3878[0]))

(24) -> (15), if ((java.lang.Object(Tree(NULL, o41773[24])) →* java.lang.Object(Tree(NULL, o41773[15])))∧(o41776[24]* o43184[15])∧(java.lang.Object(Tree(NULL, o41776[24])) →* java.lang.Object(Tree(o41775[15], o41776[15])))∧(i356[24]* i356[15]))

(25) -> (15), if ((java.lang.Object(Tree(NULL, o41776[25])) →* java.lang.Object(Tree(o41775[15], o41776[15])))∧(java.lang.Object(Tree(NULL, o41773[25])) →* java.lang.Object(Tree(NULL, o41773[15])))∧(i356[25]* i356[15])∧(o41776[25]* o43184[15]))

(26) -> (22), if ((i356[26] + 1* i426[22])∧(o4182[26]* o4175[22])∧(java.lang.Object(Tree(NULL, o4182[26])) →* o3956[22]))

The set Q consists of the following terms:
NULL4222(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)))
Store46056(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8, x5)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(NULL, x5)), x6)
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5)), x6)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6)
Store46301(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6, x3)
JMP52452(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(NULL, x3)), x4)
JMP41221(x0, x1, x2)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), NULL, x5)
JMP5284(x0, x1, x2)
NULL4222(x0, x1, java.lang.Object(Tree(NULL, x2)))

### (10) 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.

### (11) Obligation:

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

The following domains are used:

Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
(1): NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
(2): STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
(3): LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
(4): LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
(5): LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
(6): FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
(7): LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
(8): LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
(9): LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
(10): FIELDACCESS40823(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), o41773[10], java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10]))) → STORE46301(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10])), o41773[10], o49860[10])
(11): LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
(12): STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
(13): FIELDACCESS40823(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), o41773[13], java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13]))) → LOAD40540(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))), o41773[13])
(14): LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
(15): JMP52452'(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15]))) → LOAD40540(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15])))
(16): FIELDACCESS40823(i356[16], java.lang.Object(Tree(o41775[16], o41776[16])), o41773[16], java.lang.Object(Tree(NULL, o43184[16]))) → LOAD40540(i356[16], java.lang.Object(Tree(o41775[16], o41776[16])), o43184[16], java.lang.Object(Tree(NULL, o41773[16])))
(17): LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
(18): NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
(19): LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
(20): JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
(21): LOAD40400(o41578[21], i356[21], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])), NULL, o41571[21]) → LOAD4124(o41578[21], o41571[21], i356[21])
(22): JMP5284'(o3956[22], o4175[22], i426[22]) → LOAD4124(o3956[22], o4175[22], i426[22])
(23): NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], i356[23] + 1)
(24): FIELDACCESS40823(i356[24], java.lang.Object(Tree(NULL, o41776[24])), o41773[24], java.lang.Object(Tree(NULL, o41776[24]))) → JMP52452'(i356[24], java.lang.Object(Tree(NULL, o41776[24])), o41776[24], java.lang.Object(Tree(NULL, o41773[24])))
(25): LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
(26): NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], i356[26] + 1)

(0) -> (1), if ((o3878[0]* java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])))∧(o3879[0]* o3956[1])∧(i341[0]* i356[1]))

(0) -> (18), if ((o3879[0]* java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])))∧(i341[0]* i356[18])∧(o3878[0]* java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))))

(0) -> (23), if ((o3878[0]* java.lang.Object(Tree(NULL, o4175[23])))∧(i341[0]* i356[23])∧(o3879[0]* o3956[23]))

(0) -> (26), if ((i341[0]* i356[26])∧(o3878[0]* java.lang.Object(Tree(NULL, o4182[26])))∧(o3879[0]* java.lang.Object(Tree(NULL, o4182[26]))))

(1) -> (3), if ((NULL* o41571[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])))∧(i356[1]* i356[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])))∧(o3956[1]* o41578[3]))

(1) -> (4), if ((o3956[1]* o41578[4])∧(i356[1]* i356[4])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(NULL, o43139[4])))∧(NULL* o41571[4])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4]))))

(1) -> (5), if ((NULL* o41571[5])∧(i356[1]* i356[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(o3956[1]* o41578[5]))

(1) -> (8), if ((java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(o3956[1]* o41578[8])∧(i356[1]* i356[8])∧(NULL* o41571[8]))

(1) -> (9), if ((i356[1]* i356[9])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(o3956[1]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(NULL* o41571[9]))

(1) -> (21), if ((o3956[1]* o41578[21])∧(NULL* o41571[21])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])) →* NULL)∧(i356[1]* i356[21]))

(2) -> (3), if ((i356[2]* i356[3])∧(o41571[2]* o41571[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])))∧(o41578[2]* o41578[3])∧(java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3]))))

(2) -> (4), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])))∧(o41571[2]* o41571[4])∧(java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* java.lang.Object(Tree(NULL, o43139[4])))∧(i356[2]* i356[4])∧(o41578[2]* o41578[4]))

(2) -> (5), if ((o41571[2]* o41571[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(o41578[2]* o41578[5])∧(i356[2]* i356[5]))

(2) -> (8), if ((java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(o41578[2]* o41578[8])∧(o41571[2]* o41571[8])∧(i356[2]* i356[8]))

(2) -> (9), if ((i356[2]* i356[9])∧(o41571[2]* o41571[9])∧(o41578[2]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9]))))

(2) -> (21), if ((o41578[2]* o41578[21])∧(o41571[2]* o41571[21])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))) →* NULL)∧(i356[2]* i356[21]))

(3) -> (3), if ((o41571[3]* o41571[3]')∧(java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3]', o47313[3]')), o43139[3]')))∧(o41578[3]* o41578[3]')∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3]', o41574Field1[3]')), o41575[3]')))∧(i356[3]* i356[3]'))

(3) -> (4), if ((o41578[3]* o41578[4])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])))∧(i356[3]* i356[4])∧(java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* java.lang.Object(Tree(NULL, o43139[4])))∧(o41571[3]* o41571[4]))

(3) -> (5), if ((o41571[3]* o41571[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(i356[3]* i356[5])∧(java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(o41578[3]* o41578[5]))

(3) -> (8), if ((java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(o41578[3]* o41578[8])∧(i356[3]* i356[8])∧(o41571[3]* o41571[8]))

(3) -> (9), if ((o41571[3]* o41571[9])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(o41578[3]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(i356[3]* i356[9])∧(java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9]))))

(3) -> (21), if ((o41571[3]* o41571[21])∧(java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))) →* NULL)∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(o41578[3]* o41578[21])∧(i356[3]* i356[21]))

(4) -> (3), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])))∧(i356[4]* i356[3])∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[3])∧(o41578[4]* o41578[3]))

(4) -> (4), if ((o43139[4]* java.lang.Object(Tree(NULL, o43139[4]')))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[4]')∧(o41578[4]* o41578[4]')∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4]', o41574Field1[4]')), o41575[4]')))∧(i356[4]* i356[4]'))

(4) -> (5), if ((i356[4]* i356[5])∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(o41578[4]* o41578[5]))

(4) -> (8), if ((i356[4]* i356[8])∧(o41578[4]* o41578[8])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[8]))

(4) -> (9), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(o41578[4]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[9])∧(i356[4]* i356[9]))

(4) -> (21), if ((o43139[4]* NULL)∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[21])∧(i356[4]* i356[21])∧(o41578[4]* o41578[21]))

(5) -> (3), if ((java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])))∧(o41571[5]* o41571[3])∧(i356[5]* i356[3])∧(o41578[5]* o41578[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3]))))

(5) -> (4), if ((o41571[5]* o41571[4])∧(java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* java.lang.Object(Tree(NULL, o43139[4])))∧(o41578[5]* o41578[4])∧(java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])))∧(i356[5]* i356[4]))

(5) -> (5), if ((java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5]', o43923[5]')), o41575[5]')))∧(o41578[5]* o41578[5]')∧(i356[5]* i356[5]')∧(o41571[5]* o41571[5]')∧(java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5]', o43923[5]')), o41575[5]'))))

(5) -> (8), if ((java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(i356[5]* i356[8])∧(o41578[5]* o41578[8])∧(o41571[5]* o41571[8])∧(java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8]))))

(5) -> (9), if ((o41578[5]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(i356[5]* i356[9])∧(o41571[5]* o41571[9]))

(5) -> (21), if ((o41571[5]* o41571[21])∧(o41578[5]* o41578[21])∧(java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))) →* NULL)∧(i356[5]* i356[21]))

(6) -> (3), if ((java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])))∧(o41773[6]* o41571[3])∧(i356[6]* i356[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[3]))

(6) -> (4), if ((java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* java.lang.Object(Tree(NULL, o43139[4])))∧(o41773[6]* o41571[4])∧(i356[6]* i356[4])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[4]))

(6) -> (5), if ((java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[5])∧(java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(o41773[6]* o41571[5])∧(i356[6]* i356[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5]))))

(6) -> (8), if ((i356[6]* i356[8])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(o41773[6]* o41571[8])∧(java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[8]))

(6) -> (9), if ((java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(i356[6]* i356[9])∧(o41773[6]* o41571[9])∧(java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9]))))

(6) -> (21), if ((o41773[6]* o41571[21])∧(java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))) →* NULL)∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[21])∧(i356[6]* i356[21])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21]))))

(7) -> (3), if ((o41773[7]* o41571[3])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])))∧(i356[7]* i356[3])∧(java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[3]))

(7) -> (4), if ((o41773[7]* o41571[4])∧(i356[7]* i356[4])∧(java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* java.lang.Object(Tree(NULL, o43139[4])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[4]))

(7) -> (5), if ((o41773[7]* o41571[5])∧(java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(i356[7]* i356[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[5]))

(7) -> (8), if ((java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[8])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])))∧(java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(o41773[7]* o41571[8])∧(i356[7]* i356[8]))

(7) -> (9), if ((java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(o41773[7]* o41571[9])∧(i356[7]* i356[9])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9]))))

(7) -> (21), if ((java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[21])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])))∧(o41773[7]* o41571[21])∧(i356[7]* i356[21])∧(java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))) →* NULL))

(8) -> (2), if ((o41571[8]* o41571[2])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])) →* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])))∧(o49252[8]* o47312[2])∧(o41578[8]* o41578[2])∧(java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])))∧(i356[8]* i356[2]))

(9) -> (6), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])))∧(o41571[9]* o41773[6])∧(i356[9]* i356[6]))

(9) -> (10), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(o41775[10], o41776[10])))∧(o41571[9]* o41773[10])∧(i356[9]* i356[10])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10]))))

(9) -> (13), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13])))∧(i356[9]* i356[13])∧(o41571[9]* o41773[13])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(o41775[13], o41776[13]))))

(9) -> (16), if ((java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(o41775[16], o41776[16])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(NULL, o43184[16])))∧(i356[9]* i356[16])∧(o41571[9]* o41773[16]))

(9) -> (24), if ((o41571[9]* o41773[24])∧(i356[9]* i356[24])∧(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])) →* java.lang.Object(Tree(NULL, o41776[24]))))

(10) -> (12), if ((o41773[10]* o41773[12])∧(o49860[10]* o47663[12])∧(java.lang.Object(Tree(o41775[10], o41776[10])) →* java.lang.Object(Tree(o41775[12], o41776[12])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])))∧(i356[10]* i356[12]))

(11) -> (12), if ((java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])))∧(o49860[11]* o47663[12])∧(java.lang.Object(Tree(o41775[11], o41776[11])) →* java.lang.Object(Tree(o41775[12], o41776[12])))∧(o41773[11]* o41773[12])∧(i356[11]* i356[12]))

(12) -> (7), if ((i356[12]* i356[7])∧(java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(o41773[12]* o41773[7]))

(12) -> (11), if ((java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(o41775[11], o41776[11])))∧(i356[12]* i356[11])∧(o41773[12]* o41773[11])∧(java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11]))))

(12) -> (14), if ((java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(o41773[12]* o41773[14])∧(i356[12]* i356[14]))

(12) -> (17), if ((java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(o41775[17], o41776[17])))∧(o41773[12]* o41773[17])∧(java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* java.lang.Object(Tree(NULL, o43184[17])))∧(i356[12]* i356[17]))

(12) -> (19), if ((java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* NULL)∧(java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(o41773[12]* o41773[19])∧(i356[12]* i356[19]))

(12) -> (25), if ((i356[12]* i356[25])∧(o41773[12]* o41773[25])∧(java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))) →* java.lang.Object(Tree(NULL, o41776[25])))∧(java.lang.Object(Tree(o41775[12], o41776[12])) →* java.lang.Object(Tree(NULL, o41776[25]))))

(13) -> (7), if ((i356[13]* i356[7])∧(java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(o41773[13]* o41773[7]))

(13) -> (11), if ((o41773[13]* o41773[11])∧(i356[13]* i356[11])∧(java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(o41775[11], o41776[11]))))

(13) -> (14), if ((java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(o41773[13]* o41773[14])∧(i356[13]* i356[14])∧(java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14]))))

(13) -> (17), if ((java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* java.lang.Object(Tree(NULL, o43184[17])))∧(i356[13]* i356[17])∧(o41773[13]* o41773[17])∧(java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(o41775[17], o41776[17]))))

(13) -> (19), if ((java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(i356[13]* i356[19])∧(java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* NULL)∧(o41773[13]* o41773[19]))

(13) -> (25), if ((java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))) →* java.lang.Object(Tree(NULL, o41776[25])))∧(java.lang.Object(Tree(o41775[13], o41776[13])) →* java.lang.Object(Tree(NULL, o41776[25])))∧(o41773[13]* o41773[25])∧(i356[13]* i356[25]))

(14) -> (7), if ((java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(i356[14]* i356[7])∧(o41773[14]* o41773[7])∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7]))))

(14) -> (11), if ((i356[14]* i356[11])∧(java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(o41773[14]* o41773[11])∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(o41775[11], o41776[11]))))

(14) -> (14), if ((java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14]', o47664[14]')), o43184[14]')))∧(i356[14]* i356[14]')∧(o41773[14]* o41773[14]')∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(o41775[14]', o41776[14]'))))

(14) -> (17), if ((o41773[14]* o41773[17])∧(i356[14]* i356[17])∧(java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* java.lang.Object(Tree(NULL, o43184[17])))∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(o41775[17], o41776[17]))))

(14) -> (19), if ((java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* NULL)∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(o41773[14]* o41773[19])∧(i356[14]* i356[19]))

(14) -> (25), if ((java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))) →* java.lang.Object(Tree(NULL, o41776[25])))∧(o41773[14]* o41773[25])∧(i356[14]* i356[25])∧(java.lang.Object(Tree(o41775[14], o41776[14])) →* java.lang.Object(Tree(NULL, o41776[25]))))

(15) -> (7), if ((o43184[15]* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[7])∧(java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(i356[15]* i356[7]))

(15) -> (11), if ((o43184[15]* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[11])∧(java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(o41775[11], o41776[11])))∧(i356[15]* i356[11]))

(15) -> (14), if ((o43184[15]* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[14])∧(java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(i356[15]* i356[14]))

(15) -> (17), if ((o43184[15]* java.lang.Object(Tree(NULL, o43184[17])))∧(java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(o41775[17], o41776[17])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[17])∧(i356[15]* i356[17]))

(15) -> (19), if ((java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[19])∧(o43184[15]* NULL)∧(i356[15]* i356[19]))

(15) -> (25), if ((o43184[15]* java.lang.Object(Tree(NULL, o41776[25])))∧(i356[15]* i356[25])∧(java.lang.Object(Tree(o41775[15], o41776[15])) →* java.lang.Object(Tree(NULL, o41776[25])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[25]))

(16) -> (7), if ((i356[16]* i356[7])∧(o43184[16]* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[7])∧(java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7]))))

(16) -> (11), if ((java.lang.Object(Tree(NULL, o41773[16])) →* o41773[11])∧(java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(o41775[11], o41776[11])))∧(o43184[16]* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(i356[16]* i356[11]))

(16) -> (14), if ((java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(i356[16]* i356[14])∧(o43184[16]* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[14]))

(16) -> (17), if ((java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(o41775[17], o41776[17])))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[17])∧(i356[16]* i356[17])∧(o43184[16]* java.lang.Object(Tree(NULL, o43184[17]))))

(16) -> (19), if ((i356[16]* i356[19])∧(java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[19])∧(o43184[16]* NULL))

(16) -> (25), if ((java.lang.Object(Tree(NULL, o41773[16])) →* o41773[25])∧(java.lang.Object(Tree(o41775[16], o41776[16])) →* java.lang.Object(Tree(NULL, o41776[25])))∧(o43184[16]* java.lang.Object(Tree(NULL, o41776[25])))∧(i356[16]* i356[25]))

(17) -> (7), if ((o43184[17]* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(i356[17]* i356[7])∧(java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[7]))

(17) -> (11), if ((o43184[17]* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[11])∧(i356[17]* i356[11])∧(java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(o41775[11], o41776[11]))))

(17) -> (14), if ((java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(o43184[17]* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(i356[17]* i356[14])∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[14]))

(17) -> (17), if ((java.lang.Object(Tree(NULL, o41773[17])) →* o41773[17]')∧(o43184[17]* java.lang.Object(Tree(NULL, o43184[17]')))∧(i356[17]* i356[17]')∧(java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(o41775[17]', o41776[17]'))))

(17) -> (19), if ((o43184[17]* NULL)∧(i356[17]* i356[19])∧(java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[19]))

(17) -> (25), if ((java.lang.Object(Tree(NULL, o41773[17])) →* o41773[25])∧(java.lang.Object(Tree(o41775[17], o41776[17])) →* java.lang.Object(Tree(NULL, o41776[25])))∧(i356[17]* i356[25])∧(o43184[17]* java.lang.Object(Tree(NULL, o41776[25]))))

(18) -> (7), if ((NULL* o41773[7])∧(i356[18]* i356[7])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7]))))

(18) -> (11), if ((java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(NULL* o41773[11])∧(i356[18]* i356[11])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(o41775[11], o41776[11]))))

(18) -> (14), if ((NULL* o41773[14])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(o41775[14], o41776[14])))∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(i356[18]* i356[14]))

(18) -> (17), if ((i356[18]* i356[17])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(NULL, o43184[17])))∧(NULL* o41773[17])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(o41775[17], o41776[17]))))

(18) -> (19), if ((i356[18]* i356[19])∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* NULL)∧(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(o41775[19], o41776[19])))∧(NULL* o41773[19]))

(18) -> (25), if ((java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])) →* java.lang.Object(Tree(NULL, o41776[25])))∧(NULL* o41773[25])∧(i356[18]* i356[25]))

(19) -> (20), if ((o41773[19]* o41571[20])∧(i356[19]* i356[20])∧(java.lang.Object(Tree(o41775[19], o41776[19])) →* o41578[20]))

(20) -> (0), if ((o41571[20]* o3878[0])∧(i356[20]* i341[0])∧(o41578[20]* o3879[0]))

(21) -> (0), if ((i356[21]* i341[0])∧(o41571[21]* o3878[0])∧(o41578[21]* o3879[0]))

(22) -> (0), if ((i426[22]* i341[0])∧(o4175[22]* o3878[0])∧(o3956[22]* o3879[0]))

(23) -> (0), if ((o3956[23]* o3879[0])∧(i356[23] + 1* i341[0])∧(o4175[23]* o3878[0]))

(24) -> (15), if ((java.lang.Object(Tree(NULL, o41773[24])) →* java.lang.Object(Tree(NULL, o41773[15])))∧(o41776[24]* o43184[15])∧(java.lang.Object(Tree(NULL, o41776[24])) →* java.lang.Object(Tree(o41775[15], o41776[15])))∧(i356[24]* i356[15]))

(25) -> (15), if ((java.lang.Object(Tree(NULL, o41776[25])) →* java.lang.Object(Tree(o41775[15], o41776[15])))∧(java.lang.Object(Tree(NULL, o41773[25])) →* java.lang.Object(Tree(NULL, o41773[15])))∧(i356[25]* i356[15])∧(o41776[25]* o43184[15]))

(26) -> (22), if ((i356[26] + 1* i426[22])∧(o4182[26]* o4175[22])∧(java.lang.Object(Tree(NULL, o4182[26])) →* o3956[22]))

The set Q consists of the following terms:
NULL4222(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)))
Store46056(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8, x5)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(NULL, x5)), x6)
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5)), x6)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6)
Store46301(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6, x3)
JMP52452(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(NULL, x3)), x4)
JMP41221(x0, x1, x2)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), NULL, x5)
JMP5284(x0, x1, x2)
NULL4222(x0, x1, java.lang.Object(Tree(NULL, x2)))

### (12) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

### (13) Obligation:

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

The following domains are used:

Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
(1): NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
(2): STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
(3): LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
(4): LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
(5): LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
(6): FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
(7): LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
(8): LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
(9): LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
(10): FIELDACCESS40823(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), o41773[10], java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10]))) → STORE46301(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10])), o41773[10], o49860[10])
(11): LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
(12): STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
(13): FIELDACCESS40823(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), o41773[13], java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13]))) → LOAD40540(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))), o41773[13])
(14): LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
(15): JMP52452'(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15]))) → LOAD40540(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15])))
(16): FIELDACCESS40823(i356[16], java.lang.Object(Tree(o41775[16], o41776[16])), o41773[16], java.lang.Object(Tree(NULL, o43184[16]))) → LOAD40540(i356[16], java.lang.Object(Tree(o41775[16], o41776[16])), o43184[16], java.lang.Object(Tree(NULL, o41773[16])))
(17): LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
(18): NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
(19): LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
(20): JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
(21): LOAD40400(o41578[21], i356[21], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[21], o41574Field1[21])), o41575[21])), NULL, o41571[21]) → LOAD4124(o41578[21], o41571[21], i356[21])
(22): JMP5284'(o3956[22], o4175[22], i426[22]) → LOAD4124(o3956[22], o4175[22], i426[22])
(23): NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], i356[23] + 1)
(24): FIELDACCESS40823(i356[24], java.lang.Object(Tree(NULL, o41776[24])), o41773[24], java.lang.Object(Tree(NULL, o41776[24]))) → JMP52452'(i356[24], java.lang.Object(Tree(NULL, o41776[24])), o41776[24], java.lang.Object(Tree(NULL, o41773[24])))
(25): LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
(26): NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], i356[26] + 1)

(0) -> (1), if ((o3878[0]* java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])))∧(o3879[0]* o3956[1])∧(i341[0]* i356[1]))

(0) -> (18), if ((o3879[0]* java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])))∧(i341[0]* i356[18])∧(o3878[0]* java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))))

(0) -> (23), if ((o3878[0]* java.lang.Object(Tree(NULL, o4175[23])))∧(i341[0]* i356[23])∧(o3879[0]* o3956[23]))

(0) -> (26), if ((i341[0]* i356[26])∧(o3878[0]* java.lang.Object(Tree(NULL, o4182[26])))∧(o3879[0]* java.lang.Object(Tree(NULL, o4182[26]))))

(19) -> (20), if ((o41773[19]* o41571[20])∧(i356[19]* i356[20])∧(java.lang.Object(Tree(o41775[19], o41776[19])) →* o41578[20]))

(20) -> (0), if ((o41571[20]* o3878[0])∧(i356[20]* i341[0])∧(o41578[20]* o3879[0]))

(21) -> (0), if ((i356[21]* i341[0])∧(o41571[21]* o3878[0])∧(o41578[21]* o3879[0]))

(22) -> (0), if ((i426[22]* i341[0])∧(o4175[22]* o3878[0])∧(o3956[22]* o3879[0]))

(23) -> (0), if ((o3956[23]* o3879[0])∧(i356[23] + 1* i341[0])∧(o4175[23]* o3878[0]))

(26) -> (22), if ((i356[26] + 1* i426[22])∧(o4182[26]* o4175[22])∧(java.lang.Object(Tree(NULL, o4182[26])) →* o3956[22]))

(1) -> (3), if ((NULL* o41571[3])∧((o4301Field0[1]* o41574Field0[3])∧(o4301Field1[1]* o41574Field1[3])∧(o4175[1]* o41575[3]))∧(i356[1]* i356[3])∧((o4301Field0[1]* o47312[3])∧(o4301Field1[1]* o47313[3])∧(o4175[1]* o43139[3]))∧(o3956[1]* o41578[3]))

(1) -> (4), if ((o3956[1]* o41578[4])∧(i356[1]* i356[4])∧false∧(NULL* o41571[4])∧((o4301Field0[1]* o41574Field0[4])∧(o4301Field1[1]* o41574Field1[4])∧(o4175[1]* o41575[4])))

(1) -> (5), if ((NULL* o41571[5])∧(i356[1]* i356[5])∧((o4301Field0[1]* o43922[5])∧(o4301Field1[1]* o43923[5])∧(o4175[1]* o41575[5]))∧(o3956[1]* o41578[5]))

(1) -> (8), if (((o4301Field0[1]* o49252[8])∧(o4301Field1[1]* o49253[8])∧(o4175[1]* o43139[8]))∧((o4301Field0[1]* o41574Field0[8])∧(o4301Field1[1]* o41574Field1[8])∧(o4175[1]* o41575[8]))∧(o3956[1]* o41578[8])∧(i356[1]* i356[8])∧(NULL* o41571[8]))

(1) -> (9), if ((i356[1]* i356[9])∧((o4301Field0[1]* o41574Field0[9])∧(o4301Field1[1]* o41574Field1[9])∧(o4175[1]* o41575[9]))∧(o3956[1]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(NULL* o41571[9]))

(1) -> (21), if ((o3956[1]* o41578[21])∧(NULL* o41571[21])∧((o4301Field0[1]* o41574Field0[21])∧(o4301Field1[1]* o41574Field1[21])∧(o4175[1]* o41575[21]))∧false∧(i356[1]* i356[21]))

(2) -> (3), if ((i356[2]* i356[3])∧(o41571[2]* o41571[3])∧((o41574Field0[2]* o41574Field0[3])∧(o41574Field1[2]* o41574Field1[3])∧(o41575[2]* o41575[3]))∧(o41578[2]* o41578[3])∧((o47312[2]* java.lang.Object(Tree(o47312[3], o47313[3])))))

(2) -> (4), if (((o41574Field0[2]* o41574Field0[4])∧(o41574Field1[2]* o41574Field1[4])∧(o41575[2]* o41575[4]))∧(o41571[2]* o41571[4])∧((o47312[2]* NULL))∧(i356[2]* i356[4])∧(o41578[2]* o41578[4]))

(2) -> (5), if ((o41571[2]* o41571[5])∧((o41574Field0[2]* o43922[5])∧(o41574Field1[2]* o43923[5])∧(o41575[2]* o41575[5]))∧((o47312[2]* java.lang.Object(Tree(o43922[5], o43923[5]))))∧(o41578[2]* o41578[5])∧(i356[2]* i356[5]))

(2) -> (8), if (((o47312[2]* java.lang.Object(Tree(o49252[8], o49253[8]))))∧((o41574Field0[2]* o41574Field0[8])∧(o41574Field1[2]* o41574Field1[8])∧(o41575[2]* o41575[8]))∧(o41578[2]* o41578[8])∧(o41571[2]* o41571[8])∧(i356[2]* i356[8]))

(2) -> (9), if ((i356[2]* i356[9])∧(o41571[2]* o41571[9])∧(o41578[2]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧((o41574Field0[2]* o41574Field0[9])∧(o41574Field1[2]* o41574Field1[9])∧(o41575[2]* o41575[9]))∧((o47312[2]* java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])))))

(2) -> (21), if ((o41578[2]* o41578[21])∧(o41571[2]* o41571[21])∧((o41574Field0[2]* o41574Field0[21])∧(o41574Field1[2]* o41574Field1[21])∧(o41575[2]* o41575[21]))∧false∧(i356[2]* i356[21]))

(3) -> (3), if ((o41571[3]* o41571[3]')∧((o47312[3]* java.lang.Object(Tree(o47312[3]', o47313[3]'))))∧(o41578[3]* o41578[3]')∧((o41574Field0[3]* o41574Field0[3]')∧(o41574Field1[3]* o41574Field1[3]')∧(o41575[3]* o41575[3]'))∧(i356[3]* i356[3]'))

(3) -> (4), if ((o41578[3]* o41578[4])∧((o41574Field0[3]* o41574Field0[4])∧(o41574Field1[3]* o41574Field1[4])∧(o41575[3]* o41575[4]))∧(i356[3]* i356[4])∧((o47312[3]* NULL))∧(o41571[3]* o41571[4]))

(3) -> (5), if ((o41571[3]* o41571[5])∧((o41574Field0[3]* o43922[5])∧(o41574Field1[3]* o43923[5])∧(o41575[3]* o41575[5]))∧(i356[3]* i356[5])∧((o47312[3]* java.lang.Object(Tree(o43922[5], o43923[5]))))∧(o41578[3]* o41578[5]))

(3) -> (8), if (((o47312[3]* java.lang.Object(Tree(o49252[8], o49253[8]))))∧((o41574Field0[3]* o41574Field0[8])∧(o41574Field1[3]* o41574Field1[8])∧(o41575[3]* o41575[8]))∧(o41578[3]* o41578[8])∧(i356[3]* i356[8])∧(o41571[3]* o41571[8]))

(3) -> (9), if ((o41571[3]* o41571[9])∧((o41574Field0[3]* o41574Field0[9])∧(o41574Field1[3]* o41574Field1[9])∧(o41575[3]* o41575[9]))∧(o41578[3]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(i356[3]* i356[9])∧((o47312[3]* java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])))))

(3) -> (21), if ((o41571[3]* o41571[21])∧false∧((o41574Field0[3]* o41574Field0[21])∧(o41574Field1[3]* o41574Field1[21])∧(o41575[3]* o41575[21]))∧(o41578[3]* o41578[21])∧(i356[3]* i356[21]))

(4) -> (3), if (((o41574Field0[4]* o41574Field0[3])∧(o41574Field1[4]* o41574Field1[3])∧(o41575[4]* o41575[3]))∧(i356[4]* i356[3])∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[3])∧(o41578[4]* o41578[3]))

(4) -> (4), if ((o43139[4]* java.lang.Object(Tree(NULL, o43139[4]')))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[4]')∧(o41578[4]* o41578[4]')∧((o41574Field0[4]* o41574Field0[4]')∧(o41574Field1[4]* o41574Field1[4]')∧(o41575[4]* o41575[4]'))∧(i356[4]* i356[4]'))

(4) -> (5), if ((i356[4]* i356[5])∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[5])∧((o41574Field0[4]* o43922[5])∧(o41574Field1[4]* o43923[5])∧(o41575[4]* o41575[5]))∧(o41578[4]* o41578[5]))

(4) -> (8), if ((i356[4]* i356[8])∧(o41578[4]* o41578[8])∧((o41574Field0[4]* o41574Field0[8])∧(o41574Field1[4]* o41574Field1[8])∧(o41575[4]* o41575[8]))∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[8]))

(4) -> (9), if (((o41574Field0[4]* o41574Field0[9])∧(o41574Field1[4]* o41574Field1[9])∧(o41575[4]* o41575[9]))∧(o41578[4]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(o43139[4]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[9])∧(i356[4]* i356[9]))

(4) -> (21), if ((o43139[4]* NULL)∧((o41574Field0[4]* o41574Field0[21])∧(o41574Field1[4]* o41574Field1[21])∧(o41575[4]* o41575[21]))∧(java.lang.Object(Tree(NULL, o41571[4])) →* o41571[21])∧(i356[4]* i356[21])∧(o41578[4]* o41578[21]))

(5) -> (3), if (((o43922[5]* java.lang.Object(Tree(o47312[3], o47313[3]))))∧(o41571[5]* o41571[3])∧(i356[5]* i356[3])∧(o41578[5]* o41578[3])∧((o43922[5]* o41574Field0[3])∧(o43923[5]* o41574Field1[3])∧(o41575[5]* o41575[3])))

(5) -> (4), if ((o41571[5]* o41571[4])∧((o43922[5]* NULL))∧(o41578[5]* o41578[4])∧((o43922[5]* o41574Field0[4])∧(o43923[5]* o41574Field1[4])∧(o41575[5]* o41575[4]))∧(i356[5]* i356[4]))

(5) -> (5), if (((o43922[5]* java.lang.Object(Tree(o43922[5]', o43923[5]'))))∧(o41578[5]* o41578[5]')∧(i356[5]* i356[5]')∧(o41571[5]* o41571[5]')∧((o43922[5]* o43922[5]')∧(o43923[5]* o43923[5]')∧(o41575[5]* o41575[5]')))

(5) -> (8), if (((o43922[5]* o41574Field0[8])∧(o43923[5]* o41574Field1[8])∧(o41575[5]* o41575[8]))∧(i356[5]* i356[8])∧(o41578[5]* o41578[8])∧(o41571[5]* o41571[8])∧((o43922[5]* java.lang.Object(Tree(o49252[8], o49253[8])))))

(5) -> (9), if ((o41578[5]* java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))∧((o43922[5]* java.lang.Object(Tree(o41574Field0[9], o41574Field1[9]))))∧((o43922[5]* o41574Field0[9])∧(o43923[5]* o41574Field1[9])∧(o41575[5]* o41575[9]))∧(i356[5]* i356[9])∧(o41571[5]* o41571[9]))

(5) -> (21), if ((o41571[5]* o41571[21])∧(o41578[5]* o41578[21])∧((o43922[5]* o41574Field0[21])∧(o43923[5]* o41574Field1[21])∧(o41575[5]* o41575[21]))∧false∧(i356[5]* i356[21]))

(6) -> (3), if (((o45716[6]* java.lang.Object(Tree(o47312[3], o47313[3]))))∧(o41773[6]* o41571[3])∧(i356[6]* i356[3])∧((o45716[6]* o41574Field0[3])∧(o45717[6]* o41574Field1[3])∧(o41776[6]* o41575[3]))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[3]))

(6) -> (4), if (((o45716[6]* NULL))∧(o41773[6]* o41571[4])∧(i356[6]* i356[4])∧((o45716[6]* o41574Field0[4])∧(o45717[6]* o41574Field1[4])∧(o41776[6]* o41575[4]))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[4]))

(6) -> (5), if ((java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[5])∧((o45716[6]* java.lang.Object(Tree(o43922[5], o43923[5]))))∧(o41773[6]* o41571[5])∧(i356[6]* i356[5])∧((o45716[6]* o43922[5])∧(o45717[6]* o43923[5])∧(o41776[6]* o41575[5])))

(6) -> (8), if ((i356[6]* i356[8])∧((o45716[6]* o41574Field0[8])∧(o45717[6]* o41574Field1[8])∧(o41776[6]* o41575[8]))∧(o41773[6]* o41571[8])∧((o45716[6]* java.lang.Object(Tree(o49252[8], o49253[8]))))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[8]))

(6) -> (9), if (((o45716[6]* o41574Field0[9])∧(o45717[6]* o41574Field1[9])∧(o41776[6]* o41575[9]))∧(i356[6]* i356[9])∧(o41773[6]* o41571[9])∧((o45716[6]* java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])))))

(6) -> (21), if ((o41773[6]* o41571[21])∧false∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])) →* o41578[21])∧(i356[6]* i356[21])∧((o45716[6]* o41574Field0[21])∧(o45717[6]* o41574Field1[21])∧(o41776[6]* o41575[21])))

(7) -> (3), if ((o41773[7]* o41571[3])∧((o45716[7]* o41574Field0[3])∧(o45717[7]* o41574Field1[3])∧(o41776[7]* o41575[3]))∧(i356[7]* i356[3])∧((o45716[7]* java.lang.Object(Tree(o47312[3], o47313[3]))))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[3]))

(7) -> (4), if ((o41773[7]* o41571[4])∧(i356[7]* i356[4])∧((o45716[7]* NULL))∧((o45716[7]* o41574Field0[4])∧(o45717[7]* o41574Field1[4])∧(o41776[7]* o41575[4]))∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[4]))

(7) -> (5), if ((o41773[7]* o41571[5])∧((o45716[7]* java.lang.Object(Tree(o43922[5], o43923[5]))))∧((o45716[7]* o43922[5])∧(o45717[7]* o43923[5])∧(o41776[7]* o41575[5]))∧(i356[7]* i356[5])∧(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[5]))

(7) -> (8), if ((java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[8])∧((o45716[7]* o41574Field0[8])∧(o45717[7]* o41574Field1[8])∧(o41776[7]* o41575[8]))∧((o45716[7]* java.lang.Object(Tree(o49252[8], o49253[8]))))∧(o41773[7]* o41571[8])∧(i356[7]* i356[8]))

(7) -> (9), if (((o45716[7]* java.lang.Object(Tree(o41574Field0[9], o41574Field1[9]))))∧(o41773[7]* o41571[9])∧(i356[7]* i356[9])∧((o45716[7]* o41574Field0[9])∧(o45717[7]* o41574Field1[9])∧(o41776[7]* o41575[9])))

(7) -> (21), if ((java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])) →* o41578[21])∧((o45716[7]* o41574Field0[21])∧(o45717[7]* o41574Field1[21])∧(o41776[7]* o41575[21]))∧(o41773[7]* o41571[21])∧(i356[7]* i356[21])∧false)

(8) -> (2), if ((o41571[8]* o41571[2])∧((o41574Field0[8]* o41574Field0[2])∧(o41574Field1[8]* o41574Field1[2])∧(o41575[8]* o41575[2]))∧(o49252[8]* o47312[2])∧(o41578[8]* o41578[2])∧((o49252[8]* o47312[2])∧(o49253[8]* o47313[2])∧(o43139[8]* o43139[2]))∧(i356[8]* i356[2]))

(9) -> (6), if (((o41574Field0[9]* o45716[6])∧(o41574Field1[9]* o45717[6])∧(o41575[9]* o41776[6]))∧(o41571[9]* o41773[6])∧(i356[9]* i356[6]))

(9) -> (10), if (((java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])) →* o41775[10])∧(o41575[9]* o41776[10]))∧(o41571[9]* o41773[10])∧(i356[9]* i356[10])∧((o41574Field0[9]* o49860[10])∧(o41574Field1[9]* o49861[10])∧(o41575[9]* o43184[10])))

(9) -> (13), if (((o41574Field0[9]* o47663[13])∧(o41574Field1[9]* o47664[13])∧(o41575[9]* o43184[13]))∧(i356[9]* i356[13])∧(o41571[9]* o41773[13])∧((java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])) →* o41775[13])∧(o41575[9]* o41776[13])))

(9) -> (16), if (((java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])) →* o41775[16])∧(o41575[9]* o41776[16]))∧false∧(i356[9]* i356[16])∧(o41571[9]* o41773[16]))

(9) -> (24), if ((o41571[9]* o41773[24])∧(i356[9]* i356[24])∧false)

(10) -> (12), if ((o41773[10]* o41773[12])∧(o49860[10]* o47663[12])∧((o41775[10]* o41775[12])∧(o41776[10]* o41776[12]))∧((o49860[10]* o47663[12])∧(o49861[10]* o47664[12])∧(o43184[10]* o43184[12]))∧(i356[10]* i356[12]))

(11) -> (12), if (((o49860[11]* o47663[12])∧(o49861[11]* o47664[12])∧(o43184[11]* o43184[12]))∧(o49860[11]* o47663[12])∧((o41775[11]* o41775[12])∧(o41776[11]* o41776[12]))∧(o41773[11]* o41773[12])∧(i356[11]* i356[12]))

(12) -> (7), if ((i356[12]* i356[7])∧((o41775[12]* java.lang.Object(Tree(o45716[7], o45717[7])))∧(o41776[12]* o41776[7]))∧((o47663[12]* java.lang.Object(Tree(o45716[7], o45717[7]))))∧(o41773[12]* o41773[7]))

(12) -> (11), if (((o41775[12]* o41775[11])∧(o41776[12]* o41776[11]))∧(i356[12]* i356[11])∧(o41773[12]* o41773[11])∧((o47663[12]* java.lang.Object(Tree(o49860[11], o49861[11])))))

(12) -> (14), if (((o41775[12]* o41775[14])∧(o41776[12]* o41776[14]))∧((o47663[12]* java.lang.Object(Tree(o47663[14], o47664[14]))))∧(o41773[12]* o41773[14])∧(i356[12]* i356[14]))

(12) -> (17), if (((o41775[12]* o41775[17])∧(o41776[12]* o41776[17]))∧(o41773[12]* o41773[17])∧((o47663[12]* NULL))∧(i356[12]* i356[17]))

(12) -> (19), if (false∧((o41775[12]* o41775[19])∧(o41776[12]* o41776[19]))∧(o41773[12]* o41773[19])∧(i356[12]* i356[19]))

(12) -> (25), if ((i356[12]* i356[25])∧(o41773[12]* o41773[25])∧((o47663[12]* NULL))∧((o41775[12]* NULL)∧(o41776[12]* o41776[25])))

(13) -> (7), if ((i356[13]* i356[7])∧((o47663[13]* java.lang.Object(Tree(o45716[7], o45717[7]))))∧((o41775[13]* java.lang.Object(Tree(o45716[7], o45717[7])))∧(o41776[13]* o41776[7]))∧(o41773[13]* o41773[7]))

(13) -> (11), if ((o41773[13]* o41773[11])∧(i356[13]* i356[11])∧((o47663[13]* java.lang.Object(Tree(o49860[11], o49861[11]))))∧((o41775[13]* o41775[11])∧(o41776[13]* o41776[11])))

(13) -> (14), if (((o41775[13]* o41775[14])∧(o41776[13]* o41776[14]))∧(o41773[13]* o41773[14])∧(i356[13]* i356[14])∧((o47663[13]* java.lang.Object(Tree(o47663[14], o47664[14])))))

(13) -> (17), if (((o47663[13]* NULL))∧(i356[13]* i356[17])∧(o41773[13]* o41773[17])∧((o41775[13]* o41775[17])∧(o41776[13]* o41776[17])))

(13) -> (19), if (((o41775[13]* o41775[19])∧(o41776[13]* o41776[19]))∧(i356[13]* i356[19])∧false∧(o41773[13]* o41773[19]))

(13) -> (25), if (((o47663[13]* NULL))∧((o41775[13]* NULL)∧(o41776[13]* o41776[25]))∧(o41773[13]* o41773[25])∧(i356[13]* i356[25]))

(14) -> (7), if (((o47663[14]* java.lang.Object(Tree(o45716[7], o45717[7]))))∧(i356[14]* i356[7])∧(o41773[14]* o41773[7])∧((o41775[14]* java.lang.Object(Tree(o45716[7], o45717[7])))∧(o41776[14]* o41776[7])))

(14) -> (11), if ((i356[14]* i356[11])∧((o47663[14]* java.lang.Object(Tree(o49860[11], o49861[11]))))∧(o41773[14]* o41773[11])∧((o41775[14]* o41775[11])∧(o41776[14]* o41776[11])))

(14) -> (14), if (((o47663[14]* java.lang.Object(Tree(o47663[14]', o47664[14]'))))∧(i356[14]* i356[14]')∧(o41773[14]* o41773[14]')∧((o41775[14]* o41775[14]')∧(o41776[14]* o41776[14]')))

(14) -> (17), if ((o41773[14]* o41773[17])∧(i356[14]* i356[17])∧((o47663[14]* NULL))∧((o41775[14]* o41775[17])∧(o41776[14]* o41776[17])))

(14) -> (19), if (false∧((o41775[14]* o41775[19])∧(o41776[14]* o41776[19]))∧(o41773[14]* o41773[19])∧(i356[14]* i356[19]))

(14) -> (25), if (((o47663[14]* NULL))∧(o41773[14]* o41773[25])∧(i356[14]* i356[25])∧((o41775[14]* NULL)∧(o41776[14]* o41776[25])))

(15) -> (7), if ((o43184[15]* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[7])∧((o41775[15]* java.lang.Object(Tree(o45716[7], o45717[7])))∧(o41776[15]* o41776[7]))∧(i356[15]* i356[7]))

(15) -> (11), if ((o43184[15]* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[11])∧((o41775[15]* o41775[11])∧(o41776[15]* o41776[11]))∧(i356[15]* i356[11]))

(15) -> (14), if ((o43184[15]* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[14])∧((o41775[15]* o41775[14])∧(o41776[15]* o41776[14]))∧(i356[15]* i356[14]))

(15) -> (17), if ((o43184[15]* java.lang.Object(Tree(NULL, o43184[17])))∧((o41775[15]* o41775[17])∧(o41776[15]* o41776[17]))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[17])∧(i356[15]* i356[17]))

(15) -> (19), if (((o41775[15]* o41775[19])∧(o41776[15]* o41776[19]))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[19])∧(o43184[15]* NULL)∧(i356[15]* i356[19]))

(15) -> (25), if ((o43184[15]* java.lang.Object(Tree(NULL, o41776[25])))∧(i356[15]* i356[25])∧((o41775[15]* NULL)∧(o41776[15]* o41776[25]))∧(java.lang.Object(Tree(NULL, o41773[15])) →* o41773[25]))

(16) -> (7), if ((i356[16]* i356[7])∧(o43184[16]* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[7])∧((o41775[16]* java.lang.Object(Tree(o45716[7], o45717[7])))∧(o41776[16]* o41776[7])))

(16) -> (11), if ((java.lang.Object(Tree(NULL, o41773[16])) →* o41773[11])∧((o41775[16]* o41775[11])∧(o41776[16]* o41776[11]))∧(o43184[16]* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(i356[16]* i356[11]))

(16) -> (14), if (((o41775[16]* o41775[14])∧(o41776[16]* o41776[14]))∧(i356[16]* i356[14])∧(o43184[16]* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[14]))

(16) -> (17), if (((o41775[16]* o41775[17])∧(o41776[16]* o41776[17]))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[17])∧(i356[16]* i356[17])∧(o43184[16]* java.lang.Object(Tree(NULL, o43184[17]))))

(16) -> (19), if ((i356[16]* i356[19])∧((o41775[16]* o41775[19])∧(o41776[16]* o41776[19]))∧(java.lang.Object(Tree(NULL, o41773[16])) →* o41773[19])∧(o43184[16]* NULL))

(16) -> (25), if ((java.lang.Object(Tree(NULL, o41773[16])) →* o41773[25])∧((o41775[16]* NULL)∧(o41776[16]* o41776[25]))∧(o43184[16]* java.lang.Object(Tree(NULL, o41776[25])))∧(i356[16]* i356[25]))

(17) -> (7), if ((o43184[17]* java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])))∧(i356[17]* i356[7])∧((o41775[17]* java.lang.Object(Tree(o45716[7], o45717[7])))∧(o41776[17]* o41776[7]))∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[7]))

(17) -> (11), if ((o43184[17]* java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])))∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[11])∧(i356[17]* i356[11])∧((o41775[17]* o41775[11])∧(o41776[17]* o41776[11])))

(17) -> (14), if (((o41775[17]* o41775[14])∧(o41776[17]* o41776[14]))∧(o43184[17]* java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])))∧(i356[17]* i356[14])∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[14]))

(17) -> (17), if ((java.lang.Object(Tree(NULL, o41773[17])) →* o41773[17]')∧(o43184[17]* java.lang.Object(Tree(NULL, o43184[17]')))∧(i356[17]* i356[17]')∧((o41775[17]* o41775[17]')∧(o41776[17]* o41776[17]')))

(17) -> (19), if ((o43184[17]* NULL)∧(i356[17]* i356[19])∧((o41775[17]* o41775[19])∧(o41776[17]* o41776[19]))∧(java.lang.Object(Tree(NULL, o41773[17])) →* o41773[19]))

(17) -> (25), if ((java.lang.Object(Tree(NULL, o41773[17])) →* o41773[25])∧((o41775[17]* NULL)∧(o41776[17]* o41776[25]))∧(i356[17]* i356[25])∧(o43184[17]* java.lang.Object(Tree(NULL, o41776[25]))))

(18) -> (7), if ((NULL* o41773[7])∧(i356[18]* i356[7])∧((o4323Field0[18]* o45716[7])∧(o4323Field1[18]* o45717[7])∧(o4182[18]* o41776[7])))

(18) -> (11), if (((o4323Field0[18]* o49860[11])∧(o4323Field1[18]* o49861[11])∧(o4182[18]* o43184[11]))∧(NULL* o41773[11])∧(i356[18]* i356[11])∧((java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])) →* o41775[11])∧(o4182[18]* o41776[11])))

(18) -> (14), if ((NULL* o41773[14])∧((java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])) →* o41775[14])∧(o4182[18]* o41776[14]))∧((o4323Field0[18]* o47663[14])∧(o4323Field1[18]* o47664[14])∧(o4182[18]* o43184[14]))∧(i356[18]* i356[14]))

(18) -> (17), if ((i356[18]* i356[17])∧false∧(NULL* o41773[17])∧((java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])) →* o41775[17])∧(o4182[18]* o41776[17])))

(18) -> (19), if ((i356[18]* i356[19])∧false∧((java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])) →* o41775[19])∧(o4182[18]* o41776[19]))∧(NULL* o41773[19]))

(18) -> (25), if (false∧(NULL* o41773[25])∧(i356[18]* i356[25]))

(24) -> (15), if (((o41773[24]* o41773[15]))∧(o41776[24]* o43184[15])∧((o41776[24]* o41776[15]))∧(i356[24]* i356[15]))

(25) -> (15), if (((o41776[25]* o41776[15]))∧((o41773[25]* o41773[15]))∧(i356[25]* i356[15])∧(o41776[25]* o43184[15]))

The set Q consists of the following terms:
NULL4222(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)))
Store46056(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8, x5)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(NULL, x5)), x6)
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5)), x6)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6)
Store46301(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6, x3)
JMP52452(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(NULL, x3)), x4)
JMP41221(x0, x1, x2)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), NULL, x5)
JMP5284(x0, x1, x2)
NULL4222(x0, x1, java.lang.Object(Tree(NULL, x2)))

### (14) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

### (15) Obligation:

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

LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), o41773[10], java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10]))) → STORE46301(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10])), o41773[10], o49860[10])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
FIELDACCESS40823(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), o41773[13], java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13]))) → LOAD40540(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))), o41773[13])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
JMP52452'(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15]))) → LOAD40540(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15])))
FIELDACCESS40823(i356[16], java.lang.Object(Tree(o41775[16], o41776[16])), o41773[16], java.lang.Object(Tree(NULL, o43184[16]))) → LOAD40540(i356[16], java.lang.Object(Tree(o41775[16], o41776[16])), o43184[16], java.lang.Object(Tree(NULL, o41773[16])))
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
JMP5284'(o3956[22], o4175[22], i426[22]) → LOAD4124(o3956[22], o4175[22], i426[22])
NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], plus_int(pos(s(0)), i356[23]))
FIELDACCESS40823(i356[24], java.lang.Object(Tree(NULL, o41776[24])), o41773[24], java.lang.Object(Tree(NULL, o41776[24]))) → JMP52452'(i356[24], java.lang.Object(Tree(NULL, o41776[24])), o41776[24], java.lang.Object(Tree(NULL, o41773[24])))
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], plus_int(pos(s(0)), i356[26]))

The TRS R consists of the following rules:

plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(neg(x), pos(y)) → minus_nat(y, x)
plus_int(neg(x), neg(y)) → neg(plus_nat(x, y))
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)

The set Q consists of the following terms:

NULL4222(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)))
Store46056(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8, x5)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(NULL, x5)), x6)
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5)), x6)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6)
Store46301(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6, x3)
JMP52452(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(NULL, x3)), x4)
JMP41221(x0, x1, x2)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), NULL, x5)
JMP5284(x0, x1, x2)
NULL4222(x0, x1, java.lang.Object(Tree(NULL, x2)))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

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

### (16) DependencyGraphProof (EQUIVALENT transformation)

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

### (17) Obligation:

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

NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
FIELDACCESS40823(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), o41773[10], java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10]))) → STORE46301(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10])), o41773[10], o49860[10])
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], plus_int(pos(s(0)), i356[23]))
NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], plus_int(pos(s(0)), i356[26]))
JMP5284'(o3956[22], o4175[22], i426[22]) → LOAD4124(o3956[22], o4175[22], i426[22])
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
JMP52452'(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15]))) → LOAD40540(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15])))
FIELDACCESS40823(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), o41773[13], java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13]))) → LOAD40540(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))), o41773[13])

The TRS R consists of the following rules:

plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(neg(x), pos(y)) → minus_nat(y, x)
plus_int(neg(x), neg(y)) → neg(plus_nat(x, y))
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)

The set Q consists of the following terms:

NULL4222(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)))
Store46056(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8, x5)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(NULL, x5)), x6)
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5)), x6)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6)
Store46301(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6, x3)
JMP52452(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(NULL, x3)), x4)
JMP41221(x0, x1, x2)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), NULL, x5)
JMP5284(x0, x1, x2)
NULL4222(x0, x1, java.lang.Object(Tree(NULL, x2)))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

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

### (18) UsableRulesProof (EQUIVALENT transformation)

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

### (19) Obligation:

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

NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
FIELDACCESS40823(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), o41773[10], java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10]))) → STORE46301(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10])), o41773[10], o49860[10])
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], plus_int(pos(s(0)), i356[23]))
NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], plus_int(pos(s(0)), i356[26]))
JMP5284'(o3956[22], o4175[22], i426[22]) → LOAD4124(o3956[22], o4175[22], i426[22])
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
JMP52452'(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15]))) → LOAD40540(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15])))
FIELDACCESS40823(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), o41773[13], java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13]))) → LOAD40540(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))), o41773[13])

The TRS R consists of the following rules:

plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)

The set Q consists of the following terms:

NULL4222(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)))
Store46056(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8, x5)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(NULL, x5)), x6)
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5)), x6)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6)
Store46301(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6, x3)
JMP52452(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(NULL, x3)), x4)
JMP41221(x0, x1, x2)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), NULL, x5)
JMP5284(x0, x1, x2)
NULL4222(x0, x1, java.lang.Object(Tree(NULL, x2)))
plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

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

### (20) 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].

NULL4222(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)))
Store46056(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8, x5)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6)), x7)), x8)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), java.lang.Object(Tree(NULL, x5)), x6)
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5)), x6)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6)
Store46301(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x5)), x6, x3)
JMP52452(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
FieldAccess40823(x0, java.lang.Object(Tree(x1, x2)), x3, java.lang.Object(Tree(NULL, x4)))
Load40540(x0, java.lang.Object(Tree(x1, x2)), java.lang.Object(Tree(NULL, x3)), x4)
JMP41221(x0, x1, x2)
Load40400(x0, x1, java.lang.Object(Tree(java.lang.Object(Tree(x2, x3)), x4)), NULL, x5)
JMP5284(x0, x1, x2)
NULL4222(x0, x1, java.lang.Object(Tree(NULL, x2)))

### (21) Obligation:

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

NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
FIELDACCESS40823(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), o41773[10], java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10]))) → STORE46301(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10])), o41773[10], o49860[10])
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], plus_int(pos(s(0)), i356[23]))
NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], plus_int(pos(s(0)), i356[26]))
JMP5284'(o3956[22], o4175[22], i426[22]) → LOAD4124(o3956[22], o4175[22], i426[22])
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
JMP52452'(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15]))) → LOAD40540(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15])))
FIELDACCESS40823(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), o41773[13], java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13]))) → LOAD40540(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))), o41773[13])

The TRS R consists of the following rules:

plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)

The set Q consists of the following terms:

plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

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

### (22) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule FIELDACCESS40823(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), o41773[10], java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10]))) → STORE46301(i356[10], java.lang.Object(Tree(o41775[10], o41776[10])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[10], o49861[10])), o43184[10])), o41773[10], o49860[10]) we obtained the following new rules [LPAR04]:

FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → STORE46301(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, z0)

### (23) Obligation:

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

NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], plus_int(pos(s(0)), i356[23]))
NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], plus_int(pos(s(0)), i356[26]))
JMP5284'(o3956[22], o4175[22], i426[22]) → LOAD4124(o3956[22], o4175[22], i426[22])
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
JMP52452'(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15]))) → LOAD40540(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15])))
FIELDACCESS40823(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), o41773[13], java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13]))) → LOAD40540(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))), o41773[13])
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → STORE46301(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, z0)

The TRS R consists of the following rules:

plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)

The set Q consists of the following terms:

plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

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

### (24) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule JMP5284'(o3956[22], o4175[22], i426[22]) → LOAD4124(o3956[22], o4175[22], i426[22]) we obtained the following new rules [LPAR04]:

JMP5284'(java.lang.Object(Tree(NULL, z0)), z0, y_0) → LOAD4124(java.lang.Object(Tree(NULL, z0)), z0, y_0)

### (25) Obligation:

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

NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], plus_int(pos(s(0)), i356[23]))
NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], plus_int(pos(s(0)), i356[26]))
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
JMP52452'(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15]))) → LOAD40540(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15])))
FIELDACCESS40823(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), o41773[13], java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13]))) → LOAD40540(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))), o41773[13])
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → STORE46301(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, z0)
JMP5284'(java.lang.Object(Tree(NULL, z0)), z0, y_0) → LOAD4124(java.lang.Object(Tree(NULL, z0)), z0, y_0)

The TRS R consists of the following rules:

plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)

The set Q consists of the following terms:

plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

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

### (26) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule JMP52452'(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15]))) → LOAD40540(i356[15], java.lang.Object(Tree(o41775[15], o41776[15])), o43184[15], java.lang.Object(Tree(NULL, o41773[15]))) we obtained the following new rules [LPAR04]:

JMP52452'(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2))) → LOAD40540(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2)))

### (27) Obligation:

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

NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], plus_int(pos(s(0)), i356[23]))
NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], plus_int(pos(s(0)), i356[26]))
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
FIELDACCESS40823(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), o41773[13], java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13]))) → LOAD40540(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))), o41773[13])
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → STORE46301(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, z0)
JMP5284'(java.lang.Object(Tree(NULL, z0)), z0, y_0) → LOAD4124(java.lang.Object(Tree(NULL, z0)), z0, y_0)
JMP52452'(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2))) → LOAD40540(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2)))

The TRS R consists of the following rules:

plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)

The set Q consists of the following terms:

plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

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

### (28) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule FIELDACCESS40823(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), o41773[13], java.lang.Object(Tree(java.lang.Object(Tree(o47663[13], o47664[13])), o43184[13]))) → LOAD40540(i356[13], java.lang.Object(Tree(o41775[13], o41776[13])), java.lang.Object(Tree(o47663[13], java.lang.Object(Tree(o47664[13], o43184[13])))), o41773[13]) we obtained the following new rules [LPAR04]:

FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → LOAD40540(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(z0, java.lang.Object(Tree(z1, z2)))), z4)

### (29) Obligation:

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

NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], plus_int(pos(s(0)), i356[23]))
NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], plus_int(pos(s(0)), i356[26]))
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → STORE46301(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, z0)
JMP5284'(java.lang.Object(Tree(NULL, z0)), z0, y_0) → LOAD4124(java.lang.Object(Tree(NULL, z0)), z0, y_0)
JMP52452'(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2))) → LOAD40540(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2)))
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → LOAD40540(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(z0, java.lang.Object(Tree(z1, z2)))), z4)

The TRS R consists of the following rules:

plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)

The set Q consists of the following terms:

plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

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

### (30) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].

The following pairs can be oriented strictly and are deleted.

NULL4222'(o3956[23], i356[23], java.lang.Object(Tree(NULL, o4175[23]))) → LOAD4124(o3956[23], o4175[23], plus_int(pos(s(0)), i356[23]))
NULL4222'(java.lang.Object(Tree(NULL, o4182[26])), i356[26], java.lang.Object(Tree(NULL, o4182[26]))) → JMP5284'(java.lang.Object(Tree(NULL, o4182[26])), o4182[26], plus_int(pos(s(0)), i356[26]))
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(0) = 0
POL(FIELDACCESS40823(x1, x2, x3, x4)) = x3 + x4
POL(JMP41221'(x1, x2, x3)) = 1 + x2
POL(JMP52452'(x1, x2, x3, x4)) = x3 + x4
POL(JMP5284'(x1, x2, x3)) = x1
POL(LOAD40400(x1, x2, x3, x4, x5)) = x4 + x5
POL(LOAD40540(x1, x2, x3, x4)) = x3 + x4
POL(LOAD4124(x1, x2, x3)) = 1 + x2
POL(NULL) = 1
POL(NULL4222'(x1, x2, x3)) = 1 + x3
POL(STORE46056(x1, x2, x3, x4, x5, x6)) = x4 + x5
POL(STORE46301(x1, x2, x3, x4, x5)) = x3 + x4
POL(Tree(x1, x2)) = x1 + x2
POL(java.lang.Object(x1)) = x1
POL(minus_nat(x1, x2)) = 0
POL(neg(x1)) = 0
POL(plus_int(x1, x2)) = 0
POL(plus_nat(x1, x2)) = 0
POL(pos(x1)) = 0
POL(s(x1)) = 0

The following usable rules [FROCOS05] were oriented: none

### (31) Obligation:

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

NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → STORE46301(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, z0)
JMP5284'(java.lang.Object(Tree(NULL, z0)), z0, y_0) → LOAD4124(java.lang.Object(Tree(NULL, z0)), z0, y_0)
JMP52452'(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2))) → LOAD40540(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2)))
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → LOAD40540(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(z0, java.lang.Object(Tree(z1, z2)))), z4)

The TRS R consists of the following rules:

plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)

The set Q consists of the following terms:

plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

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

### (32) DependencyGraphProof (EQUIVALENT transformation)

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

### (33) Obligation:

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

LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → STORE46301(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, z0)
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
JMP52452'(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2))) → LOAD40540(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2)))
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → LOAD40540(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(z0, java.lang.Object(Tree(z1, z2)))), z4)

The TRS R consists of the following rules:

plus_int(pos(x), neg(y)) → minus_nat(x, y)
plus_int(pos(x), pos(y)) → pos(plus_nat(x, y))
plus_nat(0, x) → x
plus_nat(s(x), y) → s(plus_nat(x, y))
minus_nat(0, 0) → pos(0)
minus_nat(0, s(y)) → neg(s(y))
minus_nat(s(x), 0) → pos(s(x))
minus_nat(s(x), s(y)) → minus_nat(x, y)

The set Q consists of the following terms:

plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

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

### (34) 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.

### (35) Obligation:

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

LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → STORE46301(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, z0)
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
JMP52452'(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2))) → LOAD40540(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2)))
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → LOAD40540(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(z0, java.lang.Object(Tree(z1, z2)))), z4)

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

plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

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

### (36) 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].

plus_int(pos(x0), neg(x1))
plus_int(neg(x0), pos(x1))
plus_int(neg(x0), neg(x1))
plus_int(pos(x0), pos(x1))
plus_nat(0, x0)
plus_nat(s(x0), x1)
minus_nat(0, 0)
minus_nat(0, s(x0))
minus_nat(s(x0), 0)
minus_nat(s(x0), s(x1))

### (37) Obligation:

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

LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → STORE46301(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, z0)
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
JMP52452'(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2))) → LOAD40540(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2)))
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → LOAD40540(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(z0, java.lang.Object(Tree(z1, z2)))), z4)

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

### (38) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].

The following pairs can be oriented strictly and are deleted.

NULL4222'(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1]))) → LOAD40400(o3956[1], i356[1], java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), java.lang.Object(Tree(java.lang.Object(Tree(o4301Field0[1], o4301Field1[1])), o4175[1])), NULL)
NULL4222'(java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18]))) → LOAD40540(i356[18], java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), java.lang.Object(Tree(java.lang.Object(Tree(o4323Field0[18], o4323Field1[18])), o4182[18])), NULL)
The remaining pairs can at least be oriented weakly.
Used ordering: Matrix interpretation [MATRO]:

POL(LOAD40400(x1, x2, x3, x4, x5)) = 0 +
 [ 0, 0 ]
·x1 +
 [ 0, 0 ]
·x2 +
 [ 0, 0 ]
·x3 +
 [ 0, 0 ]
·x4 +
 [ 1, 0 ]
·x5

POL(java.lang.Object(x1)) =
 / 0 \ \ 1 /
+
 / 1 1 \ \ 0 0 /
·x1

POL(Tree(x1, x2)) =
 / 0 \ \ 0 /
+
 / 0 1 \ \ 0 1 /
·x1 +
 / 0 0 \ \ 0 0 /
·x2

POL(NULL) =
 / 0 \ \ 0 /

POL(STORE46056(x1, x2, x3, x4, x5, x6)) = 0 +
 [ 0, 0 ]
·x1 +
 [ 0, 0 ]
·x2 +
 [ 0, 0 ]
·x3 +
 [ 0, 0 ]
·x4 +
 [ 1, 0 ]
·x5 +
 [ 0, 0 ]
·x6

POL(FIELDACCESS40823(x1, x2, x3, x4)) = 0 +
 [ 0, 0 ]
·x1 +
 [ 0, 0 ]
·x2 +
 [ 1, 0 ]
·x3 +
 [ 0, 0 ]
·x4

POL(STORE46301(x1, x2, x3, x4, x5)) = 0 +
 [ 0, 0 ]
·x1 +
 [ 0, 0 ]
·x2 +
 [ 0, 0 ]
·x3 +
 [ 1, 0 ]
·x4 +
 [ 0, 0 ]
·x5

POL(LOAD40540(x1, x2, x3, x4)) = 0 +
 [ 0, 0 ]
·x1 +
 [ 0, 0 ]
·x2 +
 [ 0, 0 ]
·x3 +
 [ 1, 0 ]
·x4

POL(JMP41221'(x1, x2, x3)) = 0 +
 [ 0, 0 ]
·x1 +
 [ 1, 0 ]
·x2 +
 [ 0, 0 ]
·x3

POL(LOAD4124(x1, x2, x3)) = 0 +
 [ 0, 0 ]
·x1 +
 [ 1, 0 ]
·x2 +
 [ 0, 0 ]
·x3

POL(NULL4222'(x1, x2, x3)) = 0 +
 [ 0, 0 ]
·x1 +
 [ 0, 0 ]
·x2 +
 [ 1, 0 ]
·x3

POL(JMP52452'(x1, x2, x3, x4)) = 0 +
 [ 0, 0 ]
·x1 +
 [ 0, 0 ]
·x2 +
 [ 0, 0 ]
·x3 +
 [ 0, 0 ]
·x4

The following usable rules [FROCOS05] were oriented: none

### (39) Obligation:

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

LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → STORE46301(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, z0)
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[19], java.lang.Object(Tree(o41775[19], o41776[19])), NULL, o41773[19]) → JMP41221'(java.lang.Object(Tree(o41775[19], o41776[19])), o41773[19], i356[19])
JMP41221'(o41578[20], o41571[20], i356[20]) → LOAD4124(o41578[20], o41571[20], i356[20])
LOAD4124(o3879[0], o3878[0], i341[0]) → NULL4222'(o3879[0], i341[0], o3878[0])
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
JMP52452'(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2))) → LOAD40540(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2)))
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → LOAD40540(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(z0, java.lang.Object(Tree(z1, z2)))), z4)

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

### (40) DependencyGraphProof (EQUIVALENT transformation)

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

### (41) Obligation:

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

LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[3], o47313[3])), o43139[3])), o41571[3]) → LOAD40400(o41578[3], i356[3], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[3], o41574Field1[3])), o41575[3])), java.lang.Object(Tree(o47312[3], java.lang.Object(Tree(o47313[3], o43139[3])))), o41571[3])
LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), java.lang.Object(Tree(NULL, o43139[4])), o41571[4]) → LOAD40400(o41578[4], i356[4], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[4], o41574Field1[4])), o41575[4])), o43139[4], java.lang.Object(Tree(NULL, o41571[4])))
LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), o41571[5]) → LOAD40400(o41578[5], i356[5], java.lang.Object(Tree(java.lang.Object(Tree(o43922[5], o43923[5])), o41575[5])), java.lang.Object(Tree(o43922[5], java.lang.Object(Tree(o43923[5], o41575[5])))), o41571[5])
LOAD40400(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8]) → STORE46056(o41578[8], i356[8], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[8], o41574Field1[8])), o41575[8])), java.lang.Object(Tree(java.lang.Object(Tree(o49252[8], o49253[8])), o43139[8])), o41571[8], o49252[8])
STORE46056(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(java.lang.Object(Tree(o47312[2], o47313[2])), o43139[2])), o41571[2], o47312[2]) → LOAD40400(o41578[2], i356[2], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[2], o41574Field1[2])), o41575[2])), java.lang.Object(Tree(o47312[2], java.lang.Object(Tree(o47313[2], o43139[2])))), o41571[2])
LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9]) → FIELDACCESS40823(i356[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])), o41571[9], java.lang.Object(Tree(java.lang.Object(Tree(o41574Field0[9], o41574Field1[9])), o41575[9])))
FIELDACCESS40823(i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), o41773[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6]))) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), i356[6], java.lang.Object(Tree(java.lang.Object(Tree(o45716[6], o45717[6])), o41776[6])), java.lang.Object(Tree(o45716[6], java.lang.Object(Tree(o45717[6], o41776[6])))), o41773[6])
FIELDACCESS40823(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2))) → STORE46301(z3, java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), java.lang.Object(Tree(java.lang.Object(Tree(z0, z1)), z2)), z4, z0)
STORE46301(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[12], o47664[12])), o43184[12])), o41773[12], o47663[12]) → LOAD40540(i356[12], java.lang.Object(Tree(o41775[12], o41776[12])), java.lang.Object(Tree(o47663[12], java.lang.Object(Tree(o47664[12], o43184[12])))), o41773[12])
LOAD40540(i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), o41773[7]) → LOAD40400(java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), i356[7], java.lang.Object(Tree(java.lang.Object(Tree(o45716[7], o45717[7])), o41776[7])), java.lang.Object(Tree(o45716[7], java.lang.Object(Tree(o45717[7], o41776[7])))), o41773[7])
LOAD40540(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11]) → STORE46301(i356[11], java.lang.Object(Tree(o41775[11], o41776[11])), java.lang.Object(Tree(java.lang.Object(Tree(o49860[11], o49861[11])), o43184[11])), o41773[11], o49860[11])
LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(java.lang.Object(Tree(o47663[14], o47664[14])), o43184[14])), o41773[14]) → LOAD40540(i356[14], java.lang.Object(Tree(o41775[14], o41776[14])), java.lang.Object(Tree(o47663[14], java.lang.Object(Tree(o47664[14], o43184[14])))), o41773[14])
LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), java.lang.Object(Tree(NULL, o43184[17])), o41773[17]) → LOAD40540(i356[17], java.lang.Object(Tree(o41775[17], o41776[17])), o43184[17], java.lang.Object(Tree(NULL, o41773[17])))
LOAD40540(i356[25], java.lang.Object(Tree(NULL, o41776[25])), java.lang.Object(Tree(NULL, o41776[25])), o41773[25]) → JMP52452'(i356[25], java.lang.Object(Tree(NULL, o41776[25])), o41776[25], java.lang.Object(Tree(NULL, o41773[25])))
JMP52452'(z0, java.lang.Object(Tree(NULL, z1)), z1, java.lang.Object(Tree(NULL, z2))) → LOAD40540(