### (0) Obligation:

JBC Problem based on JBC Program:
`No human-readable program information known.`

Manifest-Version: 1.0 Created-By: 1.6.0_16 (Sun Microsystems Inc.) Main-Class: Samefringe

### (1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

### (2) Obligation:

FIGraph based on JBC Program:
Graph of 1445 nodes with 4 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:
Load31330(o48160, o48159, o48157, o48158) → NULL31532(o48160, o48159, o48157, o48158, o48157)
NULL31532(o48592, o48591, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2)), o48590, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2))) → Load31861(o48592, o48591, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2)), o48590)
Load31861(o49481, o49480, java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2))) → Load36791(o49481, o49480, java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)))
JMP43433(o66388, o66387, java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL))) → Load36791(o66388, o66387, java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68588, o68589, o68590)), o66987, o66988))) → Load36791(o66388, o66387, java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993))) → Load36791(o66388, o66387, java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o68614, java.lang.Object(Tree(o68615, o66992, NULL)), NULL)))
Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003))) → Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o68686, java.lang.Object(Tree(o68687, o67002, NULL)), NULL)))
Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998))) → JMP43433(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68654, java.lang.Object(Tree(o68655, o66997, NULL)), NULL)))
JMP44585(o97213, o97212, o97210, o97249) → Load31330(o97213, o97212, o97210, o97249)
Store44491(o97213, o97212, o97210, o97249) → Load31330(o97213, o97212, o97210, o97249)
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97249, o97250))) → Load31330(o97213, o97212, o97210, o97249)
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(NULL, o97256, o97257)), java.lang.Object(Tree(NULL, o97256, o97257)), java.lang.Object(Tree(NULL, o97256, o97257))) → JMP44585(o97213, o97212, o97210, o97256)
Load44066(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, java.lang.Object(Tree(NULL, o97270, o97271)), java.lang.Object(Tree(NULL, o97270, o97271)), java.lang.Object(Tree(NULL, o97270, o97271))) → JMP44585(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, o97270)
Load44066(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97263, o97264))) → Store44491(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, o97263)
Load37906(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2))) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Store37702(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66987) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66987, o66988))) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
JMP46979(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99119, o99120, o99121)), o97249, o97250))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(o99165, java.lang.Object(Tree(o99166, o97256, NULL)), NULL)))
Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271))) → Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(o99277, java.lang.Object(Tree(o99278, o97270, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(NULL, o66992, o66993)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o66992, o66993)), java.lang.Object(Tree(NULL, o66992, o66993))) → Load37906(o66388, o66387, o66992, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, java.lang.Object(Tree(NULL, o67002, o67003)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o67002, o67003)), java.lang.Object(Tree(NULL, o67002, o67003))) → Load37906(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, o67002, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66997, o66998))) → Store37702(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66997)
Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264))) → JMP46979(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99224, java.lang.Object(Tree(o99225, o97263, NULL)), NULL)))
The set Q consists of the following terms:
NULL31532(x0, x1, java.lang.Object(Tree(x2, x3, x4)), x5, java.lang.Object(Tree(x2, x3, x4)))
Load31861(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)))
JMP43433(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x8, java.lang.Object(Tree(x9, x10, NULL)), NULL)))
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(java.lang.Object(Tree(x8, x9, x10)), x11, x12)))
JMP44585(x0, x1, x2, x3)
Store44491(x0, x1, x2, x3)
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(NULL, x6, x7)))
Load37906(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)))
Store37702(x0, x1, java.lang.Object(Tree(x2, x3, x4)), x5)
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(NULL, x8, x9)))
JMP46979(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, NULL)), NULL)))
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)))

### (6) DuplicateArgsRemoverProof (EQUIVALENT transformation)

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

JMP46979(x1, x2, x3, x4, x5, x6) → JMP46979(x1, x2, x3, x5, x6)
Load44066(x1, x2, x3, x4, x5, x6) → Load44066(x1, x2, x3, x5, x6)
Load36791(x1, x2, x3, x4, x5, x6) → Load36791(x1, x2, x4, x5, x6)
JMP43433(x1, x2, x3, x4, x5, x6) → JMP43433(x1, x2, x4, x5, x6)
NULL31532(x1, x2, x3, x4, x5) → NULL31532(x1, x2, x4, x5)

### (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:
Load31330(o48160, o48159, o48157, o48158) → NULL31532(o48160, o48159, o48158, o48157)
NULL31532(o48592, o48591, o48590, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2))) → Load31861(o48592, o48591, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2)), o48590)
Load31861(o49481, o49480, java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2))) → Load36791(o49481, o49480, java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)))
JMP43433(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL))) → Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68588, o68589, o68590)), o66987, o66988))) → Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993))) → Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o68614, java.lang.Object(Tree(o68615, o66992, NULL)), NULL)))
Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003))) → Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o68686, java.lang.Object(Tree(o68687, o67002, NULL)), NULL)))
Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998))) → JMP43433(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68654, java.lang.Object(Tree(o68655, o66997, NULL)), NULL)))
JMP44585(o97213, o97212, o97210, o97249) → Load31330(o97213, o97212, o97210, o97249)
Store44491(o97213, o97212, o97210, o97249) → Load31330(o97213, o97212, o97210, o97249)
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97249, o97250))) → Load31330(o97213, o97212, o97210, o97249)
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(NULL, o97256, o97257)), java.lang.Object(Tree(NULL, o97256, o97257))) → JMP44585(o97213, o97212, o97210, o97256)
Load44066(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, java.lang.Object(Tree(NULL, o97270, o97271)), java.lang.Object(Tree(NULL, o97270, o97271))) → JMP44585(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, o97270)
Load44066(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97263, o97264))) → Store44491(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, o97263)
Load37906(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2))) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Store37702(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66987) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66987, o66988))) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
JMP46979(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99119, o99120, o99121)), o97249, o97250))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(o99165, java.lang.Object(Tree(o99166, o97256, NULL)), NULL)))
Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271))) → Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(o99277, java.lang.Object(Tree(o99278, o97270, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o66992, o66993)), java.lang.Object(Tree(NULL, o66992, o66993))) → Load37906(o66388, o66387, o66992, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o67002, o67003)), java.lang.Object(Tree(NULL, o67002, o67003))) → Load37906(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, o67002, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66997, o66998))) → Store37702(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66997)
Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264))) → JMP46979(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99224, java.lang.Object(Tree(o99225, o97263, NULL)), NULL)))
The set Q consists of the following terms:
NULL31532(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)))
Load31861(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)))
JMP43433(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(x8, java.lang.Object(Tree(x9, x10, NULL)), NULL)))
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(java.lang.Object(Tree(x8, x9, x10)), x11, x12)))
JMP44585(x0, x1, x2, x3)
Store44491(x0, x1, x2, x3)
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(NULL, x6, x7)))
Load37906(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)))
Store37702(x0, x1, java.lang.Object(Tree(x2, x3, x4)), x5)
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(NULL, x8, x9)))
JMP46979(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, NULL)), NULL)))
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)))

### (8) ITRStoQTRSProof (EQUIVALENT transformation)

Represented integers and predefined function symbols by Terms

### (9) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

Load31330(o48160, o48159, o48157, o48158) → NULL31532(o48160, o48159, o48158, o48157)
NULL31532(o48592, o48591, o48590, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2))) → Load31861(o48592, o48591, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2)), o48590)
Load31861(o49481, o49480, java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2))) → Load36791(o49481, o49480, java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)))
JMP43433(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL))) → Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68588, o68589, o68590)), o66987, o66988))) → Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993))) → Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o68614, java.lang.Object(Tree(o68615, o66992, NULL)), NULL)))
Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003))) → Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o68686, java.lang.Object(Tree(o68687, o67002, NULL)), NULL)))
Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998))) → JMP43433(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68654, java.lang.Object(Tree(o68655, o66997, NULL)), NULL)))
JMP44585(o97213, o97212, o97210, o97249) → Load31330(o97213, o97212, o97210, o97249)
Store44491(o97213, o97212, o97210, o97249) → Load31330(o97213, o97212, o97210, o97249)
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97249, o97250))) → Load31330(o97213, o97212, o97210, o97249)
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(NULL, o97256, o97257)), java.lang.Object(Tree(NULL, o97256, o97257))) → JMP44585(o97213, o97212, o97210, o97256)
Load44066(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, java.lang.Object(Tree(NULL, o97270, o97271)), java.lang.Object(Tree(NULL, o97270, o97271))) → JMP44585(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, o97270)
Load44066(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97263, o97264))) → Store44491(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, o97263)
Load37906(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2))) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Store37702(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66987) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66987, o66988))) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
JMP46979(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99119, o99120, o99121)), o97249, o97250))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(o99165, java.lang.Object(Tree(o99166, o97256, NULL)), NULL)))
Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271))) → Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(o99277, java.lang.Object(Tree(o99278, o97270, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o66992, o66993)), java.lang.Object(Tree(NULL, o66992, o66993))) → Load37906(o66388, o66387, o66992, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o67002, o67003)), java.lang.Object(Tree(NULL, o67002, o67003))) → Load37906(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, o67002, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66997, o66998))) → Store37702(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66997)
Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264))) → JMP46979(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99224, java.lang.Object(Tree(o99225, o97263, NULL)), NULL)))

The set Q consists of the following terms:

NULL31532(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)))
Load31861(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)))
JMP43433(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(x8, java.lang.Object(Tree(x9, x10, NULL)), NULL)))
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(java.lang.Object(Tree(x8, x9, x10)), x11, x12)))
JMP44585(x0, x1, x2, x3)
Store44491(x0, x1, x2, x3)
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(NULL, x6, x7)))
Load37906(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)))
Store37702(x0, x1, java.lang.Object(Tree(x2, x3, x4)), x5)
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(NULL, x8, x9)))
JMP46979(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, NULL)), NULL)))
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)))

### (10) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

### (11) Obligation:

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

LOAD31330(o48160, o48159, o48157, o48158) → NULL315321(o48160, o48159, o48158, o48157)
NULL315321(o48592, o48591, o48590, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2))) → LOAD31861(o48592, o48591, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2)), o48590)
LOAD31861(o49481, o49480, java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2))) → LOAD36791(o49481, o49480, java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)))
JMP434331(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68588, o68589, o68590)), o66987, o66988))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o68614, java.lang.Object(Tree(o68615, o66992, NULL)), NULL)))
LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003))) → LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o68686, java.lang.Object(Tree(o68687, o67002, NULL)), NULL)))
LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998))) → JMP434331(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68654, java.lang.Object(Tree(o68655, o66997, NULL)), NULL)))
JMP445851(o97213, o97212, o97210, o97249) → LOAD31330(o97213, o97212, o97210, o97249)
STORE44491(o97213, o97212, o97210, o97249) → LOAD31330(o97213, o97212, o97210, o97249)
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97249, o97250))) → LOAD31330(o97213, o97212, o97210, o97249)
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(NULL, o97256, o97257)), java.lang.Object(Tree(NULL, o97256, o97257))) → JMP445851(o97213, o97212, o97210, o97256)
LOAD44066(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, java.lang.Object(Tree(NULL, o97270, o97271)), java.lang.Object(Tree(NULL, o97270, o97271))) → JMP445851(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, o97270)
LOAD44066(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97263, o97264))) → STORE44491(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, o97263)
LOAD37906(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2))) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
STORE37702(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66987) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66987, o66988))) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
JMP469791(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99119, o99120, o99121)), o97249, o97250))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(o99165, java.lang.Object(Tree(o99166, o97256, NULL)), NULL)))
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271))) → LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(o99277, java.lang.Object(Tree(o99278, o97270, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o66992, o66993)), java.lang.Object(Tree(NULL, o66992, o66993))) → LOAD37906(o66388, o66387, o66992, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o67002, o67003)), java.lang.Object(Tree(NULL, o67002, o67003))) → LOAD37906(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, o67002, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66997, o66998))) → STORE37702(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66997)
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264))) → JMP469791(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99224, java.lang.Object(Tree(o99225, o97263, NULL)), NULL)))

The TRS R consists of the following rules:

Load31330(o48160, o48159, o48157, o48158) → NULL31532(o48160, o48159, o48158, o48157)
NULL31532(o48592, o48591, o48590, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2))) → Load31861(o48592, o48591, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2)), o48590)
Load31861(o49481, o49480, java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2))) → Load36791(o49481, o49480, java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)))
JMP43433(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL))) → Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68588, o68589, o68590)), o66987, o66988))) → Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993))) → Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o68614, java.lang.Object(Tree(o68615, o66992, NULL)), NULL)))
Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003))) → Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o68686, java.lang.Object(Tree(o68687, o67002, NULL)), NULL)))
Load36791(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998))) → JMP43433(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68654, java.lang.Object(Tree(o68655, o66997, NULL)), NULL)))
JMP44585(o97213, o97212, o97210, o97249) → Load31330(o97213, o97212, o97210, o97249)
Store44491(o97213, o97212, o97210, o97249) → Load31330(o97213, o97212, o97210, o97249)
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97249, o97250))) → Load31330(o97213, o97212, o97210, o97249)
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(NULL, o97256, o97257)), java.lang.Object(Tree(NULL, o97256, o97257))) → JMP44585(o97213, o97212, o97210, o97256)
Load44066(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, java.lang.Object(Tree(NULL, o97270, o97271)), java.lang.Object(Tree(NULL, o97270, o97271))) → JMP44585(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, o97270)
Load44066(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97263, o97264))) → Store44491(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, o97263)
Load37906(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2))) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Store37702(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66987) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66987, o66988))) → Load44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
JMP46979(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99119, o99120, o99121)), o97249, o97250))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
Load44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257))) → Load44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(o99165, java.lang.Object(Tree(o99166, o97256, NULL)), NULL)))
Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271))) → Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(o99277, java.lang.Object(Tree(o99278, o97270, NULL)), NULL)))
Load36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o66992, o66993)), java.lang.Object(Tree(NULL, o66992, o66993))) → Load37906(o66388, o66387, o66992, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o67002, o67003)), java.lang.Object(Tree(NULL, o67002, o67003))) → Load37906(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, o67002, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
Load36791(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66997, o66998))) → Store37702(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66997)
Load44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264))) → JMP46979(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99224, java.lang.Object(Tree(o99225, o97263, NULL)), NULL)))

The set Q consists of the following terms:

NULL31532(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)))
Load31861(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)))
JMP43433(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(x8, java.lang.Object(Tree(x9, x10, NULL)), NULL)))
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(java.lang.Object(Tree(x8, x9, x10)), x11, x12)))
JMP44585(x0, x1, x2, x3)
Store44491(x0, x1, x2, x3)
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(NULL, x6, x7)))
Load37906(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)))
Store37702(x0, x1, java.lang.Object(Tree(x2, x3, x4)), x5)
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(NULL, x8, x9)))
JMP46979(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, NULL)), NULL)))
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)))

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

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

### (13) Obligation:

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

LOAD31330(o48160, o48159, o48157, o48158) → NULL315321(o48160, o48159, o48158, o48157)
NULL315321(o48592, o48591, o48590, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2))) → LOAD31861(o48592, o48591, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2)), o48590)
LOAD31861(o49481, o49480, java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2))) → LOAD36791(o49481, o49480, java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)))
JMP434331(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68588, o68589, o68590)), o66987, o66988))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o68614, java.lang.Object(Tree(o68615, o66992, NULL)), NULL)))
LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003))) → LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o68686, java.lang.Object(Tree(o68687, o67002, NULL)), NULL)))
LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998))) → JMP434331(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68654, java.lang.Object(Tree(o68655, o66997, NULL)), NULL)))
JMP445851(o97213, o97212, o97210, o97249) → LOAD31330(o97213, o97212, o97210, o97249)
STORE44491(o97213, o97212, o97210, o97249) → LOAD31330(o97213, o97212, o97210, o97249)
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97249, o97250))) → LOAD31330(o97213, o97212, o97210, o97249)
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(NULL, o97256, o97257)), java.lang.Object(Tree(NULL, o97256, o97257))) → JMP445851(o97213, o97212, o97210, o97256)
LOAD44066(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, java.lang.Object(Tree(NULL, o97270, o97271)), java.lang.Object(Tree(NULL, o97270, o97271))) → JMP445851(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, o97270)
LOAD44066(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97263, o97264))) → STORE44491(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, o97263)
LOAD37906(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2))) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
STORE37702(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66987) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66987, o66988))) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
JMP469791(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99119, o99120, o99121)), o97249, o97250))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(o99165, java.lang.Object(Tree(o99166, o97256, NULL)), NULL)))
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271))) → LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(o99277, java.lang.Object(Tree(o99278, o97270, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o66992, o66993)), java.lang.Object(Tree(NULL, o66992, o66993))) → LOAD37906(o66388, o66387, o66992, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o67002, o67003)), java.lang.Object(Tree(NULL, o67002, o67003))) → LOAD37906(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, o67002, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66997, o66998))) → STORE37702(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66997)
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264))) → JMP469791(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99224, java.lang.Object(Tree(o99225, o97263, NULL)), NULL)))

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

NULL31532(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)))
Load31861(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)))
JMP43433(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(x8, java.lang.Object(Tree(x9, x10, NULL)), NULL)))
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(java.lang.Object(Tree(x8, x9, x10)), x11, x12)))
JMP44585(x0, x1, x2, x3)
Store44491(x0, x1, x2, x3)
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(NULL, x6, x7)))
Load37906(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)))
Store37702(x0, x1, java.lang.Object(Tree(x2, x3, x4)), x5)
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(NULL, x8, x9)))
JMP46979(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, NULL)), NULL)))
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)))

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

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

NULL31532(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)))
Load31861(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)))
JMP43433(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(x8, java.lang.Object(Tree(x9, x10, NULL)), NULL)))
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(java.lang.Object(Tree(x8, x9, x10)), x11, x12)))
JMP44585(x0, x1, x2, x3)
Store44491(x0, x1, x2, x3)
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(NULL, x6, x7)))
Load37906(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)))
Store37702(x0, x1, java.lang.Object(Tree(x2, x3, x4)), x5)
Load36791(x0, x1, java.lang.Object(Tree(x2, x3, x4)), java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(Tree(NULL, x8, x9)))
JMP46979(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, NULL)), NULL)))
Load44066(x0, x1, x2, java.lang.Object(Tree(x3, x4, x5)), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)))

### (15) Obligation:

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

LOAD31330(o48160, o48159, o48157, o48158) → NULL315321(o48160, o48159, o48158, o48157)
NULL315321(o48592, o48591, o48590, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2))) → LOAD31861(o48592, o48591, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2)), o48590)
LOAD31861(o49481, o49480, java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2))) → LOAD36791(o49481, o49480, java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)))
JMP434331(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68588, o68589, o68590)), o66987, o66988))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o68614, java.lang.Object(Tree(o68615, o66992, NULL)), NULL)))
LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003))) → LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o68686, java.lang.Object(Tree(o68687, o67002, NULL)), NULL)))
LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998))) → JMP434331(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68654, java.lang.Object(Tree(o68655, o66997, NULL)), NULL)))
JMP445851(o97213, o97212, o97210, o97249) → LOAD31330(o97213, o97212, o97210, o97249)
STORE44491(o97213, o97212, o97210, o97249) → LOAD31330(o97213, o97212, o97210, o97249)
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97249, o97250))) → LOAD31330(o97213, o97212, o97210, o97249)
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(NULL, o97256, o97257)), java.lang.Object(Tree(NULL, o97256, o97257))) → JMP445851(o97213, o97212, o97210, o97256)
LOAD44066(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, java.lang.Object(Tree(NULL, o97270, o97271)), java.lang.Object(Tree(NULL, o97270, o97271))) → JMP445851(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, o97270)
LOAD44066(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97263, o97264))) → STORE44491(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, o97263)
LOAD37906(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2))) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
STORE37702(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66987) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66987, o66988))) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
JMP469791(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99119, o99120, o99121)), o97249, o97250))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(o99165, java.lang.Object(Tree(o99166, o97256, NULL)), NULL)))
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271))) → LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(o99277, java.lang.Object(Tree(o99278, o97270, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o66992, o66993)), java.lang.Object(Tree(NULL, o66992, o66993))) → LOAD37906(o66388, o66387, o66992, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o67002, o67003)), java.lang.Object(Tree(NULL, o67002, o67003))) → LOAD37906(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, o67002, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66997, o66998))) → STORE37702(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66997)
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264))) → JMP469791(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99224, java.lang.Object(Tree(o99225, o97263, NULL)), NULL)))

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

### (16) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04].

The following pairs can be oriented strictly and are deleted.

LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97249, o97250))) → LOAD31330(o97213, o97212, o97210, o97249)
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(NULL, o97256, o97257)), java.lang.Object(Tree(NULL, o97256, o97257))) → JMP445851(o97213, o97212, o97210, o97256)
LOAD44066(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, java.lang.Object(Tree(NULL, o97270, o97271)), java.lang.Object(Tree(NULL, o97270, o97271))) → JMP445851(o97213, java.lang.Object(Tree(NULL, o97270, o97271)), o97210, o97270)
LOAD44066(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(NULL, o97263, o97264))) → STORE44491(o97213, java.lang.Object(Tree(NULL, o97263, o97264)), o97210, o97263)
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(JMP434331(x1, x2, x3, x4, x5)) = x2 + x3
POL(JMP445851(x1, x2, x3, x4)) = x2 + x4
POL(JMP469791(x1, x2, x3, x4, x5)) = x2 + x5
POL(LOAD31330(x1, x2, x3, x4)) = x2 + x4
POL(LOAD31861(x1, x2, x3, x4)) = x2 + x4
POL(LOAD36791(x1, x2, x3, x4, x5)) = x2 + x3
POL(LOAD37906(x1, x2, x3, x4)) = x2 + x4
POL(LOAD44066(x1, x2, x3, x4, x5)) = x2 + x5
POL(NULL) = 1
POL(NULL315321(x1, x2, x3, x4)) = x2 + x3
POL(STORE37702(x1, x2, x3, x4)) = x2 + x3
POL(STORE44491(x1, x2, x3, x4)) = x2 + x4
POL(Tree(x1, x2, x3)) = x1 + x2
POL(java.lang.Object(x1)) = x1

The following usable rules [FROCOS05] were oriented: none

### (17) Obligation:

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

LOAD31330(o48160, o48159, o48157, o48158) → NULL315321(o48160, o48159, o48158, o48157)
NULL315321(o48592, o48591, o48590, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2))) → LOAD31861(o48592, o48591, java.lang.Object(Tree(o49086Field0, o49086Field1, o49086Field2)), o48590)
LOAD31861(o49481, o49480, java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2))) → LOAD36791(o49481, o49480, java.lang.Object(Tree(o50362Field0, o50362Field1, o50362Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)), java.lang.Object(Tree(o49478Field0, o49478Field1, o49478Field2)))
JMP434331(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68588, o68589, o68590)), o66987, o66988))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o68614, java.lang.Object(Tree(o68615, o66992, NULL)), NULL)))
LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003))) → LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o68686, java.lang.Object(Tree(o68687, o67002, NULL)), NULL)))
LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998))) → JMP434331(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68654, java.lang.Object(Tree(o68655, o66997, NULL)), NULL)))
JMP445851(o97213, o97212, o97210, o97249) → LOAD31330(o97213, o97212, o97210, o97249)
STORE44491(o97213, o97212, o97210, o97249) → LOAD31330(o97213, o97212, o97210, o97249)
LOAD37906(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2))) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
STORE37702(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66987) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66987, o66988))) → LOAD44066(o66388, o66387, o66987, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
JMP469791(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99119, o99120, o99121)), o97249, o97250))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(o99165, java.lang.Object(Tree(o99166, o97256, NULL)), NULL)))
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271))) → LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(o99277, java.lang.Object(Tree(o99278, o97270, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o66992, o66993)), java.lang.Object(Tree(NULL, o66992, o66993))) → LOAD37906(o66388, o66387, o66992, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(NULL, o67002, o67003)), java.lang.Object(Tree(NULL, o67002, o67003))) → LOAD37906(java.lang.Object(Tree(NULL, o67002, o67003)), o66387, o67002, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)))
LOAD36791(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(NULL, o66997, o66998))) → STORE37702(java.lang.Object(Tree(NULL, o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), o66997)
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264))) → JMP469791(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99224, java.lang.Object(Tree(o99225, o97263, NULL)), NULL)))

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

### (18) DependencyGraphProof (EQUIVALENT transformation)

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

### (20) Obligation:

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

LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99119, o99120, o99121)), o97249, o97250))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(o99165, java.lang.Object(Tree(o99166, o97256, NULL)), NULL)))
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264))) → JMP469791(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99224, java.lang.Object(Tree(o99225, o97263, NULL)), NULL)))
JMP469791(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271))) → LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(o99277, java.lang.Object(Tree(o99278, o97270, NULL)), NULL)))

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

### (21) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99119, o99120, o99121)), o97249, o97250))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99165, o99166, o99167)), o97256, o97257)), java.lang.Object(Tree(o99165, java.lang.Object(Tree(o99166, o97256, NULL)), NULL)))
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264))) → JMP469791(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99224, o99225, o99226)), o97263, o97264)), o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99224, java.lang.Object(Tree(o99225, o97263, NULL)), NULL)))
JMP469791(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL))) → LOAD44066(o97213, o97212, o97210, java.lang.Object(Tree(o97211Field0, o97211Field1, o97211Field2)), java.lang.Object(Tree(o99119, java.lang.Object(Tree(o99120, o97249, NULL)), NULL)))
LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271))) → LOAD44066(o97213, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), o97210, java.lang.Object(Tree(java.lang.Object(Tree(o99277, o99278, o99279)), o97270, o97271)), java.lang.Object(Tree(o99277, java.lang.Object(Tree(o99278, o97270, NULL)), NULL)))

Used ordering: Polynomial interpretation [POLO]:

POL(JMP469791(x1, x2, x3, x4, x5)) = 2 + x1 + x2 + x3 + 2·x4 + 2·x5
POL(LOAD44066(x1, x2, x3, x4, x5)) = x1 + x2 + x3 + 2·x4 + 2·x5
POL(NULL) = 0
POL(Tree(x1, x2, x3)) = 2·x1 + x2 + 2·x3
POL(java.lang.Object(x1)) = 2 + x1

### (22) Obligation:

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

### (23) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

### (25) Obligation:

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

LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68588, o68589, o68590)), o66987, o66988))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o68614, java.lang.Object(Tree(o68615, o66992, NULL)), NULL)))
LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998))) → JMP434331(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68654, java.lang.Object(Tree(o68655, o66997, NULL)), NULL)))
JMP434331(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003))) → LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o68686, java.lang.Object(Tree(o68687, o67002, NULL)), NULL)))

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

### (26) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68588, o68589, o68590)), o66987, o66988))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68614, o68615, o68616)), o66992, o66993)), java.lang.Object(Tree(o68614, java.lang.Object(Tree(o68615, o66992, NULL)), NULL)))
JMP434331(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL))) → LOAD36791(o66388, o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68588, java.lang.Object(Tree(o68589, o66987, NULL)), NULL)))
LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003))) → LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68686, o68687, o68688)), o67002, o67003)), java.lang.Object(Tree(o68686, java.lang.Object(Tree(o68687, o67002, NULL)), NULL)))

Used ordering: Polynomial interpretation [POLO]:

POL(JMP434331(x1, x2, x3, x4, x5)) = 2 + 2·x1 + x2 + 2·x3 + x4 + x5
POL(LOAD36791(x1, x2, x3, x4, x5)) = 2·x1 + x2 + 2·x3 + x4 + x5
POL(NULL) = 0
POL(Tree(x1, x2, x3)) = 2·x1 + x2 + 2·x3
POL(java.lang.Object(x1)) = 2 + x1

### (27) Obligation:

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

LOAD36791(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998))) → JMP434331(java.lang.Object(Tree(java.lang.Object(Tree(o68654, o68655, o68656)), o66997, o66998)), o66387, java.lang.Object(Tree(o66386Field0, o66386Field1, o66386Field2)), java.lang.Object(Tree(o66385Field0, o66385Field1, o66385Field2)), java.lang.Object(Tree(o68654, java.lang.Object(Tree(o68655, o66997, NULL)), NULL)))

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

### (28) DependencyGraphProof (EQUIVALENT transformation)

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

### (30) 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:
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC)))) → Load36231ARR1(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Load36231ARR1(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Cond_Load36231ARR1(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Cond_Load36231ARR1(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)))
JMP40088(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2))) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)), o71058, o71059))) → Load36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR2(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)))
Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2))) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355 + -1, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)), o70982))) → Load36231ARR3(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Load36231ARR3(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Cond_Load36231ARR3(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Cond_Load36231ARR3(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355 + -1, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)))
Inc42733(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC)))) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355 + -1, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))))
JMP42561(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC)))) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355 + -1, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, NULL, o70982))) → Load36231ARR4(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, NULL, o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Load36231ARR4(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Cond_Load36231ARR4(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Cond_Load36231ARR4(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355 + -1, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC)))) → Load36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR5(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → JMP40088(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)))
JMP42611(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC)))) → Inc42733(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o71058, o71059))) → Load36231ARR6(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR6(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR6(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR6(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Inc42733(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, NULL, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, NULL, java.lang.Object(EOC)))) → Load36231ARR7(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, NULL, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, NULL, java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Load36231ARR7(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Cond_Load36231ARR7(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Cond_Load36231ARR7(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → JMP42561(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(NULL, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o64336, java.lang.Object(EOC)))) → Load36231ARR8(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(NULL, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR8(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR8(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR8(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → JMP42611(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))))
The set Q consists of the following terms:
Load36231ARR1(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(EOC))), java.lang.Object(Tree(x4, java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x8, x9, x10)))
Cond_Load36231ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(EOC))), java.lang.Object(Tree(x4, java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x8, x9, x10)))
JMP40088(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, x7, x8)))
Load36231(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)))
Load36231ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)), java.lang.Object(java.lang.String(x11, x12, x13, x14)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)), java.lang.Object(java.lang.String(x11, x12, x13, x14)))
Inc40003(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, x7, x8)))
Load36231(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, x9)), x10)))
Load36231ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, x9)), x10)), java.lang.Object(java.lang.String(0, x11, x12, x13)))
Cond_Load36231ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, x9)), x10)), java.lang.Object(java.lang.String(0, x11, x12, x13)))
Inc42733(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))))
JMP42561(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, NULL, x7)))
Load36231ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x7)), java.lang.Object(java.lang.String(0, x8, x9, x10)))
Cond_Load36231ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x7)), java.lang.Object(java.lang.String(0, x8, x9, x10)))
Load36231ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5, x6)), x7, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x4, x5, x6)), x7, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5, x6)), x7, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x4, x5, x6)), x7, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
JMP42611(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, x6, x7)))
Load36231ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load36231ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Load36231ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(x4, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x5, x6, x7)))
Cond_Load36231ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(x4, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x5, x6, x7)))
Load36231ARR8(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x4, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x4, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load36231ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x4, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x4, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x5, x6, x7, x8)))

### (31) DuplicateArgsRemoverProof (EQUIVALENT transformation)

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

JMP42611(x1, x2, x3, x4, x5) → JMP42611(x1, x2, x3, x5)
Cond_Load36231ARR8(x1, x2, x3, x4, x5, x6, x7) → Cond_Load36231ARR8(x1, x2, x3, x4, x6, x7)
Load36231ARR8(x1, x2, x3, x4, x5, x6) → Load36231ARR8(x1, x2, x3, x5, x6)
JMP42561(x1, x2, x3, x4, x5) → JMP42561(x1, x2, x3, x5)
Cond_Load36231ARR7(x1, x2, x3, x4, x5, x6, x7) → Cond_Load36231ARR7(x1, x2, x3, x4, x6, x7)
Load36231ARR7(x1, x2, x3, x4, x5, x6) → Load36231ARR7(x1, x2, x3, x5, x6)
Inc42733(x1, x2, x3, x4, x5) → Inc42733(x1, x2, x3, x5)
Cond_Load36231ARR5(x1, x2, x3, x4, x5, x6, x7) → Cond_Load36231ARR5(x1, x2, x3, x4, x6, x7)
Load36231ARR5(x1, x2, x3, x4, x5, x6) → Load36231ARR5(x1, x2, x3, x5, x6)
Cond_Load36231ARR1(x1, x2, x3, x4, x5, x6, x7) → Cond_Load36231ARR1(x1, x2, x3, x4, x6, x7)
Load36231ARR1(x1, x2, x3, x4, x5, x6) → Load36231ARR1(x1, x2, x3, x5, x6)

### (32) 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:
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC)))) → Load36231ARR1(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Load36231ARR1(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Cond_Load36231ARR1(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Cond_Load36231ARR1(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o71512Field0, o71512Field1, o71512Field2)))
JMP40088(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2))) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)), o71058, o71059))) → Load36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR2(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72272Field0, o72272Field1, o72272Field2)))
Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2))) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355 + -1, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)), o70982))) → Load36231ARR3(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Load36231ARR3(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Cond_Load36231ARR3(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Cond_Load36231ARR3(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355 + -1, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o72092Field0, o72092Field1, o72092Field2)))
Inc42733(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC)))) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355 + -1, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))))
JMP42561(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC)))) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355 + -1, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, NULL, o70982))) → Load36231ARR4(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, NULL, o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Load36231ARR4(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Cond_Load36231ARR4(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Cond_Load36231ARR4(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o70980, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o70982)), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355 + -1, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC)))) → Load36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR5(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → JMP40088(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)), o64336, java.lang.Object(EOC))), java.lang.Object(Tree(o71695Field0, o71695Field1, o71695Field2)))
JMP42611(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC)))) → Inc42733(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o71058, o71059))) → Load36231ARR6(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR6(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR6(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR6(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o71058, o71059)), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Inc42733(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(o64335, o64336, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, NULL, java.lang.Object(EOC))), java.lang.Object(Tree(o64335, NULL, java.lang.Object(EOC)))) → Load36231ARR7(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, NULL, java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Load36231ARR7(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → Cond_Load36231ARR7(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022)))
Cond_Load36231ARR7(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i20843, i20845, a49022))) → JMP42561(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(o64335, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(NULL, o64336, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o64336, java.lang.Object(EOC)))) → Load36231ARR8(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(NULL, o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR8(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR8(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR8(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → JMP42611(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o64336, java.lang.Object(EOC))))
The set Q consists of the following terms:
Load36231ARR1(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x8, x9, x10)))
Cond_Load36231ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, java.lang.Object(Tree(x5, x6, x7)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x8, x9, x10)))
JMP40088(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, x7, x8)))
Load36231(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)))
Load36231ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)), java.lang.Object(java.lang.String(x11, x12, x13, x14)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x6, x7, x8)), x9, x10)), java.lang.Object(java.lang.String(x11, x12, x13, x14)))
Inc40003(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, x7, x8)))
Load36231(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, x9)), x10)))
Load36231ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, x9)), x10)), java.lang.Object(java.lang.String(0, x11, x12, x13)))
Cond_Load36231ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, java.lang.Object(Tree(x7, x8, x9)), x10)), java.lang.Object(java.lang.String(0, x11, x12, x13)))
Inc42733(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))))
JMP42561(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, NULL, x7)))
Load36231ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x7)), java.lang.Object(java.lang.String(0, x8, x9, x10)))
Cond_Load36231ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x7)), java.lang.Object(java.lang.String(0, x8, x9, x10)))
Load36231ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5, x6)), x7, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(java.lang.Object(Tree(x4, x5, x6)), x7, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
JMP42611(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))))
Load36231(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, x6, x7)))
Load36231ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Cond_Load36231ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x6, x7)), java.lang.Object(java.lang.String(x8, x9, x10, x11)))
Load36231ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x5, x6, x7)))
Cond_Load36231ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(x4, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x5, x6, x7)))
Load36231ARR8(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x4, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load36231ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x4, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x5, x6, x7, x8)))

### (33) ITRSFilterProcessorProof (SOUND transformation)

We filter according the heuristic IdpCand1ShapeHeuristic
We removed arguments according to the following replacements:

Tree(x1, x2, x3) → Tree
Inc40003(x1, x2, x3, x4, x5) → Inc40003(x1, x2, x3)
JMP40088(x1, x2, x3, x4, x5) → JMP40088(x1, x2, x3)
Cond_Load36231ARR2(x1, x2, x3, x4, x5, x6, x7) → Cond_Load36231ARR2(x1, x2, x3, x4, x7)
Cond_Load36231ARR3(x1, x2, x3, x4, x5, x6, x7) → Cond_Load36231ARR3(x1, x2, x3, x4)
Inc42733(x1, x2, x3, x4) → Inc42733(x1, x2, x3)
JMP42561(x1, x2, x3, x4) → JMP42561(x1, x2, x3)
Cond_Load36231ARR4(x1, x2, x3, x4, x5, x6, x7) → Cond_Load36231ARR4(x1, x2, x3, x4)
Cond_Load36231ARR5(x1, x2, x3, x4, x5, x6) → Cond_Load36231ARR5(x1, x2, x3, x4, x6)
JMP42611(x1, x2, x3, x4) → JMP42611(x1, x2, x3)
Cond_Load36231ARR6(x1, x2, x3, x4, x5, x6, x7) → Cond_Load36231ARR6(x1, x2, x3, x4, x7)
Cond_Load36231ARR8(x1, x2, x3, x4, x5, x6) → Cond_Load36231ARR8(x1, x2, x3, x4, x6)

### (34) 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:
Load36231ARR1(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Cond_Load36231ARR1(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355)
Cond_Load36231ARR1(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)
JMP40088(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355)
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR2(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)
Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355 + -1)
Load36231ARR3(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Cond_Load36231ARR3(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355)
Cond_Load36231ARR3(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355 + -1)
Inc42733(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355 + -1)
JMP42561(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355 + -1)
Load36231ARR4(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Cond_Load36231ARR4(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355)
Cond_Load36231ARR4(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355 + -1)
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR5(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → JMP40088(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)
JMP42611(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → Inc42733(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355)
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231ARR6(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR6(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR6(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR6(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Inc42733(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)
Load36231ARR7(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Cond_Load36231ARR7(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355)
Cond_Load36231ARR7(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → JMP42561(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231ARR8(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR8(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR8(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR8(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → JMP42611(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)
The set Q consists of the following terms:
JMP40088(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc40003(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Inc42733(java.lang.Object(ARRAY(x0, x1)), x2, x3)
JMP42561(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
JMP42611(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Load36231ARR8(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

### (35) ITRSFSMergerProof (SOUND transformation)

The following function symbols have been merged:

### (36) 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:
Load36231ARR1(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Cond_Load36231ARR1(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355)
Cond_Load36231ARR1(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)
JMP40088(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355)
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR2(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)
Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355 + -1)
Load36231ARR3(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Cond_Load36231ARR3(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355)
Cond_Load36231ARR3(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355 + -1)
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR5(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → JMP40088(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)
The set Q consists of the following terms:
JMP40088(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc40003(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

### (38) Obligation:

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

The following domains are used:

Boolean, Integer

The ITRS R consists of the following rules:
Load36231ARR1(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Cond_Load36231ARR1(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355)
Cond_Load36231ARR1(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)
JMP40088(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355)
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR2(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)
Inc40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355 + -1)
Load36231ARR3(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Cond_Load36231ARR3(i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355)
Cond_Load36231ARR3(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355 + -1)
Load36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → Load36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Load36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → Cond_Load36231ARR5(i21156 > 0 && i20225 > 0 && i20225 < i2 && i20355 > 0 && i20225 + 1 > 0, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → JMP40088(java.lang.Object(ARRAY(i2, a47355data)), i20225 + 1, i20355)

The integer pair graph contains the following rules and edges:
(1): LOAD36231ARR1(java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1]) → COND_LOAD36231ARR1(i20225[1] > 0 && i20225[1] < i2[1] && i20355[1] > 0 && i20225[1] + 1 > 0, java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])
(2): COND_LOAD36231ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2], i20355[2]) → INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2] + 1, i20355[2])
(3): JMP40088'(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3]) → INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])
(4): LOAD36231(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4]) → LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))
(5): LOAD36231ARR2(java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5]))) → COND_LOAD36231ARR2(i21156[5] > 0 && i20225[5] > 0 && i20225[5] < i2[5] && i20355[5] > 0 && i20225[5] + 1 > 0, java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))
(6): COND_LOAD36231ARR2(TRUE, java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6], i20355[6], java.lang.Object(java.lang.String(i21156[6], i20843[6], i20845[6], a49022[6]))) → INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6] + 1, i20355[6])
(7): INC40003(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7]) → LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7] + -1)
(9): LOAD36231ARR3(java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9]) → COND_LOAD36231ARR3(i20225[9] > 0 && i20225[9] < i2[9] && i20355[9] > 0 && i20225[9] + 1 > 0, java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])
(10): COND_LOAD36231ARR3(TRUE, java.lang.Object(ARRAY(i2[10], a47355data[10])), i20225[10], i20355[10]) → LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), i20225[10] + 1, i20355[10] + -1)
(11): LOAD36231(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11]) → LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))
(12): LOAD36231ARR5(java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12]))) → COND_LOAD36231ARR5(i21156[12] > 0 && i20225[12] > 0 && i20225[12] < i2[12] && i20355[12] > 0 && i20225[12] + 1 > 0, java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))
(13): COND_LOAD36231ARR5(TRUE, java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13], i20355[13], java.lang.Object(java.lang.String(i21156[13], i20843[13], i20845[13], a49022[13]))) → JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13] + 1, i20355[13])

(0) -> (1), if ((i20225[0]* i20225[1])∧(i20355[0]* i20355[1])∧(java.lang.Object(ARRAY(i2[0], a47355data[0])) →* java.lang.Object(ARRAY(i2[1], a47355data[1]))))

(1) -> (2), if ((i20225[1] > 0 && i20225[1] < i2[1] && i20355[1] > 0 && i20225[1] + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i2[1], a47355data[1])) →* java.lang.Object(ARRAY(i2[2], a47355data[2])))∧(i20355[1]* i20355[2])∧(i20225[1]* i20225[2]))

(2) -> (7), if ((i20225[2] + 1* i20581[7])∧(java.lang.Object(ARRAY(i2[2], a47355data[2])) →* java.lang.Object(ARRAY(i2[7], a47355data[7])))∧(i20355[2]* i20355[7]))

(3) -> (7), if ((java.lang.Object(ARRAY(i2[3], a47355data[3])) →* java.lang.Object(ARRAY(i2[7], a47355data[7])))∧(i20581[3]* i20581[7])∧(i20355[3]* i20355[7]))

(4) -> (5), if ((java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])) →* java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))∧(i20355[4]* i20355[5])∧(i20225[4]* i20225[5])∧(java.lang.Object(ARRAY(i2[4], a47355data[4])) →* java.lang.Object(ARRAY(i2[5], a47355data[5]))))

(5) -> (6), if ((i20355[5]* i20355[6])∧(i21156[5] > 0 && i20225[5] > 0 && i20225[5] < i2[5] && i20355[5] > 0 && i20225[5] + 1 > 0* TRUE)∧(i20225[5]* i20225[6])∧(java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])) →* java.lang.Object(java.lang.String(i21156[6], i20843[6], i20845[6], a49022[6])))∧(java.lang.Object(ARRAY(i2[5], a47355data[5])) →* java.lang.Object(ARRAY(i2[6], a47355data[6]))))

(6) -> (7), if ((i20355[6]* i20355[7])∧(java.lang.Object(ARRAY(i2[6], a47355data[6])) →* java.lang.Object(ARRAY(i2[7], a47355data[7])))∧(i20225[6] + 1* i20581[7]))

(7) -> (0), if ((java.lang.Object(ARRAY(i2[7], a47355data[7])) →* java.lang.Object(ARRAY(i2[0], a47355data[0])))∧(i20581[7]* i20225[0])∧(i20355[7] + -1* i20355[0]))

(7) -> (4), if ((i20355[7] + -1* i20355[4])∧(java.lang.Object(ARRAY(i2[7], a47355data[7])) →* java.lang.Object(ARRAY(i2[4], a47355data[4])))∧(i20581[7]* i20225[4]))

(7) -> (8), if ((i20355[7] + -1* i20355[8])∧(i20581[7]* i20225[8])∧(java.lang.Object(ARRAY(i2[7], a47355data[7])) →* java.lang.Object(ARRAY(i2[8], a47355data[8]))))

(7) -> (11), if ((java.lang.Object(ARRAY(i2[7], a47355data[7])) →* java.lang.Object(ARRAY(i2[11], a47355data[11])))∧(i20581[7]* i20225[11])∧(i20355[7] + -1* i20355[11]))

(8) -> (9), if ((i20225[8]* i20225[9])∧(java.lang.Object(ARRAY(i2[8], a47355data[8])) →* java.lang.Object(ARRAY(i2[9], a47355data[9])))∧(i20355[8]* i20355[9]))

(9) -> (10), if ((i20225[9] > 0 && i20225[9] < i2[9] && i20355[9] > 0 && i20225[9] + 1 > 0* TRUE)∧(i20355[9]* i20355[10])∧(java.lang.Object(ARRAY(i2[9], a47355data[9])) →* java.lang.Object(ARRAY(i2[10], a47355data[10])))∧(i20225[9]* i20225[10]))

(10) -> (0), if ((java.lang.Object(ARRAY(i2[10], a47355data[10])) →* java.lang.Object(ARRAY(i2[0], a47355data[0])))∧(i20355[10] + -1* i20355[0])∧(i20225[10] + 1* i20225[0]))

(10) -> (4), if ((i20225[10] + 1* i20225[4])∧(java.lang.Object(ARRAY(i2[10], a47355data[10])) →* java.lang.Object(ARRAY(i2[4], a47355data[4])))∧(i20355[10] + -1* i20355[4]))

(10) -> (8), if ((i20355[10] + -1* i20355[8])∧(i20225[10] + 1* i20225[8])∧(java.lang.Object(ARRAY(i2[10], a47355data[10])) →* java.lang.Object(ARRAY(i2[8], a47355data[8]))))

(10) -> (11), if ((i20355[10] + -1* i20355[11])∧(i20225[10] + 1* i20225[11])∧(java.lang.Object(ARRAY(i2[10], a47355data[10])) →* java.lang.Object(ARRAY(i2[11], a47355data[11]))))

(11) -> (12), if ((i20355[11]* i20355[12])∧(java.lang.Object(ARRAY(i2[11], a47355data[11])) →* java.lang.Object(ARRAY(i2[12], a47355data[12])))∧(java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])) →* java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))∧(i20225[11]* i20225[12]))

(12) -> (13), if ((i21156[12] > 0 && i20225[12] > 0 && i20225[12] < i2[12] && i20355[12] > 0 && i20225[12] + 1 > 0* TRUE)∧(i20225[12]* i20225[13])∧(java.lang.Object(ARRAY(i2[12], a47355data[12])) →* java.lang.Object(ARRAY(i2[13], a47355data[13])))∧(java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])) →* java.lang.Object(java.lang.String(i21156[13], i20843[13], i20845[13], a49022[13])))∧(i20355[12]* i20355[13]))

(13) -> (3), if ((i20355[13]* i20355[3])∧(i20225[13] + 1* i20581[3])∧(java.lang.Object(ARRAY(i2[13], a47355data[13])) →* java.lang.Object(ARRAY(i2[3], a47355data[3]))))

The set Q consists of the following terms:
JMP40088(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc40003(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

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

### (40) Obligation:

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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(1): LOAD36231ARR1(java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1]) → COND_LOAD36231ARR1(i20225[1] > 0 && i20225[1] < i2[1] && i20355[1] > 0 && i20225[1] + 1 > 0, java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])
(2): COND_LOAD36231ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2], i20355[2]) → INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2] + 1, i20355[2])
(3): JMP40088'(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3]) → INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])
(4): LOAD36231(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4]) → LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))
(5): LOAD36231ARR2(java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5]))) → COND_LOAD36231ARR2(i21156[5] > 0 && i20225[5] > 0 && i20225[5] < i2[5] && i20355[5] > 0 && i20225[5] + 1 > 0, java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))
(6): COND_LOAD36231ARR2(TRUE, java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6], i20355[6], java.lang.Object(java.lang.String(i21156[6], i20843[6], i20845[6], a49022[6]))) → INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6] + 1, i20355[6])
(7): INC40003(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7]) → LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7] + -1)
(9): LOAD36231ARR3(java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9]) → COND_LOAD36231ARR3(i20225[9] > 0 && i20225[9] < i2[9] && i20355[9] > 0 && i20225[9] + 1 > 0, java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])
(10): COND_LOAD36231ARR3(TRUE, java.lang.Object(ARRAY(i2[10], a47355data[10])), i20225[10], i20355[10]) → LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), i20225[10] + 1, i20355[10] + -1)
(11): LOAD36231(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11]) → LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))
(12): LOAD36231ARR5(java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12]))) → COND_LOAD36231ARR5(i21156[12] > 0 && i20225[12] > 0 && i20225[12] < i2[12] && i20355[12] > 0 && i20225[12] + 1 > 0, java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))
(13): COND_LOAD36231ARR5(TRUE, java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13], i20355[13], java.lang.Object(java.lang.String(i21156[13], i20843[13], i20845[13], a49022[13]))) → JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13] + 1, i20355[13])

(0) -> (1), if ((i20225[0]* i20225[1])∧(i20355[0]* i20355[1])∧(java.lang.Object(ARRAY(i2[0], a47355data[0])) →* java.lang.Object(ARRAY(i2[1], a47355data[1]))))

(1) -> (2), if ((i20225[1] > 0 && i20225[1] < i2[1] && i20355[1] > 0 && i20225[1] + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i2[1], a47355data[1])) →* java.lang.Object(ARRAY(i2[2], a47355data[2])))∧(i20355[1]* i20355[2])∧(i20225[1]* i20225[2]))

(2) -> (7), if ((i20225[2] + 1* i20581[7])∧(java.lang.Object(ARRAY(i2[2], a47355data[2])) →* java.lang.Object(ARRAY(i2[7], a47355data[7])))∧(i20355[2]* i20355[7]))

(3) -> (7), if ((java.lang.Object(ARRAY(i2[3], a47355data[3])) →* java.lang.Object(ARRAY(i2[7], a47355data[7])))∧(i20581[3]* i20581[7])∧(i20355[3]* i20355[7]))

(4) -> (5), if ((java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])) →* java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))∧(i20355[4]* i20355[5])∧(i20225[4]* i20225[5])∧(java.lang.Object(ARRAY(i2[4], a47355data[4])) →* java.lang.Object(ARRAY(i2[5], a47355data[5]))))

(5) -> (6), if ((i20355[5]* i20355[6])∧(i21156[5] > 0 && i20225[5] > 0 && i20225[5] < i2[5] && i20355[5] > 0 && i20225[5] + 1 > 0* TRUE)∧(i20225[5]* i20225[6])∧(java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])) →* java.lang.Object(java.lang.String(i21156[6], i20843[6], i20845[6], a49022[6])))∧(java.lang.Object(ARRAY(i2[5], a47355data[5])) →* java.lang.Object(ARRAY(i2[6], a47355data[6]))))

(6) -> (7), if ((i20355[6]* i20355[7])∧(java.lang.Object(ARRAY(i2[6], a47355data[6])) →* java.lang.Object(ARRAY(i2[7], a47355data[7])))∧(i20225[6] + 1* i20581[7]))

(7) -> (0), if ((java.lang.Object(ARRAY(i2[7], a47355data[7])) →* java.lang.Object(ARRAY(i2[0], a47355data[0])))∧(i20581[7]* i20225[0])∧(i20355[7] + -1* i20355[0]))

(7) -> (4), if ((i20355[7] + -1* i20355[4])∧(java.lang.Object(ARRAY(i2[7], a47355data[7])) →* java.lang.Object(ARRAY(i2[4], a47355data[4])))∧(i20581[7]* i20225[4]))

(7) -> (8), if ((i20355[7] + -1* i20355[8])∧(i20581[7]* i20225[8])∧(java.lang.Object(ARRAY(i2[7], a47355data[7])) →* java.lang.Object(ARRAY(i2[8], a47355data[8]))))

(7) -> (11), if ((java.lang.Object(ARRAY(i2[7], a47355data[7])) →* java.lang.Object(ARRAY(i2[11], a47355data[11])))∧(i20581[7]* i20225[11])∧(i20355[7] + -1* i20355[11]))

(8) -> (9), if ((i20225[8]* i20225[9])∧(java.lang.Object(ARRAY(i2[8], a47355data[8])) →* java.lang.Object(ARRAY(i2[9], a47355data[9])))∧(i20355[8]* i20355[9]))

(9) -> (10), if ((i20225[9] > 0 && i20225[9] < i2[9] && i20355[9] > 0 && i20225[9] + 1 > 0* TRUE)∧(i20355[9]* i20355[10])∧(java.lang.Object(ARRAY(i2[9], a47355data[9])) →* java.lang.Object(ARRAY(i2[10], a47355data[10])))∧(i20225[9]* i20225[10]))

(10) -> (0), if ((java.lang.Object(ARRAY(i2[10], a47355data[10])) →* java.lang.Object(ARRAY(i2[0], a47355data[0])))∧(i20355[10] + -1* i20355[0])∧(i20225[10] + 1* i20225[0]))

(10) -> (4), if ((i20225[10] + 1* i20225[4])∧(java.lang.Object(ARRAY(i2[10], a47355data[10])) →* java.lang.Object(ARRAY(i2[4], a47355data[4])))∧(i20355[10] + -1* i20355[4]))

(10) -> (8), if ((i20355[10] + -1* i20355[8])∧(i20225[10] + 1* i20225[8])∧(java.lang.Object(ARRAY(i2[10], a47355data[10])) →* java.lang.Object(ARRAY(i2[8], a47355data[8]))))

(10) -> (11), if ((i20355[10] + -1* i20355[11])∧(i20225[10] + 1* i20225[11])∧(java.lang.Object(ARRAY(i2[10], a47355data[10])) →* java.lang.Object(ARRAY(i2[11], a47355data[11]))))

(11) -> (12), if ((i20355[11]* i20355[12])∧(java.lang.Object(ARRAY(i2[11], a47355data[11])) →* java.lang.Object(ARRAY(i2[12], a47355data[12])))∧(java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])) →* java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))∧(i20225[11]* i20225[12]))

(12) -> (13), if ((i21156[12] > 0 && i20225[12] > 0 && i20225[12] < i2[12] && i20355[12] > 0 && i20225[12] + 1 > 0* TRUE)∧(i20225[12]* i20225[13])∧(java.lang.Object(ARRAY(i2[12], a47355data[12])) →* java.lang.Object(ARRAY(i2[13], a47355data[13])))∧(java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])) →* java.lang.Object(java.lang.String(i21156[13], i20843[13], i20845[13], a49022[13])))∧(i20355[12]* i20355[13]))

(13) -> (3), if ((i20355[13]* i20355[3])∧(i20225[13] + 1* i20581[3])∧(java.lang.Object(ARRAY(i2[13], a47355data[13])) →* java.lang.Object(ARRAY(i2[3], a47355data[3]))))

The set Q consists of the following terms:
JMP40088(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc40003(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

### (41) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

### (42) Obligation:

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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(1): LOAD36231ARR1(java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1]) → COND_LOAD36231ARR1(i20225[1] > 0 && i20225[1] < i2[1] && i20355[1] > 0 && i20225[1] + 1 > 0, java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])
(2): COND_LOAD36231ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2], i20355[2]) → INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2] + 1, i20355[2])
(3): JMP40088'(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3]) → INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])
(4): LOAD36231(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4]) → LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))
(5): LOAD36231ARR2(java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5]))) → COND_LOAD36231ARR2(i21156[5] > 0 && i20225[5] > 0 && i20225[5] < i2[5] && i20355[5] > 0 && i20225[5] + 1 > 0, java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))
(6): COND_LOAD36231ARR2(TRUE, java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6], i20355[6], java.lang.Object(java.lang.String(i21156[6], i20843[6], i20845[6], a49022[6]))) → INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6] + 1, i20355[6])
(7): INC40003(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7]) → LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7] + -1)
(9): LOAD36231ARR3(java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9]) → COND_LOAD36231ARR3(i20225[9] > 0 && i20225[9] < i2[9] && i20355[9] > 0 && i20225[9] + 1 > 0, java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])
(10): COND_LOAD36231ARR3(TRUE, java.lang.Object(ARRAY(i2[10], a47355data[10])), i20225[10], i20355[10]) → LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), i20225[10] + 1, i20355[10] + -1)
(11): LOAD36231(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11]) → LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))
(12): LOAD36231ARR5(java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12]))) → COND_LOAD36231ARR5(i21156[12] > 0 && i20225[12] > 0 && i20225[12] < i2[12] && i20355[12] > 0 && i20225[12] + 1 > 0, java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))
(13): COND_LOAD36231ARR5(TRUE, java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13], i20355[13], java.lang.Object(java.lang.String(i21156[13], i20843[13], i20845[13], a49022[13]))) → JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13] + 1, i20355[13])

(0) -> (1), if ((i20225[0]* i20225[1])∧(i20355[0]* i20355[1])∧((i2[0]* i2[1])∧(a47355data[0]* a47355data[1])))

(1) -> (2), if ((i20225[1] > 0 && i20225[1] < i2[1] && i20355[1] > 0 && i20225[1] + 1 > 0* TRUE)∧((i2[1]* i2[2])∧(a47355data[1]* a47355data[2]))∧(i20355[1]* i20355[2])∧(i20225[1]* i20225[2]))

(2) -> (7), if ((i20225[2] + 1* i20581[7])∧((i2[2]* i2[7])∧(a47355data[2]* a47355data[7]))∧(i20355[2]* i20355[7]))

(3) -> (7), if (((i2[3]* i2[7])∧(a47355data[3]* a47355data[7]))∧(i20581[3]* i20581[7])∧(i20355[3]* i20355[7]))

(4) -> (5), if (((i21156[4]* i21156[5])∧(i20843[4]* i20843[5])∧(i20845[4]* i20845[5])∧(a49022[4]* a49022[5]))∧(i20355[4]* i20355[5])∧(i20225[4]* i20225[5])∧((i2[4]* i2[5])∧(a47355data[4]* a47355data[5])))

(5) -> (6), if ((i20355[5]* i20355[6])∧(i21156[5] > 0 && i20225[5] > 0 && i20225[5] < i2[5] && i20355[5] > 0 && i20225[5] + 1 > 0* TRUE)∧(i20225[5]* i20225[6])∧((i21156[5]* i21156[6])∧(i20843[5]* i20843[6])∧(i20845[5]* i20845[6])∧(a49022[5]* a49022[6]))∧((i2[5]* i2[6])∧(a47355data[5]* a47355data[6])))

(6) -> (7), if ((i20355[6]* i20355[7])∧((i2[6]* i2[7])∧(a47355data[6]* a47355data[7]))∧(i20225[6] + 1* i20581[7]))

(7) -> (0), if (((i2[7]* i2[0])∧(a47355data[7]* a47355data[0]))∧(i20581[7]* i20225[0])∧(i20355[7] + -1* i20355[0]))

(7) -> (4), if ((i20355[7] + -1* i20355[4])∧((i2[7]* i2[4])∧(a47355data[7]* a47355data[4]))∧(i20581[7]* i20225[4]))

(7) -> (8), if ((i20355[7] + -1* i20355[8])∧(i20581[7]* i20225[8])∧((i2[7]* i2[8])∧(a47355data[7]* a47355data[8])))

(7) -> (11), if (((i2[7]* i2[11])∧(a47355data[7]* a47355data[11]))∧(i20581[7]* i20225[11])∧(i20355[7] + -1* i20355[11]))

(8) -> (9), if ((i20225[8]* i20225[9])∧((i2[8]* i2[9])∧(a47355data[8]* a47355data[9]))∧(i20355[8]* i20355[9]))

(9) -> (10), if ((i20225[9] > 0 && i20225[9] < i2[9] && i20355[9] > 0 && i20225[9] + 1 > 0* TRUE)∧(i20355[9]* i20355[10])∧((i2[9]* i2[10])∧(a47355data[9]* a47355data[10]))∧(i20225[9]* i20225[10]))

(10) -> (0), if (((i2[10]* i2[0])∧(a47355data[10]* a47355data[0]))∧(i20355[10] + -1* i20355[0])∧(i20225[10] + 1* i20225[0]))

(10) -> (4), if ((i20225[10] + 1* i20225[4])∧((i2[10]* i2[4])∧(a47355data[10]* a47355data[4]))∧(i20355[10] + -1* i20355[4]))

(10) -> (8), if ((i20355[10] + -1* i20355[8])∧(i20225[10] + 1* i20225[8])∧((i2[10]* i2[8])∧(a47355data[10]* a47355data[8])))

(10) -> (11), if ((i20355[10] + -1* i20355[11])∧(i20225[10] + 1* i20225[11])∧((i2[10]* i2[11])∧(a47355data[10]* a47355data[11])))

(11) -> (12), if ((i20355[11]* i20355[12])∧((i2[11]* i2[12])∧(a47355data[11]* a47355data[12]))∧((i21156[11]* i21156[12])∧(i20843[11]* i20843[12])∧(i20845[11]* i20845[12])∧(a49022[11]* a49022[12]))∧(i20225[11]* i20225[12]))

(12) -> (13), if ((i21156[12] > 0 && i20225[12] > 0 && i20225[12] < i2[12] && i20355[12] > 0 && i20225[12] + 1 > 0* TRUE)∧(i20225[12]* i20225[13])∧((i2[12]* i2[13])∧(a47355data[12]* a47355data[13]))∧((i21156[12]* i21156[13])∧(i20843[12]* i20843[13])∧(i20845[12]* i20845[13])∧(a49022[12]* a49022[13]))∧(i20355[12]* i20355[13]))

(13) -> (3), if ((i20355[13]* i20355[3])∧(i20225[13] + 1* i20581[3])∧((i2[13]* i2[3])∧(a47355data[13]* a47355data[3])))

The set Q consists of the following terms:
JMP40088(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc40003(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

### (43) IDPNonInfProof (SOUND transformation)

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

For Pair LOAD36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → LOAD36231ARR1(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) the following chains were created:
• We consider the chain LOAD36231(java.lang.Object(ARRAY(i2[0], a47355data[0])), i20225[0], i20355[0]) → LOAD36231ARR1(java.lang.Object(ARRAY(i2[0], a47355data[0])), i20225[0], i20355[0]), LOAD36231ARR1(java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1]) → COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1]) which results in the following constraint:

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

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

(3)    ((UIncreasing(LOAD36231ARR1(java.lang.Object(ARRAY(i2[0], a47355data[0])), i20225[0], i20355[0])), ≥)∧[1 + (-1)bso_25] ≥ 0)

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

(4)    ((UIncreasing(LOAD36231ARR1(java.lang.Object(ARRAY(i2[0], a47355data[0])), i20225[0], i20355[0])), ≥)∧[1 + (-1)bso_25] ≥ 0)

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

(5)    ((UIncreasing(LOAD36231ARR1(java.lang.Object(ARRAY(i2[0], a47355data[0])), i20225[0], i20355[0])), ≥)∧[1 + (-1)bso_25] ≥ 0)

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

(6)    ((UIncreasing(LOAD36231ARR1(java.lang.Object(ARRAY(i2[0], a47355data[0])), i20225[0], i20355[0])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_25] ≥ 0)

For Pair LOAD36231ARR1(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → COND_LOAD36231ARR1(&&(&&(&&(>(i20225, 0), <(i20225, i2)), >(i20355, 0)), >(+(i20225, 1), 0)), java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) the following chains were created:
• We consider the chain LOAD36231ARR1(java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1]) → COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1]), COND_LOAD36231ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2], i20355[2]) → INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), +(i20225[2], 1), i20355[2]) which results in the following constraint:

(7)    (&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0))=TRUEi2[1]=i2[2]a47355data[1]=a47355data[2]i20355[1]=i20355[2]i20225[1]=i20225[2]LOAD36231ARR1(java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])≥NonInfC∧LOAD36231ARR1(java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])≥COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])∧(UIncreasing(COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])), ≥))

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

(8)    (>(+(i20225[1], 1), 0)=TRUE>(i20355[1], 0)=TRUE>(i20225[1], 0)=TRUE<(i20225[1], i2[1])=TRUELOAD36231ARR1(java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])≥NonInfC∧LOAD36231ARR1(java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])≥COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])∧(UIncreasing(COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])), ≥))

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

(9)    (i20225[1] ≥ 0∧i20355[1] + [-1] ≥ 0∧i20225[1] + [-1] ≥ 0∧i2[1] + [-1] + [-1]i20225[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])), ≥)∧[bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i20355[1] + [bni_26]i2[1] + [(-1)bni_26]i20225[1] ≥ 0∧[1 + (-1)bso_27] ≥ 0)

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

(10)    (i20225[1] ≥ 0∧i20355[1] + [-1] ≥ 0∧i20225[1] + [-1] ≥ 0∧i2[1] + [-1] + [-1]i20225[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])), ≥)∧[bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i20355[1] + [bni_26]i2[1] + [(-1)bni_26]i20225[1] ≥ 0∧[1 + (-1)bso_27] ≥ 0)

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

(11)    (i20225[1] ≥ 0∧i20355[1] + [-1] ≥ 0∧i20225[1] + [-1] ≥ 0∧i2[1] + [-1] + [-1]i20225[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])), ≥)∧[bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i20355[1] + [bni_26]i2[1] + [(-1)bni_26]i20225[1] ≥ 0∧[1 + (-1)bso_27] ≥ 0)

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

(12)    (i20225[1] ≥ 0∧i20355[1] + [-1] ≥ 0∧i20225[1] + [-1] ≥ 0∧i2[1] + [-1] + [-1]i20225[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])), ≥)∧0 = 0∧[bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i20355[1] + [bni_26]i2[1] + [(-1)bni_26]i20225[1] ≥ 0∧0 = 0∧[1 + (-1)bso_27] ≥ 0)

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

(13)    ([1] + i20225[1] ≥ 0∧i20355[1] + [-1] ≥ 0∧i20225[1] ≥ 0∧i2[1] + [-2] + [-1]i20225[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])), ≥)∧0 = 0∧[(-1)Bound*bni_26] + [(2)bni_26]i20355[1] + [bni_26]i2[1] + [(-1)bni_26]i20225[1] ≥ 0∧0 = 0∧[1 + (-1)bso_27] ≥ 0)

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

(14)    ([1] + i20225[1] ≥ 0∧i20355[1] ≥ 0∧i20225[1] ≥ 0∧i2[1] + [-2] + [-1]i20225[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])), ≥)∧0 = 0∧[(2)bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i20355[1] + [bni_26]i2[1] + [(-1)bni_26]i20225[1] ≥ 0∧0 = 0∧[1 + (-1)bso_27] ≥ 0)

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

(15)    ([1] + i20225[1] ≥ 0∧i20355[1] ≥ 0∧i20225[1] ≥ 0∧i2[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])), ≥)∧0 = 0∧[(4)bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i20355[1] + [bni_26]i2[1] ≥ 0∧0 = 0∧[1 + (-1)bso_27] ≥ 0)

For Pair COND_LOAD36231ARR1(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → INC40003(java.lang.Object(ARRAY(i2, a47355data)), +(i20225, 1), i20355) the following chains were created:
• We consider the chain COND_LOAD36231ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2], i20355[2]) → INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), +(i20225[2], 1), i20355[2]) which results in the following constraint:

(16)    (COND_LOAD36231ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2], i20355[2])≥NonInfC∧COND_LOAD36231ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2], i20355[2])≥INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), +(i20225[2], 1), i20355[2])∧(UIncreasing(INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), +(i20225[2], 1), i20355[2])), ≥))

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

(17)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), +(i20225[2], 1), i20355[2])), ≥)∧[1 + (-1)bso_29] ≥ 0)

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

(18)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), +(i20225[2], 1), i20355[2])), ≥)∧[1 + (-1)bso_29] ≥ 0)

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

(19)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), +(i20225[2], 1), i20355[2])), ≥)∧[1 + (-1)bso_29] ≥ 0)

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

(20)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), +(i20225[2], 1), i20355[2])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_29] ≥ 0)

For Pair JMP40088'(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → INC40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) the following chains were created:
• We consider the chain JMP40088'(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3]) → INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3]), INC40003(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7]) → LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], +(i20355[7], -1)) which results in the following constraint:

(21)    (i2[3]=i2[7]a47355data[3]=a47355data[7]i20581[3]=i20581[7]i20355[3]=i20355[7]JMP40088'(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])≥NonInfC∧JMP40088'(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])≥INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])∧(UIncreasing(INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])), ≥))

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

(22)    (JMP40088'(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])≥NonInfC∧JMP40088'(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])≥INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])∧(UIncreasing(INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])), ≥))

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

(23)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])), ≥)∧[(-1)bso_31] ≥ 0)

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

(24)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])), ≥)∧[(-1)bso_31] ≥ 0)

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

(25)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])), ≥)∧[(-1)bso_31] ≥ 0)

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

(26)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_31] ≥ 0)

For Pair LOAD36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → LOAD36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) the following chains were created:
• We consider the chain LOAD36231(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4]) → LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4]))) which results in the following constraint:

(27)    (LOAD36231(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4])≥NonInfC∧LOAD36231(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4])≥LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))∧(UIncreasing(LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))), ≥))

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

(28)    ((UIncreasing(LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))), ≥)∧[1 + (-1)bso_33] ≥ 0)

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

(29)    ((UIncreasing(LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))), ≥)∧[1 + (-1)bso_33] ≥ 0)

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

(30)    ((UIncreasing(LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))), ≥)∧[1 + (-1)bso_33] ≥ 0)

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

(31)    ((UIncreasing(LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_33] ≥ 0)

For Pair LOAD36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156, 0), >(i20225, 0)), <(i20225, i2)), >(i20355, 0)), >(+(i20225, 1), 0)), java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) the following chains were created:
• We consider the chain LOAD36231ARR2(java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5]))) → COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5]))), COND_LOAD36231ARR2(TRUE, java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6], i20355[6], java.lang.Object(java.lang.String(i21156[6], i20843[6], i20845[6], a49022[6]))) → INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), +(i20225[6], 1), i20355[6]) which results in the following constraint:

(32)    (i20355[5]=i20355[6]&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0))=TRUEi20225[5]=i20225[6]i21156[5]=i21156[6]i20843[5]=i20843[6]i20845[5]=i20845[6]a49022[5]=a49022[6]i2[5]=i2[6]a47355data[5]=a47355data[6]LOAD36231ARR2(java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))≥NonInfC∧LOAD36231ARR2(java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))≥COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))∧(UIncreasing(COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))), ≥))

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

(33)    (>(+(i20225[5], 1), 0)=TRUE>(i20355[5], 0)=TRUE<(i20225[5], i2[5])=TRUE>(i21156[5], 0)=TRUE>(i20225[5], 0)=TRUELOAD36231ARR2(java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))≥NonInfC∧LOAD36231ARR2(java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))≥COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))∧(UIncreasing(COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))), ≥))

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

(34)    (i20225[5] ≥ 0∧i20355[5] + [-1] ≥ 0∧i2[5] + [-1] + [-1]i20225[5] ≥ 0∧i21156[5] + [-1] ≥ 0∧i20225[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))), ≥)∧[bni_34 + (-1)Bound*bni_34] + [(2)bni_34]i20355[5] + [bni_34]i2[5] + [(-1)bni_34]i20225[5] ≥ 0∧[(-1)bso_35] ≥ 0)

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

(35)    (i20225[5] ≥ 0∧i20355[5] + [-1] ≥ 0∧i2[5] + [-1] + [-1]i20225[5] ≥ 0∧i21156[5] + [-1] ≥ 0∧i20225[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))), ≥)∧[bni_34 + (-1)Bound*bni_34] + [(2)bni_34]i20355[5] + [bni_34]i2[5] + [(-1)bni_34]i20225[5] ≥ 0∧[(-1)bso_35] ≥ 0)

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

(36)    (i20225[5] ≥ 0∧i20355[5] + [-1] ≥ 0∧i2[5] + [-1] + [-1]i20225[5] ≥ 0∧i21156[5] + [-1] ≥ 0∧i20225[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))), ≥)∧[bni_34 + (-1)Bound*bni_34] + [(2)bni_34]i20355[5] + [bni_34]i2[5] + [(-1)bni_34]i20225[5] ≥ 0∧[(-1)bso_35] ≥ 0)

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

(37)    (i20225[5] ≥ 0∧i20355[5] + [-1] ≥ 0∧i2[5] + [-1] + [-1]i20225[5] ≥ 0∧i21156[5] + [-1] ≥ 0∧i20225[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[bni_34 + (-1)Bound*bni_34] + [(2)bni_34]i20355[5] + [bni_34]i2[5] + [(-1)bni_34]i20225[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_35] ≥ 0)

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

(38)    ([1] + i20225[5] ≥ 0∧i20355[5] + [-1] ≥ 0∧i2[5] + [-2] + [-1]i20225[5] ≥ 0∧i21156[5] + [-1] ≥ 0∧i20225[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_34] + [(2)bni_34]i20355[5] + [bni_34]i2[5] + [(-1)bni_34]i20225[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_35] ≥ 0)

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

(39)    ([1] + i20225[5] ≥ 0∧i20355[5] ≥ 0∧i2[5] + [-2] + [-1]i20225[5] ≥ 0∧i21156[5] + [-1] ≥ 0∧i20225[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_34 + (-1)Bound*bni_34] + [(2)bni_34]i20355[5] + [bni_34]i2[5] + [(-1)bni_34]i20225[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_35] ≥ 0)

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

(40)    ([1] + i20225[5] ≥ 0∧i20355[5] ≥ 0∧i2[5] ≥ 0∧i21156[5] + [-1] ≥ 0∧i20225[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(4)bni_34 + (-1)Bound*bni_34] + [(2)bni_34]i20355[5] + [bni_34]i2[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_35] ≥ 0)

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

(41)    ([1] + i20225[5] ≥ 0∧i20355[5] ≥ 0∧i2[5] ≥ 0∧i21156[5] ≥ 0∧i20225[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(4)bni_34 + (-1)Bound*bni_34] + [(2)bni_34]i20355[5] + [bni_34]i2[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_35] ≥ 0)

For Pair COND_LOAD36231ARR2(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → INC40003(java.lang.Object(ARRAY(i2, a47355data)), +(i20225, 1), i20355) the following chains were created:
• We consider the chain COND_LOAD36231ARR2(TRUE, java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6], i20355[6], java.lang.Object(java.lang.String(i21156[6], i20843[6], i20845[6], a49022[6]))) → INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), +(i20225[6], 1), i20355[6]) which results in the following constraint:

(42)    (COND_LOAD36231ARR2(TRUE, java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6], i20355[6], java.lang.Object(java.lang.String(i21156[6], i20843[6], i20845[6], a49022[6])))≥NonInfC∧COND_LOAD36231ARR2(TRUE, java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6], i20355[6], java.lang.Object(java.lang.String(i21156[6], i20843[6], i20845[6], a49022[6])))≥INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), +(i20225[6], 1), i20355[6])∧(UIncreasing(INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), +(i20225[6], 1), i20355[6])), ≥))

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

(43)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), +(i20225[6], 1), i20355[6])), ≥)∧[2 + (-1)bso_37] ≥ 0)

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

(44)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), +(i20225[6], 1), i20355[6])), ≥)∧[2 + (-1)bso_37] ≥ 0)

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

(45)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), +(i20225[6], 1), i20355[6])), ≥)∧[2 + (-1)bso_37] ≥ 0)

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

(46)    ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), +(i20225[6], 1), i20355[6])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_37] ≥ 0)

For Pair INC40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → LOAD36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, +(i20355, -1)) the following chains were created:
• We consider the chain INC40003(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7]) → LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], +(i20355[7], -1)) which results in the following constraint:

(47)    (INC40003(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7])≥NonInfC∧INC40003(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7])≥LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], +(i20355[7], -1))∧(UIncreasing(LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], +(i20355[7], -1))), ≥))

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

(48)    ((UIncreasing(LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], +(i20355[7], -1))), ≥)∧[(-1)bso_39] ≥ 0)

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

(49)    ((UIncreasing(LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], +(i20355[7], -1))), ≥)∧[(-1)bso_39] ≥ 0)

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

(50)    ((UIncreasing(LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], +(i20355[7], -1))), ≥)∧[(-1)bso_39] ≥ 0)

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

(51)    ((UIncreasing(LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], +(i20355[7], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_39] ≥ 0)

For Pair LOAD36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → LOAD36231ARR3(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) the following chains were created:
• We consider the chain LOAD36231(java.lang.Object(ARRAY(i2[8], a47355data[8])), i20225[8], i20355[8]) → LOAD36231ARR3(java.lang.Object(ARRAY(i2[8], a47355data[8])), i20225[8], i20355[8]), LOAD36231ARR3(java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9]) → COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9]) which results in the following constraint:

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

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

(54)    ((UIncreasing(LOAD36231ARR3(java.lang.Object(ARRAY(i2[8], a47355data[8])), i20225[8], i20355[8])), ≥)∧[(-1)bso_41] ≥ 0)

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

(55)    ((UIncreasing(LOAD36231ARR3(java.lang.Object(ARRAY(i2[8], a47355data[8])), i20225[8], i20355[8])), ≥)∧[(-1)bso_41] ≥ 0)

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

(56)    ((UIncreasing(LOAD36231ARR3(java.lang.Object(ARRAY(i2[8], a47355data[8])), i20225[8], i20355[8])), ≥)∧[(-1)bso_41] ≥ 0)

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

(57)    ((UIncreasing(LOAD36231ARR3(java.lang.Object(ARRAY(i2[8], a47355data[8])), i20225[8], i20355[8])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_41] ≥ 0)

For Pair LOAD36231ARR3(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → COND_LOAD36231ARR3(&&(&&(&&(>(i20225, 0), <(i20225, i2)), >(i20355, 0)), >(+(i20225, 1), 0)), java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) the following chains were created:
• We consider the chain LOAD36231ARR3(java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9]) → COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9]), COND_LOAD36231ARR3(TRUE, java.lang.Object(ARRAY(i2[10], a47355data[10])), i20225[10], i20355[10]) → LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), +(i20225[10], 1), +(i20355[10], -1)) which results in the following constraint:

(58)    (&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0))=TRUEi20355[9]=i20355[10]i2[9]=i2[10]a47355data[9]=a47355data[10]i20225[9]=i20225[10]LOAD36231ARR3(java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])≥NonInfC∧LOAD36231ARR3(java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])≥COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])∧(UIncreasing(COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])), ≥))

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

(59)    (>(+(i20225[9], 1), 0)=TRUE>(i20355[9], 0)=TRUE>(i20225[9], 0)=TRUE<(i20225[9], i2[9])=TRUELOAD36231ARR3(java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])≥NonInfC∧LOAD36231ARR3(java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])≥COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])∧(UIncreasing(COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])), ≥))

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

(60)    (i20225[9] ≥ 0∧i20355[9] + [-1] ≥ 0∧i20225[9] + [-1] ≥ 0∧i2[9] + [-1] + [-1]i20225[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])), ≥)∧[(2)bni_42 + (-1)Bound*bni_42] + [(2)bni_42]i20355[9] + [(-1)bni_42]i20225[9] + [bni_42]i2[9] ≥ 0∧[2 + (-1)bso_43] ≥ 0)

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

(61)    (i20225[9] ≥ 0∧i20355[9] + [-1] ≥ 0∧i20225[9] + [-1] ≥ 0∧i2[9] + [-1] + [-1]i20225[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])), ≥)∧[(2)bni_42 + (-1)Bound*bni_42] + [(2)bni_42]i20355[9] + [(-1)bni_42]i20225[9] + [bni_42]i2[9] ≥ 0∧[2 + (-1)bso_43] ≥ 0)

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

(62)    (i20225[9] ≥ 0∧i20355[9] + [-1] ≥ 0∧i20225[9] + [-1] ≥ 0∧i2[9] + [-1] + [-1]i20225[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])), ≥)∧[(2)bni_42 + (-1)Bound*bni_42] + [(2)bni_42]i20355[9] + [(-1)bni_42]i20225[9] + [bni_42]i2[9] ≥ 0∧[2 + (-1)bso_43] ≥ 0)

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

(63)    (i20225[9] ≥ 0∧i20355[9] + [-1] ≥ 0∧i20225[9] + [-1] ≥ 0∧i2[9] + [-1] + [-1]i20225[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])), ≥)∧0 = 0∧[(2)bni_42 + (-1)Bound*bni_42] + [(2)bni_42]i20355[9] + [(-1)bni_42]i20225[9] + [bni_42]i2[9] ≥ 0∧0 = 0∧[2 + (-1)bso_43] ≥ 0)

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

(64)    ([1] + i20225[9] ≥ 0∧i20355[9] + [-1] ≥ 0∧i20225[9] ≥ 0∧i2[9] + [-2] + [-1]i20225[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])), ≥)∧0 = 0∧[bni_42 + (-1)Bound*bni_42] + [(2)bni_42]i20355[9] + [(-1)bni_42]i20225[9] + [bni_42]i2[9] ≥ 0∧0 = 0∧[2 + (-1)bso_43] ≥ 0)

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

(65)    ([1] + i20225[9] ≥ 0∧i20355[9] ≥ 0∧i20225[9] ≥ 0∧i2[9] + [-2] + [-1]i20225[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])), ≥)∧0 = 0∧[(3)bni_42 + (-1)Bound*bni_42] + [(2)bni_42]i20355[9] + [(-1)bni_42]i20225[9] + [bni_42]i2[9] ≥ 0∧0 = 0∧[2 + (-1)bso_43] ≥ 0)

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

(66)    ([1] + i20225[9] ≥ 0∧i20355[9] ≥ 0∧i20225[9] ≥ 0∧i2[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])), ≥)∧0 = 0∧[(5)bni_42 + (-1)Bound*bni_42] + [(2)bni_42]i20355[9] + [bni_42]i2[9] ≥ 0∧0 = 0∧[2 + (-1)bso_43] ≥ 0)

For Pair COND_LOAD36231ARR3(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → LOAD36231(java.lang.Object(ARRAY(i2, a47355data)), +(i20225, 1), +(i20355, -1)) the following chains were created:
• We consider the chain COND_LOAD36231ARR3(TRUE, java.lang.Object(ARRAY(i2[10], a47355data[10])), i20225[10], i20355[10]) → LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), +(i20225[10], 1), +(i20355[10], -1)) which results in the following constraint:

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

(68)    ((UIncreasing(LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), +(i20225[10], 1), +(i20355[10], -1))), ≥)∧[1 + (-1)bso_45] ≥ 0)

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

(69)    ((UIncreasing(LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), +(i20225[10], 1), +(i20355[10], -1))), ≥)∧[1 + (-1)bso_45] ≥ 0)

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

(70)    ((UIncreasing(LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), +(i20225[10], 1), +(i20355[10], -1))), ≥)∧[1 + (-1)bso_45] ≥ 0)

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

(71)    ((UIncreasing(LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), +(i20225[10], 1), +(i20355[10], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_45] ≥ 0)

For Pair LOAD36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → LOAD36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) the following chains were created:
• We consider the chain LOAD36231(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11]) → LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11]))) which results in the following constraint:

(72)    (LOAD36231(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11])≥NonInfC∧LOAD36231(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11])≥LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))∧(UIncreasing(LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))), ≥))

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

(73)    ((UIncreasing(LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))), ≥)∧[2 + (-1)bso_47] ≥ 0)

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

(74)    ((UIncreasing(LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))), ≥)∧[2 + (-1)bso_47] ≥ 0)

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

(75)    ((UIncreasing(LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))), ≥)∧[2 + (-1)bso_47] ≥ 0)

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

(76)    ((UIncreasing(LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_47] ≥ 0)

For Pair LOAD36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156, 0), >(i20225, 0)), <(i20225, i2)), >(i20355, 0)), >(+(i20225, 1), 0)), java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) the following chains were created:
• We consider the chain LOAD36231ARR5(java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12]))) → COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12]))), COND_LOAD36231ARR5(TRUE, java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13], i20355[13], java.lang.Object(java.lang.String(i21156[13], i20843[13], i20845[13], a49022[13]))) → JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), +(i20225[13], 1), i20355[13]) which results in the following constraint:

(77)    (&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0))=TRUEi20225[12]=i20225[13]i2[12]=i2[13]a47355data[12]=a47355data[13]i21156[12]=i21156[13]i20843[12]=i20843[13]i20845[12]=i20845[13]a49022[12]=a49022[13]i20355[12]=i20355[13]LOAD36231ARR5(java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))≥NonInfC∧LOAD36231ARR5(java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))≥COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))∧(UIncreasing(COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))), ≥))

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

(78)    (>(+(i20225[12], 1), 0)=TRUE>(i20355[12], 0)=TRUE<(i20225[12], i2[12])=TRUE>(i21156[12], 0)=TRUE>(i20225[12], 0)=TRUELOAD36231ARR5(java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))≥NonInfC∧LOAD36231ARR5(java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))≥COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))∧(UIncreasing(COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))), ≥))

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

(79)    (i20225[12] ≥ 0∧i20355[12] + [-1] ≥ 0∧i2[12] + [-1] + [-1]i20225[12] ≥ 0∧i21156[12] + [-1] ≥ 0∧i20225[12] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))), ≥)∧[(-1)Bound*bni_48] + [(2)bni_48]i20355[12] + [(-1)bni_48]i20225[12] + [bni_48]i2[12] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(80)    (i20225[12] ≥ 0∧i20355[12] + [-1] ≥ 0∧i2[12] + [-1] + [-1]i20225[12] ≥ 0∧i21156[12] + [-1] ≥ 0∧i20225[12] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))), ≥)∧[(-1)Bound*bni_48] + [(2)bni_48]i20355[12] + [(-1)bni_48]i20225[12] + [bni_48]i2[12] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(81)    (i20225[12] ≥ 0∧i20355[12] + [-1] ≥ 0∧i2[12] + [-1] + [-1]i20225[12] ≥ 0∧i21156[12] + [-1] ≥ 0∧i20225[12] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))), ≥)∧[(-1)Bound*bni_48] + [(2)bni_48]i20355[12] + [(-1)bni_48]i20225[12] + [bni_48]i2[12] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(82)    (i20225[12] ≥ 0∧i20355[12] + [-1] ≥ 0∧i2[12] + [-1] + [-1]i20225[12] ≥ 0∧i21156[12] + [-1] ≥ 0∧i20225[12] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_48] + [(2)bni_48]i20355[12] + [(-1)bni_48]i20225[12] + [bni_48]i2[12] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

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

(83)    ([1] + i20225[12] ≥ 0∧i20355[12] + [-1] ≥ 0∧i2[12] + [-2] + [-1]i20225[12] ≥ 0∧i21156[12] + [-1] ≥ 0∧i20225[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_48 + (-1)bni_48] + [(2)bni_48]i20355[12] + [(-1)bni_48]i20225[12] + [bni_48]i2[12] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

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

(84)    ([1] + i20225[12] ≥ 0∧i20355[12] ≥ 0∧i2[12] + [-2] + [-1]i20225[12] ≥ 0∧i21156[12] + [-1] ≥ 0∧i20225[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_48 + bni_48] + [(2)bni_48]i20355[12] + [(-1)bni_48]i20225[12] + [bni_48]i2[12] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

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

(85)    ([1] + i20225[12] ≥ 0∧i20355[12] ≥ 0∧i2[12] ≥ 0∧i21156[12] + [-1] ≥ 0∧i20225[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_48 + (3)bni_48] + [(2)bni_48]i20355[12] + [bni_48]i2[12] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

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

(86)    ([1] + i20225[12] ≥ 0∧i20355[12] ≥ 0∧i2[12] ≥ 0∧i21156[12] ≥ 0∧i20225[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_48 + (3)bni_48] + [(2)bni_48]i20355[12] + [bni_48]i2[12] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

For Pair COND_LOAD36231ARR5(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → JMP40088'(java.lang.Object(ARRAY(i2, a47355data)), +(i20225, 1), i20355) the following chains were created:
• We consider the chain COND_LOAD36231ARR5(TRUE, java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13], i20355[13], java.lang.Object(java.lang.String(i21156[13], i20843[13], i20845[13], a49022[13]))) → JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), +(i20225[13], 1), i20355[13]) which results in the following constraint:

(87)    (COND_LOAD36231ARR5(TRUE, java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13], i20355[13], java.lang.Object(java.lang.String(i21156[13], i20843[13], i20845[13], a49022[13])))≥NonInfC∧COND_LOAD36231ARR5(TRUE, java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13], i20355[13], java.lang.Object(java.lang.String(i21156[13], i20843[13], i20845[13], a49022[13])))≥JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), +(i20225[13], 1), i20355[13])∧(UIncreasing(JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), +(i20225[13], 1), i20355[13])), ≥))

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

(88)    ((UIncreasing(JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), +(i20225[13], 1), i20355[13])), ≥)∧[1 + (-1)bso_51] ≥ 0)

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

(89)    ((UIncreasing(JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), +(i20225[13], 1), i20355[13])), ≥)∧[1 + (-1)bso_51] ≥ 0)

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

(90)    ((UIncreasing(JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), +(i20225[13], 1), i20355[13])), ≥)∧[1 + (-1)bso_51] ≥ 0)

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

(91)    ((UIncreasing(JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), +(i20225[13], 1), i20355[13])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_51] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• ((UIncreasing(LOAD36231ARR1(java.lang.Object(ARRAY(i2[0], a47355data[0])), i20225[0], i20355[0])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_25] ≥ 0)

• LOAD36231ARR1(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → COND_LOAD36231ARR1(&&(&&(&&(>(i20225, 0), <(i20225, i2)), >(i20355, 0)), >(+(i20225, 1), 0)), java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355)
• ([1] + i20225[1] ≥ 0∧i20355[1] ≥ 0∧i20225[1] ≥ 0∧i2[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])), ≥)∧0 = 0∧[(4)bni_26 + (-1)Bound*bni_26] + [(2)bni_26]i20355[1] + [bni_26]i2[1] ≥ 0∧0 = 0∧[1 + (-1)bso_27] ≥ 0)

• COND_LOAD36231ARR1(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → INC40003(java.lang.Object(ARRAY(i2, a47355data)), +(i20225, 1), i20355)
• ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), +(i20225[2], 1), i20355[2])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_29] ≥ 0)

• JMP40088'(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → INC40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355)
• ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_31] ≥ 0)

• LOAD36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → LOAD36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
• ((UIncreasing(LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_33] ≥ 0)

• LOAD36231ARR2(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156, 0), >(i20225, 0)), <(i20225, i2)), >(i20355, 0)), >(+(i20225, 1), 0)), java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
• ([1] + i20225[5] ≥ 0∧i20355[5] ≥ 0∧i2[5] ≥ 0∧i21156[5] ≥ 0∧i20225[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(4)bni_34 + (-1)Bound*bni_34] + [(2)bni_34]i20355[5] + [bni_34]i2[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_35] ≥ 0)

• COND_LOAD36231ARR2(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → INC40003(java.lang.Object(ARRAY(i2, a47355data)), +(i20225, 1), i20355)
• ((UIncreasing(INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), +(i20225[6], 1), i20355[6])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_37] ≥ 0)

• INC40003(java.lang.Object(ARRAY(i2, a47355data)), i20581, i20355) → LOAD36231(java.lang.Object(ARRAY(i2, a47355data)), i20581, +(i20355, -1))
• ((UIncreasing(LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], +(i20355[7], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_39] ≥ 0)

• ((UIncreasing(LOAD36231ARR3(java.lang.Object(ARRAY(i2[8], a47355data[8])), i20225[8], i20355[8])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_41] ≥ 0)

• LOAD36231ARR3(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → COND_LOAD36231ARR3(&&(&&(&&(>(i20225, 0), <(i20225, i2)), >(i20355, 0)), >(+(i20225, 1), 0)), java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355)
• ([1] + i20225[9] ≥ 0∧i20355[9] ≥ 0∧i20225[9] ≥ 0∧i2[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])), ≥)∧0 = 0∧[(5)bni_42 + (-1)Bound*bni_42] + [(2)bni_42]i20355[9] + [bni_42]i2[9] ≥ 0∧0 = 0∧[2 + (-1)bso_43] ≥ 0)

• COND_LOAD36231ARR3(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → LOAD36231(java.lang.Object(ARRAY(i2, a47355data)), +(i20225, 1), +(i20355, -1))
• ((UIncreasing(LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), +(i20225[10], 1), +(i20355[10], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_45] ≥ 0)

• LOAD36231(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355) → LOAD36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
• ((UIncreasing(LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_47] ≥ 0)

• LOAD36231ARR5(java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156, 0), >(i20225, 0)), <(i20225, i2)), >(i20355, 0)), >(+(i20225, 1), 0)), java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022)))
• ([1] + i20225[12] ≥ 0∧i20355[12] ≥ 0∧i2[12] ≥ 0∧i21156[12] ≥ 0∧i20225[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_48 + (3)bni_48] + [(2)bni_48]i20355[12] + [bni_48]i2[12] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

• COND_LOAD36231ARR5(TRUE, java.lang.Object(ARRAY(i2, a47355data)), i20225, i20355, java.lang.Object(java.lang.String(i21156, i20843, i20845, a49022))) → JMP40088'(java.lang.Object(ARRAY(i2, a47355data)), +(i20225, 1), i20355)
• ((UIncreasing(JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), +(i20225[13], 1), i20355[13])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_51] ≥ 0)

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

POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD36231(x1, x2, x3)) = [1] + [2]x3 + [-1]x1 + [-1]x2
POL(java.lang.Object(x1)) = x1
POL(ARRAY(x1, x2)) = [-1] + [-1]x1
POL(LOAD36231ARR1(x1, x2, x3)) = [2]x3 + [-1]x1 + [-1]x2
POL(COND_LOAD36231ARR1(x1, x2, x3, x4)) = [-1] + [2]x4 + [-1]x2 + [-1]x3
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(INC40003(x1, x2, x3)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(JMP40088'(x1, x2, x3)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(LOAD36231ARR2(x1, x2, x3, x4)) = [2]x3 + [-1]x1 + [-1]x2
POL(java.lang.String(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x1
POL(COND_LOAD36231ARR2(x1, x2, x3, x4, x5)) = [2]x4 + [-1]x2 + [-1]x3
POL(-1) = [-1]
POL(LOAD36231ARR3(x1, x2, x3)) = [1] + [2]x3 + [-1]x2 + [-1]x1
POL(COND_LOAD36231ARR3(x1, x2, x3, x4)) = [-1] + [2]x4 + [-1]x3 + [-1]x2
POL(LOAD36231ARR5(x1, x2, x3, x4)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(COND_LOAD36231ARR5(x1, x2, x3, x4, x5)) = [-1] + [2]x4 + [-1]x3 + [-1]x2

The following pairs are in P>:

LOAD36231ARR1(java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1]) → COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])
COND_LOAD36231ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2], i20355[2]) → INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), +(i20225[2], 1), i20355[2])
LOAD36231(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4]) → LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))
COND_LOAD36231ARR2(TRUE, java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6], i20355[6], java.lang.Object(java.lang.String(i21156[6], i20843[6], i20845[6], a49022[6]))) → INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), +(i20225[6], 1), i20355[6])
LOAD36231ARR3(java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9]) → COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])
COND_LOAD36231ARR3(TRUE, java.lang.Object(ARRAY(i2[10], a47355data[10])), i20225[10], i20355[10]) → LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), +(i20225[10], 1), +(i20355[10], -1))
LOAD36231(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11]) → LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))
COND_LOAD36231ARR5(TRUE, java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13], i20355[13], java.lang.Object(java.lang.String(i21156[13], i20843[13], i20845[13], a49022[13]))) → JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), +(i20225[13], 1), i20355[13])

The following pairs are in Pbound:

LOAD36231ARR1(java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1]) → COND_LOAD36231ARR1(&&(&&(&&(>(i20225[1], 0), <(i20225[1], i2[1])), >(i20355[1], 0)), >(+(i20225[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a47355data[1])), i20225[1], i20355[1])
LOAD36231ARR2(java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5]))) → COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))
LOAD36231ARR3(java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9]) → COND_LOAD36231ARR3(&&(&&(&&(>(i20225[9], 0), <(i20225[9], i2[9])), >(i20355[9], 0)), >(+(i20225[9], 1), 0)), java.lang.Object(ARRAY(i2[9], a47355data[9])), i20225[9], i20355[9])
LOAD36231ARR5(java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12]))) → COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))

The following pairs are in P:

JMP40088'(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3]) → INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])
LOAD36231ARR2(java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5]))) → COND_LOAD36231ARR2(&&(&&(&&(&&(>(i21156[5], 0), >(i20225[5], 0)), <(i20225[5], i2[5])), >(i20355[5], 0)), >(+(i20225[5], 1), 0)), java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))
INC40003(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7]) → LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], +(i20355[7], -1))
LOAD36231ARR5(java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12]))) → COND_LOAD36231ARR5(&&(&&(&&(&&(>(i21156[12], 0), >(i20225[12], 0)), <(i20225[12], i2[12])), >(i20355[12], 0)), >(+(i20225[12], 1), 0)), java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))

There are no usable rules.

### (45) Obligation:

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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(3): JMP40088'(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3]) → INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])
(5): LOAD36231ARR2(java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5]))) → COND_LOAD36231ARR2(i21156[5] > 0 && i20225[5] > 0 && i20225[5] < i2[5] && i20355[5] > 0 && i20225[5] + 1 > 0, java.lang.Object(ARRAY(i2[5], a47355data[5])), i20225[5], i20355[5], java.lang.Object(java.lang.String(i21156[5], i20843[5], i20845[5], a49022[5])))
(7): INC40003(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7]) → LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7] + -1)
(12): LOAD36231ARR5(java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12]))) → COND_LOAD36231ARR5(i21156[12] > 0 && i20225[12] > 0 && i20225[12] < i2[12] && i20355[12] > 0 && i20225[12] + 1 > 0, java.lang.Object(ARRAY(i2[12], a47355data[12])), i20225[12], i20355[12], java.lang.Object(java.lang.String(i21156[12], i20843[12], i20845[12], a49022[12])))

(3) -> (7), if (((i2[3]* i2[7])∧(a47355data[3]* a47355data[7]))∧(i20581[3]* i20581[7])∧(i20355[3]* i20355[7]))

(7) -> (8), if ((i20355[7] + -1* i20355[8])∧(i20581[7]* i20225[8])∧((i2[7]* i2[8])∧(a47355data[7]* a47355data[8])))

The set Q consists of the following terms:
JMP40088(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc40003(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

### (46) IDependencyGraphProof (EQUIVALENT transformation)

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

### (48) 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:
(2): COND_LOAD36231ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2], i20355[2]) → INC40003(java.lang.Object(ARRAY(i2[2], a47355data[2])), i20225[2] + 1, i20355[2])
(3): JMP40088'(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3]) → INC40003(java.lang.Object(ARRAY(i2[3], a47355data[3])), i20581[3], i20355[3])
(4): LOAD36231(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4]) → LOAD36231ARR2(java.lang.Object(ARRAY(i2[4], a47355data[4])), i20225[4], i20355[4], java.lang.Object(java.lang.String(i21156[4], i20843[4], i20845[4], a49022[4])))
(6): COND_LOAD36231ARR2(TRUE, java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6], i20355[6], java.lang.Object(java.lang.String(i21156[6], i20843[6], i20845[6], a49022[6]))) → INC40003(java.lang.Object(ARRAY(i2[6], a47355data[6])), i20225[6] + 1, i20355[6])
(7): INC40003(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7]) → LOAD36231(java.lang.Object(ARRAY(i2[7], a47355data[7])), i20581[7], i20355[7] + -1)
(10): COND_LOAD36231ARR3(TRUE, java.lang.Object(ARRAY(i2[10], a47355data[10])), i20225[10], i20355[10]) → LOAD36231(java.lang.Object(ARRAY(i2[10], a47355data[10])), i20225[10] + 1, i20355[10] + -1)
(11): LOAD36231(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11]) → LOAD36231ARR5(java.lang.Object(ARRAY(i2[11], a47355data[11])), i20225[11], i20355[11], java.lang.Object(java.lang.String(i21156[11], i20843[11], i20845[11], a49022[11])))
(13): COND_LOAD36231ARR5(TRUE, java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13], i20355[13], java.lang.Object(java.lang.String(i21156[13], i20843[13], i20845[13], a49022[13]))) → JMP40088'(java.lang.Object(ARRAY(i2[13], a47355data[13])), i20225[13] + 1, i20355[13])

(7) -> (0), if (((i2[7]* i2[0])∧(a47355data[7]* a47355data[0]))∧(i20581[7]* i20225[0])∧(i20355[7] + -1* i20355[0]))

(10) -> (0), if (((i2[10]* i2[0])∧(a47355data[10]* a47355data[0]))∧(i20355[10] + -1* i20355[0])∧(i20225[10] + 1* i20225[0]))

(13) -> (3), if ((i20355[13]* i20355[3])∧(i20225[13] + 1* i20581[3])∧((i2[13]* i2[3])∧(a47355data[13]* a47355data[3])))

(7) -> (4), if ((i20355[7] + -1* i20355[4])∧((i2[7]* i2[4])∧(a47355data[7]* a47355data[4]))∧(i20581[7]* i20225[4]))

(10) -> (4), if ((i20225[10] + 1* i20225[4])∧((i2[10]* i2[4])∧(a47355data[10]* a47355data[4]))∧(i20355[10] + -1* i20355[4]))

(2) -> (7), if ((i20225[2] + 1* i20581[7])∧((i2[2]* i2[7])∧(a47355data[2]* a47355data[7]))∧(i20355[2]* i20355[7]))

(3) -> (7), if (((i2[3]* i2[7])∧(a47355data[3]* a47355data[7]))∧(i20581[3]* i20581[7])∧(i20355[3]* i20355[7]))

(6) -> (7), if ((i20355[6]* i20355[7])∧((i2[6]* i2[7])∧(a47355data[6]* a47355data[7]))∧(i20225[6] + 1* i20581[7]))

(7) -> (8), if ((i20355[7] + -1* i20355[8])∧(i20581[7]* i20225[8])∧((i2[7]* i2[8])∧(a47355data[7]* a47355data[8])))

(10) -> (8), if ((i20355[10] + -1* i20355[8])∧(i20225[10] + 1* i20225[8])∧((i2[10]* i2[8])∧(a47355data[10]* a47355data[8])))

(7) -> (11), if (((i2[7]* i2[11])∧(a47355data[7]* a47355data[11]))∧(i20581[7]* i20225[11])∧(i20355[7] + -1* i20355[11]))

(10) -> (11), if ((i20355[10] + -1* i20355[11])∧(i20225[10] + 1* i20225[11])∧((i2[10]* i2[11])∧(a47355data[10]* a47355data[11])))

The set Q consists of the following terms:
JMP40088(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc40003(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load36231ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load36231ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

### (49) IDependencyGraphProof (EQUIVALENT transformation)

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

### (51) 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:
Load18769(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o20364, java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)), java.lang.Object(EOC)))) → Load18769ARR9(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o20364, java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i7089, i7091, a23251)))
Load18769ARR9(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o20364, java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i7089, i7091, a23251))) → Cond_Load18769ARR9(i6103 > 0 && i6103 < i2 && i6174 > 0 && i6103 + 1 > 0, java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o20364, java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i7089, i7091, a23251)))
Cond_Load18769ARR9(TRUE, java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o20364, java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i7089, i7091, a23251))) → Inc24121(java.lang.Object(ARRAY(i2, a20441data)), i6103 + 1, i6174, java.lang.Object(Tree(o20364, java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o25822Field0, o25822Field1, o25822Field2)))
JMP24198(java.lang.Object(ARRAY(i2, a20441data)), i6668, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o26179Field0, o26179Field1, o26179Field2))) → Inc24121(java.lang.Object(ARRAY(i2, a20441data)), i6668, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o26179Field0, o26179Field1, o26179Field2)))
Load18769(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o26179Field0, o26179Field1, o26179Field2)), o25612, o25613))) → Load18769ARR10(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o26179Field0, o26179Field1, o26179Field2)), o25612, o25613)), java.lang.Object(java.lang.String(i7456, i7089, i7091, a23251)))
Load18769ARR10(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o26179Field0, o26179Field1, o26179Field2)), o25612, o25613)), java.lang.Object(java.lang.String(i7456, i7089, i7091, a23251))) → Cond_Load18769ARR10(i7456 > 0 && i6103 > 0 && i6103 < i2 && i6174 > 0 && i6103 + 1 > 0, java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o26179Field0, o26179Field1, o26179Field2)), o25612, o25613)), java.lang.Object(java.lang.String(i7456, i7089, i7091, a23251)))
Cond_Load18769ARR10(TRUE, java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o26179Field0, o26179Field1, o26179Field2)), o25612, o25613)), java.lang.Object(java.lang.String(i7456, i7089, i7091, a23251))) → Inc24121(java.lang.Object(ARRAY(i2, a20441data)), i6103 + 1, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o26179Field0, o26179Field1, o26179Field2)))
Inc24121(java.lang.Object(ARRAY(i2, a20441data)), i6668, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o26084Field0, o26084Field1, o26084Field2))) → Load18769(java.lang.Object(ARRAY(i2, a20441data)), i6668, i6174 + -1, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o26084Field0, o26084Field1, o26084Field2)))
Load18769(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o25571, java.lang.Object(Tree(o26084Field0, o26084Field1, o26084Field2)), o25573))) → Load18769ARR11(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o25571, java.lang.Object(Tree(o26084Field0, o26084Field1, o26084Field2)), o25573)), java.lang.Object(java.lang.String(0, i7089, i7091, a23251)))
Load18769ARR11(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o25571, java.lang.Object(Tree(o26084Field0, o26084Field1, o26084Field2)), o25573)), java.lang.Object(java.lang.String(0, i7089, i7091, a23251))) → Cond_Load18769ARR11(i6103 > 0 && i6103 < i2 && i6174 > 0 && i6103 + 1 > 0, java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o25571, java.lang.Object(Tree(o26084Field0, o26084Field1, o26084Field2)), o25573)), java.lang.Object(java.lang.String(0, i7089, i7091, a23251)))
Cond_Load18769ARR11(TRUE, java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o25571, java.lang.Object(Tree(o26084Field0, o26084Field1, o26084Field2)), o25573)), java.lang.Object(java.lang.String(0, i7089, i7091, a23251))) → Load18769(java.lang.Object(ARRAY(i2, a20441data)), i6103 + 1, i6174 + -1, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o26084Field0, o26084Field1, o26084Field2)))
Inc26621(java.lang.Object(ARRAY(i2, a20441data)), i6668, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC)))) → Load18769(java.lang.Object(ARRAY(i2, a20441data)), i6668, i6174 + -1, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))))
JMP26504(java.lang.Object(ARRAY(i2, a20441data)), i6668, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC)))) → Load18769(java.lang.Object(ARRAY(i2, a20441data)), i6668, i6174 + -1, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))))
Load18769(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o25571, NULL, o25573))) → Load18769ARR12(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o25571, NULL, o25573)), java.lang.Object(java.lang.String(0, i7089, i7091, a23251)))
Load18769ARR12(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o25571, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o25573)), java.lang.Object(java.lang.String(0, i7089, i7091, a23251))) → Cond_Load18769ARR12(i6103 > 0 && i6103 < i2 && i6174 > 0 && i6103 + 1 > 0, java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o25571, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o25573)), java.lang.Object(java.lang.String(0, i7089, i7091, a23251)))
Cond_Load18769ARR12(TRUE, java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o25571, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o25573)), java.lang.Object(java.lang.String(0, i7089, i7091, a23251))) → Load18769(java.lang.Object(ARRAY(i2, a20441data)), i6103 + 1, i6174 + -1, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))))
Load18769(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)), o20365, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)), o20365, java.lang.Object(EOC)))) → Load18769ARR13(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)), o20365, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)), o20365, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i7456, i7089, i7091, a23251)))
Load18769ARR13(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)), o20365, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)), o20365, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i7456, i7089, i7091, a23251))) → Cond_Load18769ARR13(i7456 > 0 && i6103 > 0 && i6103 < i2 && i6174 > 0 && i6103 + 1 > 0, java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)), o20365, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)), o20365, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i7456, i7089, i7091, a23251)))
Cond_Load18769ARR13(TRUE, java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)), o20365, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)), o20365, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i7456, i7089, i7091, a23251))) → JMP24198(java.lang.Object(ARRAY(i2, a20441data)), i6103 + 1, i6174, java.lang.Object(Tree(java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)), o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o25926Field0, o25926Field1, o25926Field2)))
JMP26541(java.lang.Object(ARRAY(i2, a20441data)), i6668, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC)))) → Inc26621(java.lang.Object(ARRAY(i2, a20441data)), i6668, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))))
Load18769(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o25612, o25613))) → Load18769ARR14(java.lang.Object(ARRAY(i2, a20441data)), i6103, i6174, java.lang.Object(Tree(o20364, o20365, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o25612, o25613)), java.lang.Object(java.lang.String(i7456, i7089, <