### (0) Obligation:

JBC Problem based on JBC Program:

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

### (1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

### (2) Obligation:

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

### (3) FIGtoITRSProof (SOUND transformation)

Transformed FIGraph to ITRS rules

### (5) Obligation:

ITRS problem:

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

The TRS R consists of the following rules:
Load3335(java.lang.Object(TreeList(o2613, java.lang.Object(Tree(o2937, o2938, o2939)))), java.lang.Object(TreeList(o2613, java.lang.Object(Tree(o2937, o2938, o2939))))) → New4903(java.lang.Object(TreeList(o2613, java.lang.Object(Tree(o2937, o2938, o2939)))), o2613, java.lang.Object(Tree(o2937, o2938, o2939)))
New4903(o2574, o2609, java.lang.Object(Tree(o2920, o2921, o2922))) → JMP3745(o2574, java.lang.Object(TreeList(java.lang.Object(TreeList(o2609, o2920)), o2921)))
Load3335(o2574, java.lang.Object(TreeList(o2609, java.lang.Object(Tree(o2920, o2921, o2922))))) → JMP3745(o2574, java.lang.Object(TreeList(java.lang.Object(TreeList(o2609, o2920)), o2921)))
Load3335(java.lang.Object(TreeList(o2613, NULL)), java.lang.Object(TreeList(o2613, NULL))) → JMP3745(java.lang.Object(TreeList(o2613, NULL)), o2613)
The set Q consists of the following terms:
JMP3745(x0, x1)
New4903(x0, x1, java.lang.Object(Tree(x2, x3, x4)))

### (6) ITRStoQTRSProof (EQUIVALENT transformation)

Represented integers and predefined function symbols by Terms

### (7) Obligation:

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

Load3335(java.lang.Object(TreeList(o2613, java.lang.Object(Tree(o2937, o2938, o2939)))), java.lang.Object(TreeList(o2613, java.lang.Object(Tree(o2937, o2938, o2939))))) → New4903(java.lang.Object(TreeList(o2613, java.lang.Object(Tree(o2937, o2938, o2939)))), o2613, java.lang.Object(Tree(o2937, o2938, o2939)))
New4903(o2574, o2609, java.lang.Object(Tree(o2920, o2921, o2922))) → JMP3745(o2574, java.lang.Object(TreeList(java.lang.Object(TreeList(o2609, o2920)), o2921)))
Load3335(o2574, java.lang.Object(TreeList(o2609, java.lang.Object(Tree(o2920, o2921, o2922))))) → JMP3745(o2574, java.lang.Object(TreeList(java.lang.Object(TreeList(o2609, o2920)), o2921)))
Load3335(java.lang.Object(TreeList(o2613, NULL)), java.lang.Object(TreeList(o2613, NULL))) → JMP3745(java.lang.Object(TreeList(o2613, NULL)), o2613)

The set Q consists of the following terms:

JMP3745(x0, x1)
New4903(x0, x1, java.lang.Object(Tree(x2, x3, x4)))

### (8) QTRSRRRProof (EQUIVALENT transformation)

Used ordering:
Polynomial interpretation [POLO]:

POL(JMP3745(x1, x2)) = 1 + x1 + x2
POL(Load3335(x1, x2)) = x1 + x2
POL(NULL) = 1
POL(New4903(x1, x2, x3)) = x1 + x2 + x3
POL(Tree(x1, x2, x3)) = 3 + x1 + x2 + x3
POL(TreeList(x1, x2)) = x1 + x2
POL(java.lang.Object(x1)) = 1 + x1
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:

Load3335(java.lang.Object(TreeList(o2613, java.lang.Object(Tree(o2937, o2938, o2939)))), java.lang.Object(TreeList(o2613, java.lang.Object(Tree(o2937, o2938, o2939))))) → New4903(java.lang.Object(TreeList(o2613, java.lang.Object(Tree(o2937, o2938, o2939)))), o2613, java.lang.Object(Tree(o2937, o2938, o2939)))
New4903(o2574, o2609, java.lang.Object(Tree(o2920, o2921, o2922))) → JMP3745(o2574, java.lang.Object(TreeList(java.lang.Object(TreeList(o2609, o2920)), o2921)))
Load3335(o2574, java.lang.Object(TreeList(o2609, java.lang.Object(Tree(o2920, o2921, o2922))))) → JMP3745(o2574, java.lang.Object(TreeList(java.lang.Object(TreeList(o2609, o2920)), o2921)))
Load3335(java.lang.Object(TreeList(o2613, NULL)), java.lang.Object(TreeList(o2613, NULL))) → JMP3745(java.lang.Object(TreeList(o2613, NULL)), o2613)

### (9) Obligation:

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

JMP3745(x0, x1)
New4903(x0, x1, java.lang.Object(Tree(x2, x3, x4)))

### (10) RisEmptyProof (EQUIVALENT transformation)

The TRS R is empty. Hence, termination is trivially proven.

### (12) 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:
Load833(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Load833ARR1(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(0, i82, i84, a627)))
Load833ARR1(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(0, i82, i84, a627))) → Cond_Load833ARR1(i52 > 0 && i52 < i3 && i58 > 0 && i52 + 1 > 0, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(0, i82, i84, a627)))
Cond_Load833ARR1(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(0, i82, i84, a627))) → Load833(java.lang.Object(ARRAY(i3, a499data)), i52 + 1, i58 + -1)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, 0, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8378Field0, o8378Field1, o8378Field2))) → Load833(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58 + -1)
Load833(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Load833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
Load833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → Cond_Load833ARR2(i114 > 0 && i52 > 0 && i52 < i3 && i58 > 0 && i52 + 1 > 0, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → Load11943(java.lang.Object(ARRAY(i3, a499data)), i52 + 1, i58, i114, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))))
Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2))) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563 + -1, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)), o9171))) → Load11943ARR3(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Load11943ARR3(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Cond_Load11943ARR3(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563 + -1, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)))
Inc16289(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC)))) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563 + -1, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))))
JMP16188(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC)))) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563 + -1, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, NULL, o9171))) → Load11943ARR4(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, NULL, o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Load11943ARR4(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Cond_Load11943ARR4(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Cond_Load11943ARR4(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563 + -1, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC)))) → Load11943ARR5(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Load11943ARR5(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Cond_Load11943ARR5(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)))
JMP14222(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2))) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)), o9177, o9178))) → Load11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR6(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)))
JMP16239(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC)))) → Inc16289(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o9177, o9178))) → Load11943ARR7(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR7(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR7(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR7(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Inc16289(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, NULL, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, NULL, java.lang.Object(EOC)))) → Load11943ARR8(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, NULL, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, NULL, java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Load11943ARR8(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Cond_Load11943ARR8(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Cond_Load11943ARR8(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → JMP16188(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC)))) → Load11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR9(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → JMP14222(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(NULL, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o8376, java.lang.Object(EOC)))) → Load11943ARR10(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(NULL, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR10(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR10(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR10(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → JMP16239(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))))
The set Q consists of the following terms:
Load833ARR1(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(0, x4, x5, x6)))
Cond_Load833ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(0, x4, x5, x6)))
Load11943(java.lang.Object(ARRAY(x0, x1)), x2, x3, 0, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, x7, x8)))
Load833ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc14138(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, x8, x9)))
Load11943(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, java.lang.Object(Tree(x8, x9, x10)), x11)))
Load11943ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, java.lang.Object(Tree(x8, x9, x10)), x11)), java.lang.Object(java.lang.String(0, x12, x13, x14)))
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, java.lang.Object(Tree(x8, x9, x10)), x11)), java.lang.Object(java.lang.String(0, x12, x13, x14)))
Inc16289(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))))
JMP16188(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, NULL, x8)))
Load11943ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x8)), java.lang.Object(java.lang.String(0, x9, x10, x11)))
Cond_Load11943ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x8)), java.lang.Object(java.lang.String(0, x9, x10, x11)))
Load11943ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, java.lang.Object(Tree(x6, x7, x8)), java.lang.Object(EOC))), java.lang.Object(Tree(x5, java.lang.Object(Tree(x6, x7, x8)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x9, x10, x11)))
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, java.lang.Object(Tree(x6, x7, x8)), java.lang.Object(EOC))), java.lang.Object(Tree(x5, java.lang.Object(Tree(x6, x7, x8)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x9, x10, x11)))
JMP14222(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, x8, x9)))
Load11943(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x7, x8, x9)), x10, x11)))
Load11943ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x7, x8, x9)), x10, x11)), java.lang.Object(java.lang.String(x12, x13, x14, x15)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x7, x8, x9)), x10, x11)), java.lang.Object(java.lang.String(x12, x13, x14, x15)))
JMP16239(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, x7, x8)))
Load11943ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x7, x8)), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Cond_Load11943ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x7, x8)), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Load11943ARR8(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(x5, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x6, x7, x8)))
Cond_Load11943ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(Tree(x5, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x6, x7, x8)))
Load11943ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(java.lang.Object(Tree(x5, x6, x7)), x8, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6, x7)), x8, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(java.lang.Object(Tree(x5, x6, x7)), x8, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x5, x6, x7)), x8, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Load11943ARR10(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x5, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load11943ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x5, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x5, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x6, x7, x8, x9)))

### (13) DuplicateArgsRemoverProof (EQUIVALENT transformation)

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

JMP16239(x1, x2, x3, x4, x5, x6) → JMP16239(x1, x2, x3, x4, x6)
Cond_Load11943ARR10(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load11943ARR10(x1, x2, x3, x4, x5, x7, x8)
Load11943ARR10(x1, x2, x3, x4, x5, x6, x7) → Load11943ARR10(x1, x2, x3, x4, x6, x7)
Cond_Load11943ARR9(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load11943ARR9(x1, x2, x3, x4, x5, x7, x8)
Load11943ARR9(x1, x2, x3, x4, x5, x6, x7) → Load11943ARR9(x1, x2, x3, x4, x6, x7)
JMP16188(x1, x2, x3, x4, x5, x6) → JMP16188(x1, x2, x3, x4, x6)
Cond_Load11943ARR8(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load11943ARR8(x1, x2, x3, x4, x5, x7, x8)
Load11943ARR8(x1, x2, x3, x4, x5, x6, x7) → Load11943ARR8(x1, x2, x3, x4, x6, x7)
Inc16289(x1, x2, x3, x4, x5, x6) → Inc16289(x1, x2, x3, x4, x6)
Cond_Load11943ARR5(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load11943ARR5(x1, x2, x3, x4, x5, x7, x8)
Load11943ARR5(x1, x2, x3, x4, x5, x6, x7) → Load11943ARR5(x1, x2, x3, x4, x6, x7)

### (14) 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:
Load833(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Load833ARR1(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(0, i82, i84, a627)))
Load833ARR1(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(0, i82, i84, a627))) → Cond_Load833ARR1(i52 > 0 && i52 < i3 && i58 > 0 && i52 + 1 > 0, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(0, i82, i84, a627)))
Cond_Load833ARR1(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(0, i82, i84, a627))) → Load833(java.lang.Object(ARRAY(i3, a499data)), i52 + 1, i58 + -1)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, 0, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8378Field0, o8378Field1, o8378Field2))) → Load833(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58 + -1)
Load833(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Load833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
Load833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → Cond_Load833ARR2(i114 > 0 && i52 > 0 && i52 < i3 && i58 > 0 && i52 + 1 > 0, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → Load11943(java.lang.Object(ARRAY(i3, a499data)), i52 + 1, i58, i114, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))))
Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2))) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563 + -1, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)), o9171))) → Load11943ARR3(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Load11943ARR3(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Cond_Load11943ARR3(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563 + -1, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9303Field0, o9303Field1, o9303Field2)))
Inc16289(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC)))) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563 + -1, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))))
JMP16188(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC)))) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563 + -1, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, NULL, o9171))) → Load11943ARR4(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, NULL, o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Load11943ARR4(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Cond_Load11943ARR4(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Cond_Load11943ARR4(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9169, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9171)), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563 + -1, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC)))) → Load11943ARR5(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Load11943ARR5(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Cond_Load11943ARR5(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)), java.lang.Object(EOC))), java.lang.Object(Tree(o9218Field0, o9218Field1, o9218Field2)))
JMP14222(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2))) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)), o9177, o9178))) → Load11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR6(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9320Field0, o9320Field1, o9320Field2)))
JMP16239(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC)))) → Inc16289(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o9177, o9178))) → Load11943ARR7(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR7(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR7(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR7(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o9177, o9178)), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Inc16289(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(o8375, o8376, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, NULL, java.lang.Object(EOC))), java.lang.Object(Tree(o8375, NULL, java.lang.Object(EOC)))) → Load11943ARR8(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, NULL, java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Load11943ARR8(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → Cond_Load11943ARR8(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628)))
Cond_Load11943ARR8(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, i2744, i2746, a7628))) → JMP16188(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(o8375, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC)))) → Load11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR9(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → JMP14222(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)), o8376, java.lang.Object(EOC))), java.lang.Object(Tree(o9265Field0, o9265Field1, o9265Field2)))
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(NULL, o8376, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, o8376, java.lang.Object(EOC)))) → Load11943ARR10(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(NULL, o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR10(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR10(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR10(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))), java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → JMP16239(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), o8376, java.lang.Object(EOC))))
The set Q consists of the following terms:
Load833ARR1(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(0, x4, x5, x6)))
Cond_Load833ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(0, x4, x5, x6)))
Load11943(java.lang.Object(ARRAY(x0, x1)), x2, x3, 0, java.lang.Object(Tree(x4, x5, java.lang.Object(EOC))), java.lang.Object(Tree(x6, x7, x8)))
Load833ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc14138(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, x8, x9)))
Load11943(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, java.lang.Object(Tree(x8, x9, x10)), x11)))
Load11943ARR3(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, java.lang.Object(Tree(x8, x9, x10)), x11)), java.lang.Object(java.lang.String(0, x12, x13, x14)))
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, java.lang.Object(Tree(x8, x9, x10)), x11)), java.lang.Object(java.lang.String(0, x12, x13, x14)))
Inc16289(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))))
JMP16188(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, NULL, x8)))
Load11943ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x8)), java.lang.Object(java.lang.String(0, x9, x10, x11)))
Cond_Load11943ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x8)), java.lang.Object(java.lang.String(0, x9, x10, x11)))
Load11943ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, java.lang.Object(Tree(x6, x7, x8)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x9, x10, x11)))
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, java.lang.Object(Tree(x6, x7, x8)), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x9, x10, x11)))
JMP14222(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(x7, x8, x9)))
Load11943(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x7, x8, x9)), x10, x11)))
Load11943ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x7, x8, x9)), x10, x11)), java.lang.Object(java.lang.String(x12, x13, x14, x15)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(x7, x8, x9)), x10, x11)), java.lang.Object(java.lang.String(x12, x13, x14, x15)))
JMP16239(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))))
Load11943(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(NULL, x7, x8)))
Load11943ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x7, x8)), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Cond_Load11943ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, x6, java.lang.Object(EOC))), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x7, x8)), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Load11943ARR8(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x6, x7, x8)))
Cond_Load11943ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(x5, java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), java.lang.Object(EOC))), java.lang.Object(java.lang.String(0, x6, x7, x8)))
Load11943ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(java.lang.Object(Tree(x5, x6, x7)), x8, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(java.lang.Object(Tree(x5, x6, x7)), x8, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x9, x10, x11, x12)))
Load11943ARR10(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x5, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load11943ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL, java.lang.Object(EOC))), x5, java.lang.Object(EOC))), java.lang.Object(java.lang.String(x6, x7, x8, x9)))

### (15) ITRSFilterProcessorProof (SOUND transformation)

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

Tree(x1, x2, x3) → Tree
Inc14138(x1, x2, x3, x4, x5, x6) → Inc14138(x1, x2, x3, x4)
Load11943ARR3(x1, x2, x3, x4, x5, x6, x7) → Load11943ARR3(x1, x2, x3, x4)
Cond_Load11943ARR3(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load11943ARR3(x1, x2, x3, x4, x5)
Inc16289(x1, x2, x3, x4, x5) → Inc16289(x1, x2, x3, x4)
JMP16188(x1, x2, x3, x4, x5) → JMP16188(x1, x2, x3, x4)
Load11943ARR4(x1, x2, x3, x4, x5, x6, x7) → Load11943ARR4(x1, x2, x3, x4)
Cond_Load11943ARR4(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load11943ARR4(x1, x2, x3, x4, x5)
Cond_Load11943ARR5(x1, x2, x3, x4, x5, x6, x7) → Cond_Load11943ARR5(x1, x2, x3, x4, x5)
JMP14222(x1, x2, x3, x4, x5, x6) → JMP14222(x1, x2, x3, x4)
Load11943ARR6(x1, x2, x3, x4, x5, x6, x7) → Load11943ARR6(x1, x2, x3, x4, x7)
Cond_Load11943ARR6(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load11943ARR6(x1, x2, x3, x4, x5, x8)
JMP16239(x1, x2, x3, x4, x5) → JMP16239(x1, x2, x3, x4)
Load11943ARR7(x1, x2, x3, x4, x5, x6, x7) → Load11943ARR7(x1, x2, x3, x4, x7)
Cond_Load11943ARR7(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load11943ARR7(x1, x2, x3, x4, x5, x8)
Cond_Load11943ARR8(x1, x2, x3, x4, x5, x6, x7) → Cond_Load11943ARR8(x1, x2, x3, x4, x5)
Load11943ARR9(x1, x2, x3, x4, x5, x6) → Load11943ARR9(x1, x2, x3, x4, x6)
Cond_Load11943ARR9(x1, x2, x3, x4, x5, x6, x7) → Cond_Load11943ARR9(x1, x2, x3, x4, x5, x7)
Load11943ARR10(x1, x2, x3, x4, x5, x6) → Load11943ARR10(x1, x2, x3, x4, x6)
Cond_Load11943ARR10(x1, x2, x3, x4, x5, x6, x7) → Cond_Load11943ARR10(x1, x2, x3, x4, x5, x7)

### (16) 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:
Load833ARR1(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Cond_Load833ARR1(i52 > 0 && i52 < i3 && i58 > 0 && i52 + 1 > 0, java.lang.Object(ARRAY(i3, a499data)), i52, i58)
Cond_Load833ARR1(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Load833(java.lang.Object(ARRAY(i3, a499data)), i52 + 1, i58 + -1)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, 0) → Load833(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58 + -1)
Load833(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Load833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
Load833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → Cond_Load833ARR2(i114 > 0 && i52 > 0 && i52 < i3 && i58 > 0 && i52 + 1 > 0, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → Load11943(java.lang.Object(ARRAY(i3, a499data)), i52 + 1, i58, i114)
Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563 + -1)
Load11943ARR3(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Cond_Load11943ARR3(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563 + -1)
Inc16289(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563 + -1)
JMP16188(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563 + -1)
Load11943ARR4(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Cond_Load11943ARR4(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
Cond_Load11943ARR4(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563 + -1)
Load11943ARR5(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Cond_Load11943ARR5(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)
JMP14222(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR6(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)
JMP16239(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → Inc16289(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943ARR7(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR7(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR7(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR7(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Inc16289(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)
Load11943ARR8(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Cond_Load11943ARR8(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
Cond_Load11943ARR8(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → JMP16188(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR9(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → JMP14222(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943ARR10(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR10(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR10(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR10(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → JMP16239(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)
The set Q consists of the following terms:
Load833ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc14138(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Inc16289(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
JMP16188(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
JMP14222(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Load11943ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
JMP16239(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Load11943ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Load11943ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Load11943ARR10(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))

### (17) ITRSFSMergerProof (SOUND transformation)

The following function symbols have been merged:

### (18) 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:
Load833ARR1(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Cond_Load833ARR1(i52 > 0 && i52 < i3 && i58 > 0 && i52 + 1 > 0, java.lang.Object(ARRAY(i3, a499data)), i52, i58)
Cond_Load833ARR1(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Load833(java.lang.Object(ARRAY(i3, a499data)), i52 + 1, i58 + -1)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, 0) → Load833(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58 + -1)
Load833(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Load833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
Load833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → Cond_Load833ARR2(i114 > 0 && i52 > 0 && i52 < i3 && i58 > 0 && i52 + 1 > 0, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → Load11943(java.lang.Object(ARRAY(i3, a499data)), i52 + 1, i58, i114)
Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563 + -1)
Load11943ARR3(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Cond_Load11943ARR3(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563 + -1)
Load11943ARR5(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Cond_Load11943ARR5(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)
JMP14222(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR6(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR9(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → JMP14222(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)
The set Q consists of the following terms:
Load833ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc14138(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
JMP14222(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Load11943ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Load11943ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))

### (20) 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:
Load833ARR1(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Cond_Load833ARR1(i52 > 0 && i52 < i3 && i58 > 0 && i52 + 1 > 0, java.lang.Object(ARRAY(i3, a499data)), i52, i58)
Cond_Load833ARR1(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Load833(java.lang.Object(ARRAY(i3, a499data)), i52 + 1, i58 + -1)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, 0) → Load833(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58 + -1)
Load833(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → Load833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
Load833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → Cond_Load833ARR2(i114 > 0 && i52 > 0 && i52 < i3 && i58 > 0 && i52 + 1 > 0, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → Load11943(java.lang.Object(ARRAY(i3, a499data)), i52 + 1, i58, i114)
Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563 + -1)
Load11943ARR3(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Cond_Load11943ARR3(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563 + -1)
Load11943ARR5(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Cond_Load11943ARR5(i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)
JMP14222(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR6(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Inc14138(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)
Load11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → Load11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Load11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → Cond_Load11943ARR9(i2854 > 0 && i2554 > 0 && i2554 < i3 && i2563 > 0 && i2554 + 1 > 0, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → JMP14222(java.lang.Object(ARRAY(i3, a7196data)), i2554 + 1, i58, i2563)

The integer pair graph contains the following rules and edges:
(1): LOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1]) → COND_LOAD833ARR1(i52[1] > 0 && i52[1] < i3[1] && i58[1] > 0 && i52[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])
(2): COND_LOAD833ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a499data[2])), i52[2], i58[2]) → LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), i52[2] + 1, i58[2] + -1)
(3): LOAD11943(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], i58[3], 0) → LOAD833(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], i58[3] + -1)
(4): LOAD833(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4]) → LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))
(5): LOAD833ARR2(java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5]))) → COND_LOAD833ARR2(i114[5] > 0 && i52[5] > 0 && i52[5] < i3[5] && i58[5] > 0 && i52[5] + 1 > 0, java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))
(6): COND_LOAD833ARR2(TRUE, java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6], i58[6], java.lang.Object(java.lang.String(i114[6], i82[6], i84[6], a627[6]))) → LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6] + 1, i58[6], i114[6])
(7): INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7]) → LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7] + -1)
(8): LOAD11943(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8]) → LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8])
(9): LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9]) → COND_LOAD11943ARR3(i2554[9] > 0 && i2554[9] < i3[9] && i2563[9] > 0 && i2554[9] + 1 > 0, java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])
(10): COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10], i58[10], i2563[10]) → LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10] + 1, i58[10], i2563[10] + -1)
(11): LOAD11943(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11]) → LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11])
(12): LOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12]) → COND_LOAD11943ARR5(i2554[12] > 0 && i2554[12] < i3[12] && i2563[12] > 0 && i2554[12] + 1 > 0, java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])
(13): COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13], i58[13], i2563[13]) → INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13] + 1, i58[13], i2563[13])
(14): JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]) → INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])
(15): LOAD11943(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15]) → LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))
(16): LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))) → COND_LOAD11943ARR6(i2854[16] > 0 && i2554[16] > 0 && i2554[16] < i3[16] && i2563[16] > 0 && i2554[16] + 1 > 0, java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))
(17): COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))) → INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17] + 1, i58[17], i2563[17])
(18): LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18]) → LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))
(19): LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))) → COND_LOAD11943ARR9(i2854[19] > 0 && i2554[19] > 0 && i2554[19] < i3[19] && i2563[19] > 0 && i2554[19] + 1 > 0, java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))
(20): COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20]))) → JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20] + 1, i58[20], i2563[20])

(0) -> (1), if ((i52[0]* i52[1])∧(i58[0]* i58[1])∧(java.lang.Object(ARRAY(i3[0], a499data[0])) →* java.lang.Object(ARRAY(i3[1], a499data[1]))))

(1) -> (2), if ((java.lang.Object(ARRAY(i3[1], a499data[1])) →* java.lang.Object(ARRAY(i3[2], a499data[2])))∧(i52[1] > 0 && i52[1] < i3[1] && i58[1] > 0 && i52[1] + 1 > 0* TRUE)∧(i58[1]* i58[2])∧(i52[1]* i52[2]))

(2) -> (0), if ((java.lang.Object(ARRAY(i3[2], a499data[2])) →* java.lang.Object(ARRAY(i3[0], a499data[0])))∧(i58[2] + -1* i58[0])∧(i52[2] + 1* i52[0]))

(2) -> (4), if ((i58[2] + -1* i58[4])∧(java.lang.Object(ARRAY(i3[2], a499data[2])) →* java.lang.Object(ARRAY(i3[4], a499data[4])))∧(i52[2] + 1* i52[4]))

(3) -> (0), if ((i2554[3]* i52[0])∧(java.lang.Object(ARRAY(i3[3], a7196data[3])) →* java.lang.Object(ARRAY(i3[0], a499data[0])))∧(i58[3] + -1* i58[0]))

(3) -> (4), if ((java.lang.Object(ARRAY(i3[3], a7196data[3])) →* java.lang.Object(ARRAY(i3[4], a499data[4])))∧(i2554[3]* i52[4])∧(i58[3] + -1* i58[4]))

(4) -> (5), if ((i52[4]* i52[5])∧(java.lang.Object(ARRAY(i3[4], a499data[4])) →* java.lang.Object(ARRAY(i3[5], a499data[5])))∧(i58[4]* i58[5])∧(java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])) →* java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5]))))

(5) -> (6), if ((i52[5]* i52[6])∧(java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])) →* java.lang.Object(java.lang.String(i114[6], i82[6], i84[6], a627[6])))∧(java.lang.Object(ARRAY(i3[5], a499data[5])) →* java.lang.Object(ARRAY(i3[6], a499data[6])))∧(i114[5] > 0 && i52[5] > 0 && i52[5] < i3[5] && i58[5] > 0 && i52[5] + 1 > 0* TRUE)∧(i58[5]* i58[6]))

(6) -> (3), if ((i114[6]* 0)∧(i52[6] + 1* i2554[3])∧(i58[6]* i58[3])∧(java.lang.Object(ARRAY(i3[6], a499data[6])) →* java.lang.Object(ARRAY(i3[3], a7196data[3]))))

(6) -> (8), if ((i114[6]* i2563[8])∧(i58[6]* i58[8])∧(i52[6] + 1* i2554[8])∧(java.lang.Object(ARRAY(i3[6], a499data[6])) →* java.lang.Object(ARRAY(i3[8], a7196data[8]))))

(6) -> (11), if ((java.lang.Object(ARRAY(i3[6], a499data[6])) →* java.lang.Object(ARRAY(i3[11], a7196data[11])))∧(i58[6]* i58[11])∧(i114[6]* i2563[11])∧(i52[6] + 1* i2554[11]))

(6) -> (15), if ((i52[6] + 1* i2554[15])∧(i114[6]* i2563[15])∧(i58[6]* i58[15])∧(java.lang.Object(ARRAY(i3[6], a499data[6])) →* java.lang.Object(ARRAY(i3[15], a7196data[15]))))

(6) -> (18), if ((java.lang.Object(ARRAY(i3[6], a499data[6])) →* java.lang.Object(ARRAY(i3[18], a7196data[18])))∧(i58[6]* i58[18])∧(i52[6] + 1* i2554[18])∧(i114[6]* i2563[18]))

(7) -> (3), if ((i2624[7]* i2554[3])∧(i58[7]* i58[3])∧(java.lang.Object(ARRAY(i3[7], a7196data[7])) →* java.lang.Object(ARRAY(i3[3], a7196data[3])))∧(i2563[7] + -1* 0))

(7) -> (8), if ((i58[7]* i58[8])∧(i2624[7]* i2554[8])∧(java.lang.Object(ARRAY(i3[7], a7196data[7])) →* java.lang.Object(ARRAY(i3[8], a7196data[8])))∧(i2563[7] + -1* i2563[8]))

(7) -> (11), if ((i2624[7]* i2554[11])∧(i58[7]* i58[11])∧(java.lang.Object(ARRAY(i3[7], a7196data[7])) →* java.lang.Object(ARRAY(i3[11], a7196data[11])))∧(i2563[7] + -1* i2563[11]))

(7) -> (15), if ((i2563[7] + -1* i2563[15])∧(i58[7]* i58[15])∧(i2624[7]* i2554[15])∧(java.lang.Object(ARRAY(i3[7], a7196data[7])) →* java.lang.Object(ARRAY(i3[15], a7196data[15]))))

(7) -> (18), if ((i58[7]* i58[18])∧(i2624[7]* i2554[18])∧(i2563[7] + -1* i2563[18])∧(java.lang.Object(ARRAY(i3[7], a7196data[7])) →* java.lang.Object(ARRAY(i3[18], a7196data[18]))))

(8) -> (9), if ((i2554[8]* i2554[9])∧(i2563[8]* i2563[9])∧(i58[8]* i58[9])∧(java.lang.Object(ARRAY(i3[8], a7196data[8])) →* java.lang.Object(ARRAY(i3[9], a7196data[9]))))

(9) -> (10), if ((i2563[9]* i2563[10])∧(java.lang.Object(ARRAY(i3[9], a7196data[9])) →* java.lang.Object(ARRAY(i3[10], a7196data[10])))∧(i58[9]* i58[10])∧(i2554[9] > 0 && i2554[9] < i3[9] && i2563[9] > 0 && i2554[9] + 1 > 0* TRUE)∧(i2554[9]* i2554[10]))

(10) -> (3), if ((i58[10]* i58[3])∧(i2563[10] + -1* 0)∧(java.lang.Object(ARRAY(i3[10], a7196data[10])) →* java.lang.Object(ARRAY(i3[3], a7196data[3])))∧(i2554[10] + 1* i2554[3]))

(10) -> (8), if ((i58[10]* i58[8])∧(java.lang.Object(ARRAY(i3[10], a7196data[10])) →* java.lang.Object(ARRAY(i3[8], a7196data[8])))∧(i2554[10] + 1* i2554[8])∧(i2563[10] + -1* i2563[8]))

(10) -> (11), if ((i2563[10] + -1* i2563[11])∧(i58[10]* i58[11])∧(i2554[10] + 1* i2554[11])∧(java.lang.Object(ARRAY(i3[10], a7196data[10])) →* java.lang.Object(ARRAY(i3[11], a7196data[11]))))

(10) -> (15), if ((java.lang.Object(ARRAY(i3[10], a7196data[10])) →* java.lang.Object(ARRAY(i3[15], a7196data[15])))∧(i58[10]* i58[15])∧(i2554[10] + 1* i2554[15])∧(i2563[10] + -1* i2563[15]))

(10) -> (18), if ((java.lang.Object(ARRAY(i3[10], a7196data[10])) →* java.lang.Object(ARRAY(i3[18], a7196data[18])))∧(i2554[10] + 1* i2554[18])∧(i58[10]* i58[18])∧(i2563[10] + -1* i2563[18]))

(11) -> (12), if ((i2563[11]* i2563[12])∧(java.lang.Object(ARRAY(i3[11], a7196data[11])) →* java.lang.Object(ARRAY(i3[12], a7196data[12])))∧(i2554[11]* i2554[12])∧(i58[11]* i58[12]))

(12) -> (13), if ((java.lang.Object(ARRAY(i3[12], a7196data[12])) →* java.lang.Object(ARRAY(i3[13], a7196data[13])))∧(i2563[12]* i2563[13])∧(i58[12]* i58[13])∧(i2554[12]* i2554[13])∧(i2554[12] > 0 && i2554[12] < i3[12] && i2563[12] > 0 && i2554[12] + 1 > 0* TRUE))

(13) -> (7), if ((i2554[13] + 1* i2624[7])∧(i2563[13]* i2563[7])∧(java.lang.Object(ARRAY(i3[13], a7196data[13])) →* java.lang.Object(ARRAY(i3[7], a7196data[7])))∧(i58[13]* i58[7]))

(14) -> (7), if ((i2563[14]* i2563[7])∧(i2624[14]* i2624[7])∧(i58[14]* i58[7])∧(java.lang.Object(ARRAY(i3[14], a7196data[14])) →* java.lang.Object(ARRAY(i3[7], a7196data[7]))))

(15) -> (16), if ((java.lang.Object(ARRAY(i3[15], a7196data[15])) →* java.lang.Object(ARRAY(i3[16], a7196data[16])))∧(i2554[15]* i2554[16])∧(i58[15]* i58[16])∧(java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])) →* java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))∧(i2563[15]* i2563[16]))

(16) -> (17), if ((i58[16]* i58[17])∧(java.lang.Object(ARRAY(i3[16], a7196data[16])) →* java.lang.Object(ARRAY(i3[17], a7196data[17])))∧(i2854[16] > 0 && i2554[16] > 0 && i2554[16] < i3[16] && i2563[16] > 0 && i2554[16] + 1 > 0* TRUE)∧(i2563[16]* i2563[17])∧(i2554[16]* i2554[17])∧(java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])) →* java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))))

(17) -> (7), if ((i58[17]* i58[7])∧(java.lang.Object(ARRAY(i3[17], a7196data[17])) →* java.lang.Object(ARRAY(i3[7], a7196data[7])))∧(i2554[17] + 1* i2624[7])∧(i2563[17]* i2563[7]))

(18) -> (19), if ((java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])) →* java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))∧(i2554[18]* i2554[19])∧(i2563[18]* i2563[19])∧(i58[18]* i58[19])∧(java.lang.Object(ARRAY(i3[18], a7196data[18])) →* java.lang.Object(ARRAY(i3[19], a7196data[19]))))

(19) -> (20), if ((i2554[19]* i2554[20])∧(i2563[19]* i2563[20])∧(i58[19]* i58[20])∧(i2854[19] > 0 && i2554[19] > 0 && i2554[19] < i3[19] && i2563[19] > 0 && i2554[19] + 1 > 0* TRUE)∧(java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])) →* java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20])))∧(java.lang.Object(ARRAY(i3[19], a7196data[19])) →* java.lang.Object(ARRAY(i3[20], a7196data[20]))))

(20) -> (14), if ((i2563[20]* i2563[14])∧(i58[20]* i58[14])∧(i2554[20] + 1* i2624[14])∧(java.lang.Object(ARRAY(i3[20], a7196data[20])) →* java.lang.Object(ARRAY(i3[14], a7196data[14]))))

The set Q consists of the following terms:
Load833ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc14138(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
JMP14222(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Load11943ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Load11943ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))

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

### (22) Obligation:

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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(1): LOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1]) → COND_LOAD833ARR1(i52[1] > 0 && i52[1] < i3[1] && i58[1] > 0 && i52[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])
(2): COND_LOAD833ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a499data[2])), i52[2], i58[2]) → LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), i52[2] + 1, i58[2] + -1)
(3): LOAD11943(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], i58[3], 0) → LOAD833(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], i58[3] + -1)
(4): LOAD833(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4]) → LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))
(5): LOAD833ARR2(java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5]))) → COND_LOAD833ARR2(i114[5] > 0 && i52[5] > 0 && i52[5] < i3[5] && i58[5] > 0 && i52[5] + 1 > 0, java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))
(6): COND_LOAD833ARR2(TRUE, java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6], i58[6], java.lang.Object(java.lang.String(i114[6], i82[6], i84[6], a627[6]))) → LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6] + 1, i58[6], i114[6])
(7): INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7]) → LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7] + -1)
(8): LOAD11943(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8]) → LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8])
(9): LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9]) → COND_LOAD11943ARR3(i2554[9] > 0 && i2554[9] < i3[9] && i2563[9] > 0 && i2554[9] + 1 > 0, java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])
(10): COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10], i58[10], i2563[10]) → LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10] + 1, i58[10], i2563[10] + -1)
(11): LOAD11943(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11]) → LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11])
(12): LOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12]) → COND_LOAD11943ARR5(i2554[12] > 0 && i2554[12] < i3[12] && i2563[12] > 0 && i2554[12] + 1 > 0, java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])
(13): COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13], i58[13], i2563[13]) → INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13] + 1, i58[13], i2563[13])
(14): JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]) → INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])
(15): LOAD11943(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15]) → LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))
(16): LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))) → COND_LOAD11943ARR6(i2854[16] > 0 && i2554[16] > 0 && i2554[16] < i3[16] && i2563[16] > 0 && i2554[16] + 1 > 0, java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))
(17): COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))) → INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17] + 1, i58[17], i2563[17])
(18): LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18]) → LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))
(19): LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))) → COND_LOAD11943ARR9(i2854[19] > 0 && i2554[19] > 0 && i2554[19] < i3[19] && i2563[19] > 0 && i2554[19] + 1 > 0, java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))
(20): COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20]))) → JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20] + 1, i58[20], i2563[20])

(0) -> (1), if ((i52[0]* i52[1])∧(i58[0]* i58[1])∧(java.lang.Object(ARRAY(i3[0], a499data[0])) →* java.lang.Object(ARRAY(i3[1], a499data[1]))))

(1) -> (2), if ((java.lang.Object(ARRAY(i3[1], a499data[1])) →* java.lang.Object(ARRAY(i3[2], a499data[2])))∧(i52[1] > 0 && i52[1] < i3[1] && i58[1] > 0 && i52[1] + 1 > 0* TRUE)∧(i58[1]* i58[2])∧(i52[1]* i52[2]))

(2) -> (0), if ((java.lang.Object(ARRAY(i3[2], a499data[2])) →* java.lang.Object(ARRAY(i3[0], a499data[0])))∧(i58[2] + -1* i58[0])∧(i52[2] + 1* i52[0]))

(2) -> (4), if ((i58[2] + -1* i58[4])∧(java.lang.Object(ARRAY(i3[2], a499data[2])) →* java.lang.Object(ARRAY(i3[4], a499data[4])))∧(i52[2] + 1* i52[4]))

(3) -> (0), if ((i2554[3]* i52[0])∧(java.lang.Object(ARRAY(i3[3], a7196data[3])) →* java.lang.Object(ARRAY(i3[0], a499data[0])))∧(i58[3] + -1* i58[0]))

(3) -> (4), if ((java.lang.Object(ARRAY(i3[3], a7196data[3])) →* java.lang.Object(ARRAY(i3[4], a499data[4])))∧(i2554[3]* i52[4])∧(i58[3] + -1* i58[4]))

(4) -> (5), if ((i52[4]* i52[5])∧(java.lang.Object(ARRAY(i3[4], a499data[4])) →* java.lang.Object(ARRAY(i3[5], a499data[5])))∧(i58[4]* i58[5])∧(java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])) →* java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5]))))

(5) -> (6), if ((i52[5]* i52[6])∧(java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])) →* java.lang.Object(java.lang.String(i114[6], i82[6], i84[6], a627[6])))∧(java.lang.Object(ARRAY(i3[5], a499data[5])) →* java.lang.Object(ARRAY(i3[6], a499data[6])))∧(i114[5] > 0 && i52[5] > 0 && i52[5] < i3[5] && i58[5] > 0 && i52[5] + 1 > 0* TRUE)∧(i58[5]* i58[6]))

(6) -> (3), if ((i114[6]* 0)∧(i52[6] + 1* i2554[3])∧(i58[6]* i58[3])∧(java.lang.Object(ARRAY(i3[6], a499data[6])) →* java.lang.Object(ARRAY(i3[3], a7196data[3]))))

(6) -> (8), if ((i114[6]* i2563[8])∧(i58[6]* i58[8])∧(i52[6] + 1* i2554[8])∧(java.lang.Object(ARRAY(i3[6], a499data[6])) →* java.lang.Object(ARRAY(i3[8], a7196data[8]))))

(6) -> (11), if ((java.lang.Object(ARRAY(i3[6], a499data[6])) →* java.lang.Object(ARRAY(i3[11], a7196data[11])))∧(i58[6]* i58[11])∧(i114[6]* i2563[11])∧(i52[6] + 1* i2554[11]))

(6) -> (15), if ((i52[6] + 1* i2554[15])∧(i114[6]* i2563[15])∧(i58[6]* i58[15])∧(java.lang.Object(ARRAY(i3[6], a499data[6])) →* java.lang.Object(ARRAY(i3[15], a7196data[15]))))

(6) -> (18), if ((java.lang.Object(ARRAY(i3[6], a499data[6])) →* java.lang.Object(ARRAY(i3[18], a7196data[18])))∧(i58[6]* i58[18])∧(i52[6] + 1* i2554[18])∧(i114[6]* i2563[18]))

(7) -> (3), if ((i2624[7]* i2554[3])∧(i58[7]* i58[3])∧(java.lang.Object(ARRAY(i3[7], a7196data[7])) →* java.lang.Object(ARRAY(i3[3], a7196data[3])))∧(i2563[7] + -1* 0))

(7) -> (8), if ((i58[7]* i58[8])∧(i2624[7]* i2554[8])∧(java.lang.Object(ARRAY(i3[7], a7196data[7])) →* java.lang.Object(ARRAY(i3[8], a7196data[8])))∧(i2563[7] + -1* i2563[8]))

(7) -> (11), if ((i2624[7]* i2554[11])∧(i58[7]* i58[11])∧(java.lang.Object(ARRAY(i3[7], a7196data[7])) →* java.lang.Object(ARRAY(i3[11], a7196data[11])))∧(i2563[7] + -1* i2563[11]))

(7) -> (15), if ((i2563[7] + -1* i2563[15])∧(i58[7]* i58[15])∧(i2624[7]* i2554[15])∧(java.lang.Object(ARRAY(i3[7], a7196data[7])) →* java.lang.Object(ARRAY(i3[15], a7196data[15]))))

(7) -> (18), if ((i58[7]* i58[18])∧(i2624[7]* i2554[18])∧(i2563[7] + -1* i2563[18])∧(java.lang.Object(ARRAY(i3[7], a7196data[7])) →* java.lang.Object(ARRAY(i3[18], a7196data[18]))))

(8) -> (9), if ((i2554[8]* i2554[9])∧(i2563[8]* i2563[9])∧(i58[8]* i58[9])∧(java.lang.Object(ARRAY(i3[8], a7196data[8])) →* java.lang.Object(ARRAY(i3[9], a7196data[9]))))

(9) -> (10), if ((i2563[9]* i2563[10])∧(java.lang.Object(ARRAY(i3[9], a7196data[9])) →* java.lang.Object(ARRAY(i3[10], a7196data[10])))∧(i58[9]* i58[10])∧(i2554[9] > 0 && i2554[9] < i3[9] && i2563[9] > 0 && i2554[9] + 1 > 0* TRUE)∧(i2554[9]* i2554[10]))

(10) -> (3), if ((i58[10]* i58[3])∧(i2563[10] + -1* 0)∧(java.lang.Object(ARRAY(i3[10], a7196data[10])) →* java.lang.Object(ARRAY(i3[3], a7196data[3])))∧(i2554[10] + 1* i2554[3]))

(10) -> (8), if ((i58[10]* i58[8])∧(java.lang.Object(ARRAY(i3[10], a7196data[10])) →* java.lang.Object(ARRAY(i3[8], a7196data[8])))∧(i2554[10] + 1* i2554[8])∧(i2563[10] + -1* i2563[8]))

(10) -> (11), if ((i2563[10] + -1* i2563[11])∧(i58[10]* i58[11])∧(i2554[10] + 1* i2554[11])∧(java.lang.Object(ARRAY(i3[10], a7196data[10])) →* java.lang.Object(ARRAY(i3[11], a7196data[11]))))

(10) -> (15), if ((java.lang.Object(ARRAY(i3[10], a7196data[10])) →* java.lang.Object(ARRAY(i3[15], a7196data[15])))∧(i58[10]* i58[15])∧(i2554[10] + 1* i2554[15])∧(i2563[10] + -1* i2563[15]))

(10) -> (18), if ((java.lang.Object(ARRAY(i3[10], a7196data[10])) →* java.lang.Object(ARRAY(i3[18], a7196data[18])))∧(i2554[10] + 1* i2554[18])∧(i58[10]* i58[18])∧(i2563[10] + -1* i2563[18]))

(11) -> (12), if ((i2563[11]* i2563[12])∧(java.lang.Object(ARRAY(i3[11], a7196data[11])) →* java.lang.Object(ARRAY(i3[12], a7196data[12])))∧(i2554[11]* i2554[12])∧(i58[11]* i58[12]))

(12) -> (13), if ((java.lang.Object(ARRAY(i3[12], a7196data[12])) →* java.lang.Object(ARRAY(i3[13], a7196data[13])))∧(i2563[12]* i2563[13])∧(i58[12]* i58[13])∧(i2554[12]* i2554[13])∧(i2554[12] > 0 && i2554[12] < i3[12] && i2563[12] > 0 && i2554[12] + 1 > 0* TRUE))

(13) -> (7), if ((i2554[13] + 1* i2624[7])∧(i2563[13]* i2563[7])∧(java.lang.Object(ARRAY(i3[13], a7196data[13])) →* java.lang.Object(ARRAY(i3[7], a7196data[7])))∧(i58[13]* i58[7]))

(14) -> (7), if ((i2563[14]* i2563[7])∧(i2624[14]* i2624[7])∧(i58[14]* i58[7])∧(java.lang.Object(ARRAY(i3[14], a7196data[14])) →* java.lang.Object(ARRAY(i3[7], a7196data[7]))))

(15) -> (16), if ((java.lang.Object(ARRAY(i3[15], a7196data[15])) →* java.lang.Object(ARRAY(i3[16], a7196data[16])))∧(i2554[15]* i2554[16])∧(i58[15]* i58[16])∧(java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])) →* java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))∧(i2563[15]* i2563[16]))

(16) -> (17), if ((i58[16]* i58[17])∧(java.lang.Object(ARRAY(i3[16], a7196data[16])) →* java.lang.Object(ARRAY(i3[17], a7196data[17])))∧(i2854[16] > 0 && i2554[16] > 0 && i2554[16] < i3[16] && i2563[16] > 0 && i2554[16] + 1 > 0* TRUE)∧(i2563[16]* i2563[17])∧(i2554[16]* i2554[17])∧(java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])) →* java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))))

(17) -> (7), if ((i58[17]* i58[7])∧(java.lang.Object(ARRAY(i3[17], a7196data[17])) →* java.lang.Object(ARRAY(i3[7], a7196data[7])))∧(i2554[17] + 1* i2624[7])∧(i2563[17]* i2563[7]))

(18) -> (19), if ((java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])) →* java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))∧(i2554[18]* i2554[19])∧(i2563[18]* i2563[19])∧(i58[18]* i58[19])∧(java.lang.Object(ARRAY(i3[18], a7196data[18])) →* java.lang.Object(ARRAY(i3[19], a7196data[19]))))

(19) -> (20), if ((i2554[19]* i2554[20])∧(i2563[19]* i2563[20])∧(i58[19]* i58[20])∧(i2854[19] > 0 && i2554[19] > 0 && i2554[19] < i3[19] && i2563[19] > 0 && i2554[19] + 1 > 0* TRUE)∧(java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])) →* java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20])))∧(java.lang.Object(ARRAY(i3[19], a7196data[19])) →* java.lang.Object(ARRAY(i3[20], a7196data[20]))))

(20) -> (14), if ((i2563[20]* i2563[14])∧(i58[20]* i58[14])∧(i2554[20] + 1* i2624[14])∧(java.lang.Object(ARRAY(i3[20], a7196data[20])) →* java.lang.Object(ARRAY(i3[14], a7196data[14]))))

The set Q consists of the following terms:
Load833ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc14138(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
JMP14222(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Load11943ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Load11943ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))

### (23) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

### (24) 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): LOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1]) → COND_LOAD833ARR1(i52[1] > 0 && i52[1] < i3[1] && i58[1] > 0 && i52[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])
(2): COND_LOAD833ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a499data[2])), i52[2], i58[2]) → LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), i52[2] + 1, i58[2] + -1)
(3): LOAD11943(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], i58[3], 0) → LOAD833(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], i58[3] + -1)
(4): LOAD833(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4]) → LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))
(5): LOAD833ARR2(java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5]))) → COND_LOAD833ARR2(i114[5] > 0 && i52[5] > 0 && i52[5] < i3[5] && i58[5] > 0 && i52[5] + 1 > 0, java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))
(6): COND_LOAD833ARR2(TRUE, java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6], i58[6], java.lang.Object(java.lang.String(i114[6], i82[6], i84[6], a627[6]))) → LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6] + 1, i58[6], i114[6])
(7): INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7]) → LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7] + -1)
(8): LOAD11943(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8]) → LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8])
(9): LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9]) → COND_LOAD11943ARR3(i2554[9] > 0 && i2554[9] < i3[9] && i2563[9] > 0 && i2554[9] + 1 > 0, java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])
(10): COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10], i58[10], i2563[10]) → LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10] + 1, i58[10], i2563[10] + -1)
(11): LOAD11943(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11]) → LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11])
(12): LOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12]) → COND_LOAD11943ARR5(i2554[12] > 0 && i2554[12] < i3[12] && i2563[12] > 0 && i2554[12] + 1 > 0, java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])
(13): COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13], i58[13], i2563[13]) → INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13] + 1, i58[13], i2563[13])
(14): JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]) → INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])
(15): LOAD11943(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15]) → LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))
(16): LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))) → COND_LOAD11943ARR6(i2854[16] > 0 && i2554[16] > 0 && i2554[16] < i3[16] && i2563[16] > 0 && i2554[16] + 1 > 0, java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))
(17): COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))) → INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17] + 1, i58[17], i2563[17])
(18): LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18]) → LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))
(19): LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))) → COND_LOAD11943ARR9(i2854[19] > 0 && i2554[19] > 0 && i2554[19] < i3[19] && i2563[19] > 0 && i2554[19] + 1 > 0, java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))
(20): COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20]))) → JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20] + 1, i58[20], i2563[20])

(0) -> (1), if ((i52[0]* i52[1])∧(i58[0]* i58[1])∧((i3[0]* i3[1])∧(a499data[0]* a499data[1])))

(1) -> (2), if (((i3[1]* i3[2])∧(a499data[1]* a499data[2]))∧(i52[1] > 0 && i52[1] < i3[1] && i58[1] > 0 && i52[1] + 1 > 0* TRUE)∧(i58[1]* i58[2])∧(i52[1]* i52[2]))

(2) -> (0), if (((i3[2]* i3[0])∧(a499data[2]* a499data[0]))∧(i58[2] + -1* i58[0])∧(i52[2] + 1* i52[0]))

(2) -> (4), if ((i58[2] + -1* i58[4])∧((i3[2]* i3[4])∧(a499data[2]* a499data[4]))∧(i52[2] + 1* i52[4]))

(3) -> (0), if ((i2554[3]* i52[0])∧((i3[3]* i3[0])∧(a7196data[3]* a499data[0]))∧(i58[3] + -1* i58[0]))

(3) -> (4), if (((i3[3]* i3[4])∧(a7196data[3]* a499data[4]))∧(i2554[3]* i52[4])∧(i58[3] + -1* i58[4]))

(4) -> (5), if ((i52[4]* i52[5])∧((i3[4]* i3[5])∧(a499data[4]* a499data[5]))∧(i58[4]* i58[5])∧((i114[4]* i114[5])∧(i82[4]* i82[5])∧(i84[4]* i84[5])∧(a627[4]* a627[5])))

(5) -> (6), if ((i52[5]* i52[6])∧((i114[5]* i114[6])∧(i82[5]* i82[6])∧(i84[5]* i84[6])∧(a627[5]* a627[6]))∧((i3[5]* i3[6])∧(a499data[5]* a499data[6]))∧(i114[5] > 0 && i52[5] > 0 && i52[5] < i3[5] && i58[5] > 0 && i52[5] + 1 > 0* TRUE)∧(i58[5]* i58[6]))

(6) -> (3), if ((i114[6]* 0)∧(i52[6] + 1* i2554[3])∧(i58[6]* i58[3])∧((i3[6]* i3[3])∧(a499data[6]* a7196data[3])))

(6) -> (8), if ((i114[6]* i2563[8])∧(i58[6]* i58[8])∧(i52[6] + 1* i2554[8])∧((i3[6]* i3[8])∧(a499data[6]* a7196data[8])))

(6) -> (11), if (((i3[6]* i3[11])∧(a499data[6]* a7196data[11]))∧(i58[6]* i58[11])∧(i114[6]* i2563[11])∧(i52[6] + 1* i2554[11]))

(6) -> (15), if ((i52[6] + 1* i2554[15])∧(i114[6]* i2563[15])∧(i58[6]* i58[15])∧((i3[6]* i3[15])∧(a499data[6]* a7196data[15])))

(6) -> (18), if (((i3[6]* i3[18])∧(a499data[6]* a7196data[18]))∧(i58[6]* i58[18])∧(i52[6] + 1* i2554[18])∧(i114[6]* i2563[18]))

(7) -> (3), if ((i2624[7]* i2554[3])∧(i58[7]* i58[3])∧((i3[7]* i3[3])∧(a7196data[7]* a7196data[3]))∧(i2563[7] + -1* 0))

(7) -> (8), if ((i58[7]* i58[8])∧(i2624[7]* i2554[8])∧((i3[7]* i3[8])∧(a7196data[7]* a7196data[8]))∧(i2563[7] + -1* i2563[8]))

(7) -> (11), if ((i2624[7]* i2554[11])∧(i58[7]* i58[11])∧((i3[7]* i3[11])∧(a7196data[7]* a7196data[11]))∧(i2563[7] + -1* i2563[11]))

(7) -> (15), if ((i2563[7] + -1* i2563[15])∧(i58[7]* i58[15])∧(i2624[7]* i2554[15])∧((i3[7]* i3[15])∧(a7196data[7]* a7196data[15])))

(7) -> (18), if ((i58[7]* i58[18])∧(i2624[7]* i2554[18])∧(i2563[7] + -1* i2563[18])∧((i3[7]* i3[18])∧(a7196data[7]* a7196data[18])))

(8) -> (9), if ((i2554[8]* i2554[9])∧(i2563[8]* i2563[9])∧(i58[8]* i58[9])∧((i3[8]* i3[9])∧(a7196data[8]* a7196data[9])))

(9) -> (10), if ((i2563[9]* i2563[10])∧((i3[9]* i3[10])∧(a7196data[9]* a7196data[10]))∧(i58[9]* i58[10])∧(i2554[9] > 0 && i2554[9] < i3[9] && i2563[9] > 0 && i2554[9] + 1 > 0* TRUE)∧(i2554[9]* i2554[10]))

(10) -> (3), if ((i58[10]* i58[3])∧(i2563[10] + -1* 0)∧((i3[10]* i3[3])∧(a7196data[10]* a7196data[3]))∧(i2554[10] + 1* i2554[3]))

(10) -> (8), if ((i58[10]* i58[8])∧((i3[10]* i3[8])∧(a7196data[10]* a7196data[8]))∧(i2554[10] + 1* i2554[8])∧(i2563[10] + -1* i2563[8]))

(10) -> (11), if ((i2563[10] + -1* i2563[11])∧(i58[10]* i58[11])∧(i2554[10] + 1* i2554[11])∧((i3[10]* i3[11])∧(a7196data[10]* a7196data[11])))

(10) -> (15), if (((i3[10]* i3[15])∧(a7196data[10]* a7196data[15]))∧(i58[10]* i58[15])∧(i2554[10] + 1* i2554[15])∧(i2563[10] + -1* i2563[15]))

(10) -> (18), if (((i3[10]* i3[18])∧(a7196data[10]* a7196data[18]))∧(i2554[10] + 1* i2554[18])∧(i58[10]* i58[18])∧(i2563[10] + -1* i2563[18]))

(11) -> (12), if ((i2563[11]* i2563[12])∧((i3[11]* i3[12])∧(a7196data[11]* a7196data[12]))∧(i2554[11]* i2554[12])∧(i58[11]* i58[12]))

(12) -> (13), if (((i3[12]* i3[13])∧(a7196data[12]* a7196data[13]))∧(i2563[12]* i2563[13])∧(i58[12]* i58[13])∧(i2554[12]* i2554[13])∧(i2554[12] > 0 && i2554[12] < i3[12] && i2563[12] > 0 && i2554[12] + 1 > 0* TRUE))

(13) -> (7), if ((i2554[13] + 1* i2624[7])∧(i2563[13]* i2563[7])∧((i3[13]* i3[7])∧(a7196data[13]* a7196data[7]))∧(i58[13]* i58[7]))

(14) -> (7), if ((i2563[14]* i2563[7])∧(i2624[14]* i2624[7])∧(i58[14]* i58[7])∧((i3[14]* i3[7])∧(a7196data[14]* a7196data[7])))

(15) -> (16), if (((i3[15]* i3[16])∧(a7196data[15]* a7196data[16]))∧(i2554[15]* i2554[16])∧(i58[15]* i58[16])∧((i2854[15]* i2854[16])∧(i2744[15]* i2744[16])∧(i2746[15]* i2746[16])∧(a7628[15]* a7628[16]))∧(i2563[15]* i2563[16]))

(16) -> (17), if ((i58[16]* i58[17])∧((i3[16]* i3[17])∧(a7196data[16]* a7196data[17]))∧(i2854[16] > 0 && i2554[16] > 0 && i2554[16] < i3[16] && i2563[16] > 0 && i2554[16] + 1 > 0* TRUE)∧(i2563[16]* i2563[17])∧(i2554[16]* i2554[17])∧((i2854[16]* i2854[17])∧(i2744[16]* i2744[17])∧(i2746[16]* i2746[17])∧(a7628[16]* a7628[17])))

(17) -> (7), if ((i58[17]* i58[7])∧((i3[17]* i3[7])∧(a7196data[17]* a7196data[7]))∧(i2554[17] + 1* i2624[7])∧(i2563[17]* i2563[7]))

(18) -> (19), if (((i2854[18]* i2854[19])∧(i2744[18]* i2744[19])∧(i2746[18]* i2746[19])∧(a7628[18]* a7628[19]))∧(i2554[18]* i2554[19])∧(i2563[18]* i2563[19])∧(i58[18]* i58[19])∧((i3[18]* i3[19])∧(a7196data[18]* a7196data[19])))

(19) -> (20), if ((i2554[19]* i2554[20])∧(i2563[19]* i2563[20])∧(i58[19]* i58[20])∧(i2854[19] > 0 && i2554[19] > 0 && i2554[19] < i3[19] && i2563[19] > 0 && i2554[19] + 1 > 0* TRUE)∧((i2854[19]* i2854[20])∧(i2744[19]* i2744[20])∧(i2746[19]* i2746[20])∧(a7628[19]* a7628[20]))∧((i3[19]* i3[20])∧(a7196data[19]* a7196data[20])))

(20) -> (14), if ((i2563[20]* i2563[14])∧(i58[20]* i58[14])∧(i2554[20] + 1* i2624[14])∧((i3[20]* i3[14])∧(a7196data[20]* a7196data[14])))

The set Q consists of the following terms:
Load833ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc14138(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
JMP14222(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Load11943ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Load11943ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))

### (25) 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 LOAD833(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → LOAD833ARR1(java.lang.Object(ARRAY(i3, a499data)), i52, i58) the following chains were created:
• We consider the chain LOAD833(java.lang.Object(ARRAY(i3[0], a499data[0])), i52[0], i58[0]) → LOAD833ARR1(java.lang.Object(ARRAY(i3[0], a499data[0])), i52[0], i58[0]), LOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1]) → COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[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(LOAD833ARR1(java.lang.Object(ARRAY(i3[0], a499data[0])), i52[0], i58[0])), ≥)∧[2 + (-1)bso_39] ≥ 0)

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

(4)    ((UIncreasing(LOAD833ARR1(java.lang.Object(ARRAY(i3[0], a499data[0])), i52[0], i58[0])), ≥)∧[2 + (-1)bso_39] ≥ 0)

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

(5)    ((UIncreasing(LOAD833ARR1(java.lang.Object(ARRAY(i3[0], a499data[0])), i52[0], i58[0])), ≥)∧[2 + (-1)bso_39] ≥ 0)

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

(6)    ((UIncreasing(LOAD833ARR1(java.lang.Object(ARRAY(i3[0], a499data[0])), i52[0], i58[0])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_39] ≥ 0)

For Pair LOAD833ARR1(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → COND_LOAD833ARR1(&&(&&(&&(>(i52, 0), <(i52, i3)), >(i58, 0)), >(+(i52, 1), 0)), java.lang.Object(ARRAY(i3, a499data)), i52, i58) the following chains were created:
• We consider the chain LOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1]) → COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1]), COND_LOAD833ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a499data[2])), i52[2], i58[2]) → LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), +(i52[2], 1), +(i58[2], -1)) which results in the following constraint:

(7)    (i3[1]=i3[2]a499data[1]=a499data[2]&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0))=TRUEi58[1]=i58[2]i52[1]=i52[2]LOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])≥NonInfC∧LOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])≥COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])∧(UIncreasing(COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])), ≥))

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

(8)    (>(+(i52[1], 1), 0)=TRUE>(i58[1], 0)=TRUE>(i52[1], 0)=TRUE<(i52[1], i3[1])=TRUELOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])≥NonInfC∧LOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])≥COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])∧(UIncreasing(COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])), ≥))

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

(9)    (i52[1] ≥ 0∧i58[1] + [-1] ≥ 0∧i52[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i52[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])), ≥)∧[(-1)Bound*bni_40] + [(2)bni_40]i58[1] + [(-1)bni_40]i52[1] + [bni_40]i3[1] ≥ 0∧[(-1)bso_41] ≥ 0)

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

(10)    (i52[1] ≥ 0∧i58[1] + [-1] ≥ 0∧i52[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i52[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])), ≥)∧[(-1)Bound*bni_40] + [(2)bni_40]i58[1] + [(-1)bni_40]i52[1] + [bni_40]i3[1] ≥ 0∧[(-1)bso_41] ≥ 0)

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

(11)    (i52[1] ≥ 0∧i58[1] + [-1] ≥ 0∧i52[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i52[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])), ≥)∧[(-1)Bound*bni_40] + [(2)bni_40]i58[1] + [(-1)bni_40]i52[1] + [bni_40]i3[1] ≥ 0∧[(-1)bso_41] ≥ 0)

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

(12)    (i52[1] ≥ 0∧i58[1] + [-1] ≥ 0∧i52[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i52[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])), ≥)∧0 = 0∧[(-1)Bound*bni_40] + [(2)bni_40]i58[1] + [(-1)bni_40]i52[1] + [bni_40]i3[1] ≥ 0∧0 = 0∧[(-1)bso_41] ≥ 0)

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

(13)    ([1] + i52[1] ≥ 0∧i58[1] + [-1] ≥ 0∧i52[1] ≥ 0∧i3[1] + [-2] + [-1]i52[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])), ≥)∧0 = 0∧[(-1)Bound*bni_40 + (-1)bni_40] + [(2)bni_40]i58[1] + [(-1)bni_40]i52[1] + [bni_40]i3[1] ≥ 0∧0 = 0∧[(-1)bso_41] ≥ 0)

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

(14)    ([1] + i52[1] ≥ 0∧i58[1] ≥ 0∧i52[1] ≥ 0∧i3[1] + [-2] + [-1]i52[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])), ≥)∧0 = 0∧[(-1)Bound*bni_40 + bni_40] + [(2)bni_40]i58[1] + [(-1)bni_40]i52[1] + [bni_40]i3[1] ≥ 0∧0 = 0∧[(-1)bso_41] ≥ 0)

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

(15)    ([1] + i52[1] ≥ 0∧i58[1] ≥ 0∧i52[1] ≥ 0∧i3[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])), ≥)∧0 = 0∧[(-1)Bound*bni_40 + (3)bni_40] + [(2)bni_40]i58[1] + [bni_40]i3[1] ≥ 0∧0 = 0∧[(-1)bso_41] ≥ 0)

For Pair COND_LOAD833ARR1(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58) → LOAD833(java.lang.Object(ARRAY(i3, a499data)), +(i52, 1), +(i58, -1)) the following chains were created:
• We consider the chain COND_LOAD833ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a499data[2])), i52[2], i58[2]) → LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), +(i52[2], 1), +(i58[2], -1)) which results in the following constraint:

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

(17)    ((UIncreasing(LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), +(i52[2], 1), +(i58[2], -1))), ≥)∧[1 + (-1)bso_43] ≥ 0)

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

(18)    ((UIncreasing(LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), +(i52[2], 1), +(i58[2], -1))), ≥)∧[1 + (-1)bso_43] ≥ 0)

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

(19)    ((UIncreasing(LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), +(i52[2], 1), +(i58[2], -1))), ≥)∧[1 + (-1)bso_43] ≥ 0)

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

(20)    ((UIncreasing(LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), +(i52[2], 1), +(i58[2], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_43] ≥ 0)

For Pair LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, 0) → LOAD833(java.lang.Object(ARRAY(i3, a7196data)), i2554, +(i58, -1)) the following chains were created:
• We consider the chain LOAD11943(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], i58[3], 0) → LOAD833(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], +(i58[3], -1)) which results in the following constraint:

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

(22)    ((UIncreasing(LOAD833(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], +(i58[3], -1))), ≥)∧[(-1)bso_45] ≥ 0)

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

(23)    ((UIncreasing(LOAD833(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], +(i58[3], -1))), ≥)∧[(-1)bso_45] ≥ 0)

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

(24)    ((UIncreasing(LOAD833(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], +(i58[3], -1))), ≥)∧[(-1)bso_45] ≥ 0)

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

(25)    ((UIncreasing(LOAD833(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], +(i58[3], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_45] ≥ 0)

For Pair LOAD833(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → LOAD833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) the following chains were created:
• We consider the chain LOAD833(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4]) → LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4]))) which results in the following constraint:

(26)    (LOAD833(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4])≥NonInfC∧LOAD833(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4])≥LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))∧(UIncreasing(LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))), ≥))

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

(27)    ((UIncreasing(LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))), ≥)∧[1 + (-1)bso_47] ≥ 0)

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

(28)    ((UIncreasing(LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))), ≥)∧[1 + (-1)bso_47] ≥ 0)

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

(29)    ((UIncreasing(LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))), ≥)∧[1 + (-1)bso_47] ≥ 0)

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

(30)    ((UIncreasing(LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_47] ≥ 0)

For Pair LOAD833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → COND_LOAD833ARR2(&&(&&(&&(&&(>(i114, 0), >(i52, 0)), <(i52, i3)), >(i58, 0)), >(+(i52, 1), 0)), java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) the following chains were created:
• We consider the chain LOAD833ARR2(java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5]))) → COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5]))), COND_LOAD833ARR2(TRUE, java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6], i58[6], java.lang.Object(java.lang.String(i114[6], i82[6], i84[6], a627[6]))) → LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), +(i52[6], 1), i58[6], i114[6]) which results in the following constraint:

(31)    (i52[5]=i52[6]i114[5]=i114[6]i82[5]=i82[6]i84[5]=i84[6]a627[5]=a627[6]i3[5]=i3[6]a499data[5]=a499data[6]&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0))=TRUEi58[5]=i58[6]LOAD833ARR2(java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))≥NonInfC∧LOAD833ARR2(java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))≥COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))∧(UIncreasing(COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))), ≥))

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

(32)    (>(+(i52[5], 1), 0)=TRUE>(i58[5], 0)=TRUE<(i52[5], i3[5])=TRUE>(i114[5], 0)=TRUE>(i52[5], 0)=TRUELOAD833ARR2(java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))≥NonInfC∧LOAD833ARR2(java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))≥COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))∧(UIncreasing(COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))), ≥))

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

(33)    (i52[5] ≥ 0∧i58[5] + [-1] ≥ 0∧i3[5] + [-1] + [-1]i52[5] ≥ 0∧i114[5] + [-1] ≥ 0∧i52[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))), ≥)∧[bni_48 + (-1)Bound*bni_48] + [(2)bni_48]i58[5] + [(-1)bni_48]i52[5] + [bni_48]i3[5] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(34)    (i52[5] ≥ 0∧i58[5] + [-1] ≥ 0∧i3[5] + [-1] + [-1]i52[5] ≥ 0∧i114[5] + [-1] ≥ 0∧i52[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))), ≥)∧[bni_48 + (-1)Bound*bni_48] + [(2)bni_48]i58[5] + [(-1)bni_48]i52[5] + [bni_48]i3[5] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(35)    (i52[5] ≥ 0∧i58[5] + [-1] ≥ 0∧i3[5] + [-1] + [-1]i52[5] ≥ 0∧i114[5] + [-1] ≥ 0∧i52[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))), ≥)∧[bni_48 + (-1)Bound*bni_48] + [(2)bni_48]i58[5] + [(-1)bni_48]i52[5] + [bni_48]i3[5] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(36)    (i52[5] ≥ 0∧i58[5] + [-1] ≥ 0∧i3[5] + [-1] + [-1]i52[5] ≥ 0∧i114[5] + [-1] ≥ 0∧i52[5] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[bni_48 + (-1)Bound*bni_48] + [(2)bni_48]i58[5] + [(-1)bni_48]i52[5] + [bni_48]i3[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

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

(37)    ([1] + i52[5] ≥ 0∧i58[5] + [-1] ≥ 0∧i3[5] + [-2] + [-1]i52[5] ≥ 0∧i114[5] + [-1] ≥ 0∧i52[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_48] + [(2)bni_48]i58[5] + [(-1)bni_48]i52[5] + [bni_48]i3[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

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

(38)    ([1] + i52[5] ≥ 0∧i58[5] ≥ 0∧i3[5] + [-2] + [-1]i52[5] ≥ 0∧i114[5] + [-1] ≥ 0∧i52[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_48 + (-1)Bound*bni_48] + [(2)bni_48]i58[5] + [(-1)bni_48]i52[5] + [bni_48]i3[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

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

(39)    ([1] + i52[5] ≥ 0∧i58[5] ≥ 0∧i3[5] ≥ 0∧i114[5] + [-1] ≥ 0∧i52[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(4)bni_48 + (-1)Bound*bni_48] + [(2)bni_48]i58[5] + [bni_48]i3[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

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

(40)    ([1] + i52[5] ≥ 0∧i58[5] ≥ 0∧i3[5] ≥ 0∧i114[5] ≥ 0∧i52[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(4)bni_48 + (-1)Bound*bni_48] + [(2)bni_48]i58[5] + [bni_48]i3[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

For Pair COND_LOAD833ARR2(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → LOAD11943(java.lang.Object(ARRAY(i3, a499data)), +(i52, 1), i58, i114) the following chains were created:
• We consider the chain COND_LOAD833ARR2(TRUE, java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6], i58[6], java.lang.Object(java.lang.String(i114[6], i82[6], i84[6], a627[6]))) → LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), +(i52[6], 1), i58[6], i114[6]) which results in the following constraint:

(41)    (COND_LOAD833ARR2(TRUE, java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6], i58[6], java.lang.Object(java.lang.String(i114[6], i82[6], i84[6], a627[6])))≥NonInfC∧COND_LOAD833ARR2(TRUE, java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6], i58[6], java.lang.Object(java.lang.String(i114[6], i82[6], i84[6], a627[6])))≥LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), +(i52[6], 1), i58[6], i114[6])∧(UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), +(i52[6], 1), i58[6], i114[6])), ≥))

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

(42)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), +(i52[6], 1), i58[6], i114[6])), ≥)∧[2 + (-1)bso_51] ≥ 0)

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

(43)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), +(i52[6], 1), i58[6], i114[6])), ≥)∧[2 + (-1)bso_51] ≥ 0)

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

(44)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), +(i52[6], 1), i58[6], i114[6])), ≥)∧[2 + (-1)bso_51] ≥ 0)

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

(45)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), +(i52[6], 1), i58[6], i114[6])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_51] ≥ 0)

For Pair INC14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, +(i2563, -1)) the following chains were created:
• We consider the chain INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7]) → LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], +(i2563[7], -1)) which results in the following constraint:

(46)    (INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7])≥NonInfC∧INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7])≥LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], +(i2563[7], -1))∧(UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], +(i2563[7], -1))), ≥))

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

(47)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], +(i2563[7], -1))), ≥)∧[(-1)bso_53] ≥ 0)

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

(48)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], +(i2563[7], -1))), ≥)∧[(-1)bso_53] ≥ 0)

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

(49)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], +(i2563[7], -1))), ≥)∧[(-1)bso_53] ≥ 0)

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

(50)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], +(i2563[7], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_53] ≥ 0)

For Pair LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → LOAD11943ARR3(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) the following chains were created:
• We consider the chain LOAD11943(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8]) → LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8]), LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9]) → COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9]) which results in the following constraint:

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

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

(53)    ((UIncreasing(LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8])), ≥)∧[(-1)bso_55] ≥ 0)

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

(54)    ((UIncreasing(LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8])), ≥)∧[(-1)bso_55] ≥ 0)

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

(55)    ((UIncreasing(LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8])), ≥)∧[(-1)bso_55] ≥ 0)

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

(56)    ((UIncreasing(LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)

For Pair LOAD11943ARR3(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → COND_LOAD11943ARR3(&&(&&(&&(>(i2554, 0), <(i2554, i3)), >(i2563, 0)), >(+(i2554, 1), 0)), java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) the following chains were created:
• We consider the chain LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9]) → COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9]), COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10], i58[10], i2563[10]) → LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), +(i2554[10], 1), i58[10], +(i2563[10], -1)) which results in the following constraint:

(57)    (i2563[9]=i2563[10]i3[9]=i3[10]a7196data[9]=a7196data[10]i58[9]=i58[10]&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0))=TRUEi2554[9]=i2554[10]LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])≥NonInfC∧LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])≥COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])∧(UIncreasing(COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])), ≥))

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

(58)    (>(+(i2554[9], 1), 0)=TRUE>(i2563[9], 0)=TRUE>(i2554[9], 0)=TRUE<(i2554[9], i3[9])=TRUELOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])≥NonInfC∧LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])≥COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])∧(UIncreasing(COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])), ≥))

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

(59)    (i2554[9] ≥ 0∧i2563[9] + [-1] ≥ 0∧i2554[9] + [-1] ≥ 0∧i3[9] + [-1] + [-1]i2554[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])), ≥)∧[(-1)Bound*bni_56] + [(2)bni_56]i58[9] + [(-1)bni_56]i2554[9] + [bni_56]i3[9] ≥ 0∧[(-1)bso_57] ≥ 0)

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

(60)    (i2554[9] ≥ 0∧i2563[9] + [-1] ≥ 0∧i2554[9] + [-1] ≥ 0∧i3[9] + [-1] + [-1]i2554[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])), ≥)∧[(-1)Bound*bni_56] + [(2)bni_56]i58[9] + [(-1)bni_56]i2554[9] + [bni_56]i3[9] ≥ 0∧[(-1)bso_57] ≥ 0)

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

(61)    (i2554[9] ≥ 0∧i2563[9] + [-1] ≥ 0∧i2554[9] + [-1] ≥ 0∧i3[9] + [-1] + [-1]i2554[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])), ≥)∧[(-1)Bound*bni_56] + [(2)bni_56]i58[9] + [(-1)bni_56]i2554[9] + [bni_56]i3[9] ≥ 0∧[(-1)bso_57] ≥ 0)

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

(62)    (i2554[9] ≥ 0∧i2563[9] + [-1] ≥ 0∧i2554[9] + [-1] ≥ 0∧i3[9] + [-1] + [-1]i2554[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])), ≥)∧[(2)bni_56] = 0∧0 = 0∧[(-1)Bound*bni_56] + [(-1)bni_56]i2554[9] + [bni_56]i3[9] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_57] ≥ 0)

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

(63)    ([1] + i2554[9] ≥ 0∧i2563[9] + [-1] ≥ 0∧i2554[9] ≥ 0∧i3[9] + [-2] + [-1]i2554[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])), ≥)∧[(2)bni_56] = 0∧0 = 0∧[(-1)Bound*bni_56 + (-1)bni_56] + [(-1)bni_56]i2554[9] + [bni_56]i3[9] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_57] ≥ 0)

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

(64)    ([1] + i2554[9] ≥ 0∧i2563[9] ≥ 0∧i2554[9] ≥ 0∧i3[9] + [-2] + [-1]i2554[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])), ≥)∧[(2)bni_56] = 0∧0 = 0∧[(-1)Bound*bni_56 + (-1)bni_56] + [(-1)bni_56]i2554[9] + [bni_56]i3[9] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_57] ≥ 0)

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

(65)    ([1] + i2554[9] ≥ 0∧i2563[9] ≥ 0∧i2554[9] ≥ 0∧i3[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])), ≥)∧[(2)bni_56] = 0∧0 = 0∧[(-1)Bound*bni_56 + bni_56] + [bni_56]i3[9] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_57] ≥ 0)

For Pair COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), +(i2554, 1), i58, +(i2563, -1)) the following chains were created:
• We consider the chain COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10], i58[10], i2563[10]) → LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), +(i2554[10], 1), i58[10], +(i2563[10], -1)) which results in the following constraint:

(66)    (COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10], i58[10], i2563[10])≥NonInfC∧COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10], i58[10], i2563[10])≥LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), +(i2554[10], 1), i58[10], +(i2563[10], -1))∧(UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), +(i2554[10], 1), i58[10], +(i2563[10], -1))), ≥))

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

(67)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), +(i2554[10], 1), i58[10], +(i2563[10], -1))), ≥)∧[1 + (-1)bso_59] ≥ 0)

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

(68)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), +(i2554[10], 1), i58[10], +(i2563[10], -1))), ≥)∧[1 + (-1)bso_59] ≥ 0)

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

(69)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), +(i2554[10], 1), i58[10], +(i2563[10], -1))), ≥)∧[1 + (-1)bso_59] ≥ 0)

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

(70)    ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), +(i2554[10], 1), i58[10], +(i2563[10], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_59] ≥ 0)

For Pair LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → LOAD11943ARR5(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) the following chains were created:
• We consider the chain LOAD11943(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11]) → LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11]), LOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12]) → COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12]) which results in the following constraint:

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

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

(73)    ((UIncreasing(LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11])), ≥)∧[(-1)bso_61] ≥ 0)

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

(74)    ((UIncreasing(LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11])), ≥)∧[(-1)bso_61] ≥ 0)

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

(75)    ((UIncreasing(LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11])), ≥)∧[(-1)bso_61] ≥ 0)

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

(76)    ((UIncreasing(LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_61] ≥ 0)

For Pair LOAD11943ARR5(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → COND_LOAD11943ARR5(&&(&&(&&(>(i2554, 0), <(i2554, i3)), >(i2563, 0)), >(+(i2554, 1), 0)), java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) the following chains were created:
• We consider the chain LOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12]) → COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12]), COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13], i58[13], i2563[13]) → INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), +(i2554[13], 1), i58[13], i2563[13]) which results in the following constraint:

(77)    (i3[12]=i3[13]a7196data[12]=a7196data[13]i2563[12]=i2563[13]i58[12]=i58[13]i2554[12]=i2554[13]&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0))=TRUELOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])≥NonInfC∧LOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])≥COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])∧(UIncreasing(COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])), ≥))

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

(78)    (>(+(i2554[12], 1), 0)=TRUE>(i2563[12], 0)=TRUE>(i2554[12], 0)=TRUE<(i2554[12], i3[12])=TRUELOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])≥NonInfC∧LOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])≥COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])∧(UIncreasing(COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])), ≥))

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

(79)    (i2554[12] ≥ 0∧i2563[12] + [-1] ≥ 0∧i2554[12] + [-1] ≥ 0∧i3[12] + [-1] + [-1]i2554[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])), ≥)∧[(-1)Bound*bni_62] + [(2)bni_62]i58[12] + [(-1)bni_62]i2554[12] + [bni_62]i3[12] ≥ 0∧[(-1)bso_63] ≥ 0)

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

(80)    (i2554[12] ≥ 0∧i2563[12] + [-1] ≥ 0∧i2554[12] + [-1] ≥ 0∧i3[12] + [-1] + [-1]i2554[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])), ≥)∧[(-1)Bound*bni_62] + [(2)bni_62]i58[12] + [(-1)bni_62]i2554[12] + [bni_62]i3[12] ≥ 0∧[(-1)bso_63] ≥ 0)

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

(81)    (i2554[12] ≥ 0∧i2563[12] + [-1] ≥ 0∧i2554[12] + [-1] ≥ 0∧i3[12] + [-1] + [-1]i2554[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])), ≥)∧[(-1)Bound*bni_62] + [(2)bni_62]i58[12] + [(-1)bni_62]i2554[12] + [bni_62]i3[12] ≥ 0∧[(-1)bso_63] ≥ 0)

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

(82)    (i2554[12] ≥ 0∧i2563[12] + [-1] ≥ 0∧i2554[12] + [-1] ≥ 0∧i3[12] + [-1] + [-1]i2554[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])), ≥)∧[(2)bni_62] = 0∧0 = 0∧[(-1)Bound*bni_62] + [(-1)bni_62]i2554[12] + [bni_62]i3[12] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_63] ≥ 0)

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

(83)    ([1] + i2554[12] ≥ 0∧i2563[12] + [-1] ≥ 0∧i2554[12] ≥ 0∧i3[12] + [-2] + [-1]i2554[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])), ≥)∧[(2)bni_62] = 0∧0 = 0∧[(-1)Bound*bni_62 + (-1)bni_62] + [(-1)bni_62]i2554[12] + [bni_62]i3[12] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_63] ≥ 0)

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

(84)    ([1] + i2554[12] ≥ 0∧i2563[12] ≥ 0∧i2554[12] ≥ 0∧i3[12] + [-2] + [-1]i2554[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])), ≥)∧[(2)bni_62] = 0∧0 = 0∧[(-1)Bound*bni_62 + (-1)bni_62] + [(-1)bni_62]i2554[12] + [bni_62]i3[12] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_63] ≥ 0)

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

(85)    ([1] + i2554[12] ≥ 0∧i2563[12] ≥ 0∧i2554[12] ≥ 0∧i3[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])), ≥)∧[(2)bni_62] = 0∧0 = 0∧[(-1)Bound*bni_62 + bni_62] + [bni_62]i3[12] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_63] ≥ 0)

For Pair COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → INC14138(java.lang.Object(ARRAY(i3, a7196data)), +(i2554, 1), i58, i2563) the following chains were created:
• We consider the chain COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13], i58[13], i2563[13]) → INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), +(i2554[13], 1), i58[13], i2563[13]) which results in the following constraint:

(86)    (COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13], i58[13], i2563[13])≥NonInfC∧COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13], i58[13], i2563[13])≥INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), +(i2554[13], 1), i58[13], i2563[13])∧(UIncreasing(INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), +(i2554[13], 1), i58[13], i2563[13])), ≥))

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

(87)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), +(i2554[13], 1), i58[13], i2563[13])), ≥)∧[1 + (-1)bso_65] ≥ 0)

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

(88)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), +(i2554[13], 1), i58[13], i2563[13])), ≥)∧[1 + (-1)bso_65] ≥ 0)

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

(89)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), +(i2554[13], 1), i58[13], i2563[13])), ≥)∧[1 + (-1)bso_65] ≥ 0)

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

(90)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), +(i2554[13], 1), i58[13], i2563[13])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_65] ≥ 0)

For Pair JMP14222'(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → INC14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) the following chains were created:
• We consider the chain JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]) → INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]), INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7]) → LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], +(i2563[7], -1)) which results in the following constraint:

(91)    (i2563[14]=i2563[7]i2624[14]=i2624[7]i58[14]=i58[7]i3[14]=i3[7]a7196data[14]=a7196data[7]JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])≥NonInfC∧JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])≥INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])∧(UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥))

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

(92)    (JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])≥NonInfC∧JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])≥INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])∧(UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥))

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

(93)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥)∧[(-1)bso_67] ≥ 0)

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

(94)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥)∧[(-1)bso_67] ≥ 0)

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

(95)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥)∧[(-1)bso_67] ≥ 0)

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

(96)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_67] ≥ 0)

For Pair LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → LOAD11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) the following chains were created:
• We consider the chain LOAD11943(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15]) → LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15]))) which results in the following constraint:

(97)    (LOAD11943(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15])≥NonInfC∧LOAD11943(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15])≥LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))∧(UIncreasing(LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))), ≥))

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

(98)    ((UIncreasing(LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))), ≥)∧[(-1)bso_69] ≥ 0)

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

(99)    ((UIncreasing(LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))), ≥)∧[(-1)bso_69] ≥ 0)

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

(100)    ((UIncreasing(LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))), ≥)∧[(-1)bso_69] ≥ 0)

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

(101)    ((UIncreasing(LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_69] ≥ 0)

For Pair LOAD11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854, 0), >(i2554, 0)), <(i2554, i3)), >(i2563, 0)), >(+(i2554, 1), 0)), java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) the following chains were created:
• We consider the chain LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))) → COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))), COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))) → INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17]) which results in the following constraint:

(102)    (i58[16]=i58[17]i3[16]=i3[17]a7196data[16]=a7196data[17]&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0))=TRUEi2563[16]=i2563[17]i2554[16]=i2554[17]i2854[16]=i2854[17]i2744[16]=i2744[17]i2746[16]=i2746[17]a7628[16]=a7628[17]LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))≥NonInfC∧LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))≥COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))∧(UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥))

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

(103)    (>(+(i2554[16], 1), 0)=TRUE>(i2563[16], 0)=TRUE<(i2554[16], i3[16])=TRUE>(i2854[16], 0)=TRUE>(i2554[16], 0)=TRUELOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))≥NonInfC∧LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))≥COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))∧(UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥))

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

(104)    (i2554[16] ≥ 0∧i2563[16] + [-1] ≥ 0∧i3[16] + [-1] + [-1]i2554[16] ≥ 0∧i2854[16] + [-1] ≥ 0∧i2554[16] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥)∧[(-1)Bound*bni_70] + [(2)bni_70]i58[16] + [(-1)bni_70]i2554[16] + [bni_70]i3[16] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(105)    (i2554[16] ≥ 0∧i2563[16] + [-1] ≥ 0∧i3[16] + [-1] + [-1]i2554[16] ≥ 0∧i2854[16] + [-1] ≥ 0∧i2554[16] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥)∧[(-1)Bound*bni_70] + [(2)bni_70]i58[16] + [(-1)bni_70]i2554[16] + [bni_70]i3[16] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(106)    (i2554[16] ≥ 0∧i2563[16] + [-1] ≥ 0∧i3[16] + [-1] + [-1]i2554[16] ≥ 0∧i2854[16] + [-1] ≥ 0∧i2554[16] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥)∧[(-1)Bound*bni_70] + [(2)bni_70]i58[16] + [(-1)bni_70]i2554[16] + [bni_70]i3[16] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(107)    (i2554[16] ≥ 0∧i2563[16] + [-1] ≥ 0∧i3[16] + [-1] + [-1]i2554[16] ≥ 0∧i2854[16] + [-1] ≥ 0∧i2554[16] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_70] = 0∧0 = 0∧[(-1)Bound*bni_70] + [(-1)bni_70]i2554[16] + [bni_70]i3[16] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_71] ≥ 0)

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

(108)    ([1] + i2554[16] ≥ 0∧i2563[16] + [-1] ≥ 0∧i3[16] + [-2] + [-1]i2554[16] ≥ 0∧i2854[16] + [-1] ≥ 0∧i2554[16] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_70] = 0∧0 = 0∧[(-1)Bound*bni_70 + (-1)bni_70] + [(-1)bni_70]i2554[16] + [bni_70]i3[16] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_71] ≥ 0)

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

(109)    ([1] + i2554[16] ≥ 0∧i2563[16] ≥ 0∧i3[16] + [-2] + [-1]i2554[16] ≥ 0∧i2854[16] + [-1] ≥ 0∧i2554[16] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_70] = 0∧0 = 0∧[(-1)Bound*bni_70 + (-1)bni_70] + [(-1)bni_70]i2554[16] + [bni_70]i3[16] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_71] ≥ 0)

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

(110)    ([1] + i2554[16] ≥ 0∧i2563[16] ≥ 0∧i3[16] ≥ 0∧i2854[16] + [-1] ≥ 0∧i2554[16] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_70] = 0∧0 = 0∧[(-1)Bound*bni_70 + bni_70] + [bni_70]i3[16] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_71] ≥ 0)

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

(111)    ([1] + i2554[16] ≥ 0∧i2563[16] ≥ 0∧i3[16] ≥ 0∧i2854[16] ≥ 0∧i2554[16] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_70] = 0∧0 = 0∧[(-1)Bound*bni_70 + bni_70] + [bni_70]i3[16] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_71] ≥ 0)

For Pair COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → INC14138(java.lang.Object(ARRAY(i3, a7196data)), +(i2554, 1), i58, i2563) the following chains were created:
• We consider the chain COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))) → INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17]) which results in the following constraint:

(112)    (COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17])))≥NonInfC∧COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17])))≥INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])∧(UIncreasing(INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])), ≥))

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

(113)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])), ≥)∧[1 + (-1)bso_73] ≥ 0)

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

(114)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])), ≥)∧[1 + (-1)bso_73] ≥ 0)

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

(115)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])), ≥)∧[1 + (-1)bso_73] ≥ 0)

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

(116)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_73] ≥ 0)

For Pair LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → LOAD11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) the following chains were created:
• We consider the chain LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18]) → LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18]))) which results in the following constraint:

(117)    (LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18])≥NonInfC∧LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18])≥LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))∧(UIncreasing(LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))), ≥))

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

(118)    ((UIncreasing(LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))), ≥)∧[(-1)bso_75] ≥ 0)

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

(119)    ((UIncreasing(LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))), ≥)∧[(-1)bso_75] ≥ 0)

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

(120)    ((UIncreasing(LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))), ≥)∧[(-1)bso_75] ≥ 0)

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

(121)    ((UIncreasing(LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_75] ≥ 0)

For Pair LOAD11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854, 0), >(i2554, 0)), <(i2554, i3)), >(i2563, 0)), >(+(i2554, 1), 0)), java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) the following chains were created:
• We consider the chain LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))) → COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))), COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20]))) → JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20]) which results in the following constraint:

(122)    (i2554[19]=i2554[20]i2563[19]=i2563[20]i58[19]=i58[20]&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0))=TRUEi2854[19]=i2854[20]i2744[19]=i2744[20]i2746[19]=i2746[20]a7628[19]=a7628[20]i3[19]=i3[20]a7196data[19]=a7196data[20]LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))≥NonInfC∧LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))≥COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))∧(UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥))

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

(123)    (>(+(i2554[19], 1), 0)=TRUE>(i2563[19], 0)=TRUE<(i2554[19], i3[19])=TRUE>(i2854[19], 0)=TRUE>(i2554[19], 0)=TRUELOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))≥NonInfC∧LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))≥COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))∧(UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥))

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

(124)    (i2554[19] ≥ 0∧i2563[19] + [-1] ≥ 0∧i3[19] + [-1] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧[(-1)Bound*bni_76] + [(2)bni_76]i58[19] + [(-1)bni_76]i2554[19] + [bni_76]i3[19] ≥ 0∧[(-1)bso_77] ≥ 0)

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

(125)    (i2554[19] ≥ 0∧i2563[19] + [-1] ≥ 0∧i3[19] + [-1] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧[(-1)Bound*bni_76] + [(2)bni_76]i58[19] + [(-1)bni_76]i2554[19] + [bni_76]i3[19] ≥ 0∧[(-1)bso_77] ≥ 0)

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

(126)    (i2554[19] ≥ 0∧i2563[19] + [-1] ≥ 0∧i3[19] + [-1] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧[(-1)Bound*bni_76] + [(2)bni_76]i58[19] + [(-1)bni_76]i2554[19] + [bni_76]i3[19] ≥ 0∧[(-1)bso_77] ≥ 0)

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

(127)    (i2554[19] ≥ 0∧i2563[19] + [-1] ≥ 0∧i3[19] + [-1] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_76] = 0∧0 = 0∧[(-1)Bound*bni_76] + [(-1)bni_76]i2554[19] + [bni_76]i3[19] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_77] ≥ 0)

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

(128)    ([1] + i2554[19] ≥ 0∧i2563[19] + [-1] ≥ 0∧i3[19] + [-2] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_76] = 0∧0 = 0∧[(-1)Bound*bni_76 + (-1)bni_76] + [(-1)bni_76]i2554[19] + [bni_76]i3[19] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_77] ≥ 0)

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

(129)    ([1] + i2554[19] ≥ 0∧i2563[19] ≥ 0∧i3[19] + [-2] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_76] = 0∧0 = 0∧[(-1)Bound*bni_76 + (-1)bni_76] + [(-1)bni_76]i2554[19] + [bni_76]i3[19] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_77] ≥ 0)

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

(130)    ([1] + i2554[19] ≥ 0∧i2563[19] ≥ 0∧i3[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_76] = 0∧0 = 0∧[(-1)Bound*bni_76 + bni_76] + [bni_76]i3[19] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_77] ≥ 0)

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

(131)    ([1] + i2554[19] ≥ 0∧i2563[19] ≥ 0∧i3[19] ≥ 0∧i2854[19] ≥ 0∧i2554[19] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_76] = 0∧0 = 0∧[(-1)Bound*bni_76 + bni_76] + [bni_76]i3[19] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_77] ≥ 0)

For Pair COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → JMP14222'(java.lang.Object(ARRAY(i3, a7196data)), +(i2554, 1), i58, i2563) the following chains were created:
• We consider the chain COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20]))) → JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20]) which results in the following constraint:

(132)    (COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20])))≥NonInfC∧COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20])))≥JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])∧(UIncreasing(JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])), ≥))

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

(133)    ((UIncreasing(JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])), ≥)∧[1 + (-1)bso_79] ≥ 0)

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

(134)    ((UIncreasing(JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])), ≥)∧[1 + (-1)bso_79] ≥ 0)

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

(135)    ((UIncreasing(JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])), ≥)∧[1 + (-1)bso_79] ≥ 0)

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

(136)    ((UIncreasing(JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_79] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• ((UIncreasing(LOAD833ARR1(java.lang.Object(ARRAY(i3[0], a499data[0])), i52[0], i58[0])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_39] ≥ 0)

• LOAD833ARR1(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → COND_LOAD833ARR1(&&(&&(&&(>(i52, 0), <(i52, i3)), >(i58, 0)), >(+(i52, 1), 0)), java.lang.Object(ARRAY(i3, a499data)), i52, i58)
• ([1] + i52[1] ≥ 0∧i58[1] ≥ 0∧i52[1] ≥ 0∧i3[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])), ≥)∧0 = 0∧[(-1)Bound*bni_40 + (3)bni_40] + [(2)bni_40]i58[1] + [bni_40]i3[1] ≥ 0∧0 = 0∧[(-1)bso_41] ≥ 0)

• COND_LOAD833ARR1(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58) → LOAD833(java.lang.Object(ARRAY(i3, a499data)), +(i52, 1), +(i58, -1))
• ((UIncreasing(LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), +(i52[2], 1), +(i58[2], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_43] ≥ 0)

• LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, 0) → LOAD833(java.lang.Object(ARRAY(i3, a7196data)), i2554, +(i58, -1))
• ((UIncreasing(LOAD833(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], +(i58[3], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_45] ≥ 0)

• LOAD833(java.lang.Object(ARRAY(i3, a499data)), i52, i58) → LOAD833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
• ((UIncreasing(LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_47] ≥ 0)

• LOAD833ARR2(java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → COND_LOAD833ARR2(&&(&&(&&(&&(>(i114, 0), >(i52, 0)), <(i52, i3)), >(i58, 0)), >(+(i52, 1), 0)), java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627)))
• ([1] + i52[5] ≥ 0∧i58[5] ≥ 0∧i3[5] ≥ 0∧i114[5] ≥ 0∧i52[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(4)bni_48 + (-1)Bound*bni_48] + [(2)bni_48]i58[5] + [bni_48]i3[5] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

• COND_LOAD833ARR2(TRUE, java.lang.Object(ARRAY(i3, a499data)), i52, i58, java.lang.Object(java.lang.String(i114, i82, i84, a627))) → LOAD11943(java.lang.Object(ARRAY(i3, a499data)), +(i52, 1), i58, i114)
• ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), +(i52[6], 1), i58[6], i114[6])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_51] ≥ 0)

• INC14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, +(i2563, -1))
• ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], +(i2563[7], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_53] ≥ 0)

• LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → LOAD11943ARR3(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
• ((UIncreasing(LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)

• LOAD11943ARR3(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → COND_LOAD11943ARR3(&&(&&(&&(>(i2554, 0), <(i2554, i3)), >(i2563, 0)), >(+(i2554, 1), 0)), java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
• ([1] + i2554[9] ≥ 0∧i2563[9] ≥ 0∧i2554[9] ≥ 0∧i3[9] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])), ≥)∧[(2)bni_56] = 0∧0 = 0∧[(-1)Bound*bni_56 + bni_56] + [bni_56]i3[9] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_57] ≥ 0)

• COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), +(i2554, 1), i58, +(i2563, -1))
• ((UIncreasing(LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), +(i2554[10], 1), i58[10], +(i2563[10], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_59] ≥ 0)

• LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → LOAD11943ARR5(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
• ((UIncreasing(LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_61] ≥ 0)

• LOAD11943ARR5(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → COND_LOAD11943ARR5(&&(&&(&&(>(i2554, 0), <(i2554, i3)), >(i2563, 0)), >(+(i2554, 1), 0)), java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563)
• ([1] + i2554[12] ≥ 0∧i2563[12] ≥ 0∧i2554[12] ≥ 0∧i3[12] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])), ≥)∧[(2)bni_62] = 0∧0 = 0∧[(-1)Bound*bni_62 + bni_62] + [bni_62]i3[12] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_63] ≥ 0)

• COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → INC14138(java.lang.Object(ARRAY(i3, a7196data)), +(i2554, 1), i58, i2563)
• ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), +(i2554[13], 1), i58[13], i2563[13])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_65] ≥ 0)

• JMP14222'(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563) → INC14138(java.lang.Object(ARRAY(i3, a7196data)), i2624, i58, i2563)
• ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_67] ≥ 0)

• LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → LOAD11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
• ((UIncreasing(LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_69] ≥ 0)

• LOAD11943ARR6(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854, 0), >(i2554, 0)), <(i2554, i3)), >(i2563, 0)), >(+(i2554, 1), 0)), java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
• ([1] + i2554[16] ≥ 0∧i2563[16] ≥ 0∧i3[16] ≥ 0∧i2854[16] ≥ 0∧i2554[16] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_70] = 0∧0 = 0∧[(-1)Bound*bni_70 + bni_70] + [bni_70]i3[16] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_71] ≥ 0)

• COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → INC14138(java.lang.Object(ARRAY(i3, a7196data)), +(i2554, 1), i58, i2563)
• ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_73] ≥ 0)

• LOAD11943(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563) → LOAD11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
• ((UIncreasing(LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_75] ≥ 0)

• LOAD11943ARR9(java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854, 0), >(i2554, 0)), <(i2554, i3)), >(i2563, 0)), >(+(i2554, 1), 0)), java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628)))
• ([1] + i2554[19] ≥ 0∧i2563[19] ≥ 0∧i3[19] ≥ 0∧i2854[19] ≥ 0∧i2554[19] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_76] = 0∧0 = 0∧[(-1)Bound*bni_76 + bni_76] + [bni_76]i3[19] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_77] ≥ 0)

• COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3, a7196data)), i2554, i58, i2563, java.lang.Object(java.lang.String(i2854, i2744, i2746, a7628))) → JMP14222'(java.lang.Object(ARRAY(i3, a7196data)), +(i2554, 1), i58, i2563)
• ((UIncreasing(JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_79] ≥ 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(LOAD833(x1, x2, x3)) = [1] + [2]x3 + [-1]x2 + [-1]x1
POL(java.lang.Object(x1)) = x1
POL(ARRAY(x1, x2)) = [-1] + [-1]x1
POL(LOAD833ARR1(x1, x2, x3)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(COND_LOAD833ARR1(x1, x2, x3, x4)) = [-1] + [2]x4 + [-1]x3 + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(-1) = [-1]
POL(LOAD11943(x1, x2, x3, x4)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(LOAD833ARR2(x1, x2, x3, x4)) = [-1] + [-1]x4 + [2]x3 + [-1]x2 + [-1]x1
POL(java.lang.String(x1, x2, x3, x4)) = [-1]
POL(COND_LOAD833ARR2(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + [2]x4 + [-1]x3 + [-1]x2
POL(INC14138(x1, x2, x3, x4)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(LOAD11943ARR3(x1, x2, x3, x4)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(COND_LOAD11943ARR3(x1, x2, x3, x4, x5)) = [-1] + [2]x4 + [-1]x3 + [-1]x2
POL(LOAD11943ARR5(x1, x2, x3, x4)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(COND_LOAD11943ARR5(x1, x2, x3, x4, x5)) = [-1] + [2]x4 + [-1]x3 + [-1]x2
POL(JMP14222'(x1, x2, x3, x4)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(LOAD11943ARR6(x1, x2, x3, x4, x5)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(COND_LOAD11943ARR6(x1, x2, x3, x4, x5, x6)) = [-1] + [2]x4 + [-1]x3 + [-1]x2
POL(LOAD11943ARR9(x1, x2, x3, x4, x5)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(COND_LOAD11943ARR9(x1, x2, x3, x4, x5, x6)) = [-1] + [2]x4 + [-1]x3 + [-1]x2

The following pairs are in P>:

COND_LOAD833ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a499data[2])), i52[2], i58[2]) → LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), +(i52[2], 1), +(i58[2], -1))
LOAD833(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4]) → LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))
COND_LOAD833ARR2(TRUE, java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6], i58[6], java.lang.Object(java.lang.String(i114[6], i82[6], i84[6], a627[6]))) → LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), +(i52[6], 1), i58[6], i114[6])
COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10], i58[10], i2563[10]) → LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), +(i2554[10], 1), i58[10], +(i2563[10], -1))
COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13], i58[13], i2563[13]) → INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), +(i2554[13], 1), i58[13], i2563[13])
COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))) → INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])
COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20]))) → JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])

The following pairs are in Pbound:

LOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1]) → COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])
LOAD833ARR2(java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5]))) → COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))

The following pairs are in P:

LOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1]) → COND_LOAD833ARR1(&&(&&(&&(>(i52[1], 0), <(i52[1], i3[1])), >(i58[1], 0)), >(+(i52[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])
LOAD833ARR2(java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5]))) → COND_LOAD833ARR2(&&(&&(&&(&&(>(i114[5], 0), >(i52[5], 0)), <(i52[5], i3[5])), >(i58[5], 0)), >(+(i52[5], 1), 0)), java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))
INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7]) → LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], +(i2563[7], -1))
LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9]) → COND_LOAD11943ARR3(&&(&&(&&(>(i2554[9], 0), <(i2554[9], i3[9])), >(i2563[9], 0)), >(+(i2554[9], 1), 0)), java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])
LOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12]) → COND_LOAD11943ARR5(&&(&&(&&(>(i2554[12], 0), <(i2554[12], i3[12])), >(i2563[12], 0)), >(+(i2554[12], 1), 0)), java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])
JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]) → INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])
LOAD11943(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15]) → LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))
LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))) → COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))
LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18]) → LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))
LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))) → COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))

There are no usable rules.

### (27) Obligation:

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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(1): LOAD833ARR1(java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1]) → COND_LOAD833ARR1(i52[1] > 0 && i52[1] < i3[1] && i58[1] > 0 && i52[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a499data[1])), i52[1], i58[1])
(3): LOAD11943(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], i58[3], 0) → LOAD833(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], i58[3] + -1)
(5): LOAD833ARR2(java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5]))) → COND_LOAD833ARR2(i114[5] > 0 && i52[5] > 0 && i52[5] < i3[5] && i58[5] > 0 && i52[5] + 1 > 0, java.lang.Object(ARRAY(i3[5], a499data[5])), i52[5], i58[5], java.lang.Object(java.lang.String(i114[5], i82[5], i84[5], a627[5])))
(7): INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7]) → LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7] + -1)
(8): LOAD11943(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8]) → LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8])
(9): LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9]) → COND_LOAD11943ARR3(i2554[9] > 0 && i2554[9] < i3[9] && i2563[9] > 0 && i2554[9] + 1 > 0, java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])
(11): LOAD11943(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11]) → LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11])
(12): LOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12]) → COND_LOAD11943ARR5(i2554[12] > 0 && i2554[12] < i3[12] && i2563[12] > 0 && i2554[12] + 1 > 0, java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])
(14): JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]) → INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])
(15): LOAD11943(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15]) → LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))
(16): LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))) → COND_LOAD11943ARR6(i2854[16] > 0 && i2554[16] > 0 && i2554[16] < i3[16] && i2563[16] > 0 && i2554[16] + 1 > 0, java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))
(18): LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18]) → LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))
(19): LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))) → COND_LOAD11943ARR9(i2854[19] > 0 && i2554[19] > 0 && i2554[19] < i3[19] && i2563[19] > 0 && i2554[19] + 1 > 0, java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))

(7) -> (3), if ((i2624[7]* i2554[3])∧(i58[7]* i58[3])∧((i3[7]* i3[3])∧(a7196data[7]* a7196data[3]))∧(i2563[7] + -1* 0))

(14) -> (7), if ((i2563[14]* i2563[7])∧(i2624[14]* i2624[7])∧(i58[14]* i58[7])∧((i3[14]* i3[7])∧(a7196data[14]* a7196data[7])))

(7) -> (8), if ((i58[7]* i58[8])∧(i2624[7]* i2554[8])∧((i3[7]* i3[8])∧(a7196data[7]* a7196data[8]))∧(i2563[7] + -1* i2563[8]))

(8) -> (9), if ((i2554[8]* i2554[9])∧(i2563[8]* i2563[9])∧(i58[8]* i58[9])∧((i3[8]* i3[9])∧(a7196data[8]* a7196data[9])))

(7) -> (11), if ((i2624[7]* i2554[11])∧(i58[7]* i58[11])∧((i3[7]* i3[11])∧(a7196data[7]* a7196data[11]))∧(i2563[7] + -1* i2563[11]))

(11) -> (12), if ((i2563[11]* i2563[12])∧((i3[11]* i3[12])∧(a7196data[11]* a7196data[12]))∧(i2554[11]* i2554[12])∧(i58[11]* i58[12]))

(7) -> (15), if ((i2563[7] + -1* i2563[15])∧(i58[7]* i58[15])∧(i2624[7]* i2554[15])∧((i3[7]* i3[15])∧(a7196data[7]* a7196data[15])))

(15) -> (16), if (((i3[15]* i3[16])∧(a7196data[15]* a7196data[16]))∧(i2554[15]* i2554[16])∧(i58[15]* i58[16])∧((i2854[15]* i2854[16])∧(i2744[15]* i2744[16])∧(i2746[15]* i2746[16])∧(a7628[15]* a7628[16]))∧(i2563[15]* i2563[16]))

(7) -> (18), if ((i58[7]* i58[18])∧(i2624[7]* i2554[18])∧(i2563[7] + -1* i2563[18])∧((i3[7]* i3[18])∧(a7196data[7]* a7196data[18])))

(18) -> (19), if (((i2854[18]* i2854[19])∧(i2744[18]* i2744[19])∧(i2746[18]* i2746[19])∧(a7628[18]* a7628[19]))∧(i2554[18]* i2554[19])∧(i2563[18]* i2563[19])∧(i58[18]* i58[19])∧((i3[18]* i3[19])∧(a7196data[18]* a7196data[19])))

The set Q consists of the following terms:
Load833ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc14138(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
JMP14222(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Load11943ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Load11943ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))

### (28) IDependencyGraphProof (EQUIVALENT transformation)

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

### (30) Obligation:

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

The following domains are used:

Integer, Boolean

R is empty.

The integer pair graph contains the following rules and edges:
(2): COND_LOAD833ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a499data[2])), i52[2], i58[2]) → LOAD833(java.lang.Object(ARRAY(i3[2], a499data[2])), i52[2] + 1, i58[2] + -1)
(3): LOAD11943(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], i58[3], 0) → LOAD833(java.lang.Object(ARRAY(i3[3], a7196data[3])), i2554[3], i58[3] + -1)
(4): LOAD833(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4]) → LOAD833ARR2(java.lang.Object(ARRAY(i3[4], a499data[4])), i52[4], i58[4], java.lang.Object(java.lang.String(i114[4], i82[4], i84[4], a627[4])))
(6): COND_LOAD833ARR2(TRUE, java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6], i58[6], java.lang.Object(java.lang.String(i114[6], i82[6], i84[6], a627[6]))) → LOAD11943(java.lang.Object(ARRAY(i3[6], a499data[6])), i52[6] + 1, i58[6], i114[6])
(7): INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7]) → LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7] + -1)
(8): LOAD11943(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8]) → LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8])
(9): LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9]) → COND_LOAD11943ARR3(i2554[9] > 0 && i2554[9] < i3[9] && i2563[9] > 0 && i2554[9] + 1 > 0, java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])
(10): COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10], i58[10], i2563[10]) → LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10] + 1, i58[10], i2563[10] + -1)
(11): LOAD11943(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11]) → LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11])
(12): LOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12]) → COND_LOAD11943ARR5(i2554[12] > 0 && i2554[12] < i3[12] && i2563[12] > 0 && i2554[12] + 1 > 0, java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])
(13): COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13], i58[13], i2563[13]) → INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13] + 1, i58[13], i2563[13])
(14): JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]) → INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])
(15): LOAD11943(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15]) → LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))
(16): LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))) → COND_LOAD11943ARR6(i2854[16] > 0 && i2554[16] > 0 && i2554[16] < i3[16] && i2563[16] > 0 && i2554[16] + 1 > 0, java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))
(17): COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))) → INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17] + 1, i58[17], i2563[17])
(18): LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18]) → LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))
(19): LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))) → COND_LOAD11943ARR9(i2854[19] > 0 && i2554[19] > 0 && i2554[19] < i3[19] && i2563[19] > 0 && i2554[19] + 1 > 0, java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))
(20): COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20]))) → JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20] + 1, i58[20], i2563[20])

(2) -> (0), if (((i3[2]* i3[0])∧(a499data[2]* a499data[0]))∧(i58[2] + -1* i58[0])∧(i52[2] + 1* i52[0]))

(3) -> (0), if ((i2554[3]* i52[0])∧((i3[3]* i3[0])∧(a7196data[3]* a499data[0]))∧(i58[3] + -1* i58[0]))

(6) -> (3), if ((i114[6]* 0)∧(i52[6] + 1* i2554[3])∧(i58[6]* i58[3])∧((i3[6]* i3[3])∧(a499data[6]* a7196data[3])))

(7) -> (3), if ((i2624[7]* i2554[3])∧(i58[7]* i58[3])∧((i3[7]* i3[3])∧(a7196data[7]* a7196data[3]))∧(i2563[7] + -1* 0))

(10) -> (3), if ((i58[10]* i58[3])∧(i2563[10] + -1* 0)∧((i3[10]* i3[3])∧(a7196data[10]* a7196data[3]))∧(i2554[10] + 1* i2554[3]))

(2) -> (4), if ((i58[2] + -1* i58[4])∧((i3[2]* i3[4])∧(a499data[2]* a499data[4]))∧(i52[2] + 1* i52[4]))

(3) -> (4), if (((i3[3]* i3[4])∧(a7196data[3]* a499data[4]))∧(i2554[3]* i52[4])∧(i58[3] + -1* i58[4]))

(13) -> (7), if ((i2554[13] + 1* i2624[7])∧(i2563[13]* i2563[7])∧((i3[13]* i3[7])∧(a7196data[13]* a7196data[7]))∧(i58[13]* i58[7]))

(14) -> (7), if ((i2563[14]* i2563[7])∧(i2624[14]* i2624[7])∧(i58[14]* i58[7])∧((i3[14]* i3[7])∧(a7196data[14]* a7196data[7])))

(17) -> (7), if ((i58[17]* i58[7])∧((i3[17]* i3[7])∧(a7196data[17]* a7196data[7]))∧(i2554[17] + 1* i2624[7])∧(i2563[17]* i2563[7]))

(6) -> (8), if ((i114[6]* i2563[8])∧(i58[6]* i58[8])∧(i52[6] + 1* i2554[8])∧((i3[6]* i3[8])∧(a499data[6]* a7196data[8])))

(7) -> (8), if ((i58[7]* i58[8])∧(i2624[7]* i2554[8])∧((i3[7]* i3[8])∧(a7196data[7]* a7196data[8]))∧(i2563[7] + -1* i2563[8]))

(10) -> (8), if ((i58[10]* i58[8])∧((i3[10]* i3[8])∧(a7196data[10]* a7196data[8]))∧(i2554[10] + 1* i2554[8])∧(i2563[10] + -1* i2563[8]))

(8) -> (9), if ((i2554[8]* i2554[9])∧(i2563[8]* i2563[9])∧(i58[8]* i58[9])∧((i3[8]* i3[9])∧(a7196data[8]* a7196data[9])))

(9) -> (10), if ((i2563[9]* i2563[10])∧((i3[9]* i3[10])∧(a7196data[9]* a7196data[10]))∧(i58[9]* i58[10])∧(i2554[9] > 0 && i2554[9] < i3[9] && i2563[9] > 0 && i2554[9] + 1 > 0* TRUE)∧(i2554[9]* i2554[10]))

(6) -> (11), if (((i3[6]* i3[11])∧(a499data[6]* a7196data[11]))∧(i58[6]* i58[11])∧(i114[6]* i2563[11])∧(i52[6] + 1* i2554[11]))

(7) -> (11), if ((i2624[7]* i2554[11])∧(i58[7]* i58[11])∧((i3[7]* i3[11])∧(a7196data[7]* a7196data[11]))∧(i2563[7] + -1* i2563[11]))

(10) -> (11), if ((i2563[10] + -1* i2563[11])∧(i58[10]* i58[11])∧(i2554[10] + 1* i2554[11])∧((i3[10]* i3[11])∧(a7196data[10]* a7196data[11])))

(11) -> (12), if ((i2563[11]* i2563[12])∧((i3[11]* i3[12])∧(a7196data[11]* a7196data[12]))∧(i2554[11]* i2554[12])∧(i58[11]* i58[12]))

(12) -> (13), if (((i3[12]* i3[13])∧(a7196data[12]* a7196data[13]))∧(i2563[12]* i2563[13])∧(i58[12]* i58[13])∧(i2554[12]* i2554[13])∧(i2554[12] > 0 && i2554[12] < i3[12] && i2563[12] > 0 && i2554[12] + 1 > 0* TRUE))

(20) -> (14), if ((i2563[20]* i2563[14])∧(i58[20]* i58[14])∧(i2554[20] + 1* i2624[14])∧((i3[20]* i3[14])∧(a7196data[20]* a7196data[14])))

(6) -> (15), if ((i52[6] + 1* i2554[15])∧(i114[6]* i2563[15])∧(i58[6]* i58[15])∧((i3[6]* i3[15])∧(a499data[6]* a7196data[15])))

(7) -> (15), if ((i2563[7] + -1* i2563[15])∧(i58[7]* i58[15])∧(i2624[7]* i2554[15])∧((i3[7]* i3[15])∧(a7196data[7]* a7196data[15])))

(10) -> (15), if (((i3[10]* i3[15])∧(a7196data[10]* a7196data[15]))∧(i58[10]* i58[15])∧(i2554[10] + 1* i2554[15])∧(i2563[10] + -1* i2563[15]))

(15) -> (16), if (((i3[15]* i3[16])∧(a7196data[15]* a7196data[16]))∧(i2554[15]* i2554[16])∧(i58[15]* i58[16])∧((i2854[15]* i2854[16])∧(i2744[15]* i2744[16])∧(i2746[15]* i2746[16])∧(a7628[15]* a7628[16]))∧(i2563[15]* i2563[16]))

(16) -> (17), if ((i58[16]* i58[17])∧((i3[16]* i3[17])∧(a7196data[16]* a7196data[17]))∧(i2854[16] > 0 && i2554[16] > 0 && i2554[16] < i3[16] && i2563[16] > 0 && i2554[16] + 1 > 0* TRUE)∧(i2563[16]* i2563[17])∧(i2554[16]* i2554[17])∧((i2854[16]* i2854[17])∧(i2744[16]* i2744[17])∧(i2746[16]* i2746[17])∧(a7628[16]* a7628[17])))

(6) -> (18), if (((i3[6]* i3[18])∧(a499data[6]* a7196data[18]))∧(i58[6]* i58[18])∧(i52[6] + 1* i2554[18])∧(i114[6]* i2563[18]))

(7) -> (18), if ((i58[7]* i58[18])∧(i2624[7]* i2554[18])∧(i2563[7] + -1* i2563[18])∧((i3[7]* i3[18])∧(a7196data[7]* a7196data[18])))

(10) -> (18), if (((i3[10]* i3[18])∧(a7196data[10]* a7196data[18]))∧(i2554[10] + 1* i2554[18])∧(i58[10]* i58[18])∧(i2563[10] + -1* i2563[18]))

(18) -> (19), if (((i2854[18]* i2854[19])∧(i2744[18]* i2744[19])∧(i2746[18]* i2746[19])∧(a7628[18]* a7628[19]))∧(i2554[18]* i2554[19])∧(i2563[18]* i2563[19])∧(i58[18]* i58[19])∧((i3[18]* i3[19])∧(a7196data[18]* a7196data[19])))

(19) -> (20), if ((i2554[19]* i2554[20])∧(i2563[19]* i2563[20])∧(i58[19]* i58[20])∧(i2854[19] > 0 && i2554[19] > 0 && i2554[19] < i3[19] && i2563[19] > 0 && i2554[19] + 1 > 0* TRUE)∧((i2854[19]* i2854[20])∧(i2744[19]* i2744[20])∧(i2746[19]* i2746[20])∧(a7628[19]* a7628[20]))∧((i3[19]* i3[20])∧(a7196data[19]* a7196data[20])))

The set Q consists of the following terms:
Load833ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc14138(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
JMP14222(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Load11943ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Load11943ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))

### (31) IDependencyGraphProof (EQUIVALENT transformation)

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

### (32) Obligation:

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

The following domains are used:

Integer, Boolean

R is empty.

The integer pair graph contains the following rules and edges:
(14): JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]) → INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])
(20): COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20]))) → JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20] + 1, i58[20], i2563[20])
(19): LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))) → COND_LOAD11943ARR9(i2854[19] > 0 && i2554[19] > 0 && i2554[19] < i3[19] && i2563[19] > 0 && i2554[19] + 1 > 0, java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))
(18): LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18]) → LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))
(17): COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))) → INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17] + 1, i58[17], i2563[17])
(16): LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))) → COND_LOAD11943ARR6(i2854[16] > 0 && i2554[16] > 0 && i2554[16] < i3[16] && i2563[16] > 0 && i2554[16] + 1 > 0, java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))
(15): LOAD11943(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15]) → LOAD11943ARR6(java.lang.Object(ARRAY(i3[15], a7196data[15])), i2554[15], i58[15], i2563[15], java.lang.Object(java.lang.String(i2854[15], i2744[15], i2746[15], a7628[15])))
(7): INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7]) → LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7] + -1)
(13): COND_LOAD11943ARR5(TRUE, java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13], i58[13], i2563[13]) → INC14138(java.lang.Object(ARRAY(i3[13], a7196data[13])), i2554[13] + 1, i58[13], i2563[13])
(12): LOAD11943ARR5(java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12]) → COND_LOAD11943ARR5(i2554[12] > 0 && i2554[12] < i3[12] && i2563[12] > 0 && i2554[12] + 1 > 0, java.lang.Object(ARRAY(i3[12], a7196data[12])), i2554[12], i58[12], i2563[12])
(11): LOAD11943(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11]) → LOAD11943ARR5(java.lang.Object(ARRAY(i3[11], a7196data[11])), i2554[11], i58[11], i2563[11])
(10): COND_LOAD11943ARR3(TRUE, java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10], i58[10], i2563[10]) → LOAD11943(java.lang.Object(ARRAY(i3[10], a7196data[10])), i2554[10] + 1, i58[10], i2563[10] + -1)
(9): LOAD11943ARR3(java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9]) → COND_LOAD11943ARR3(i2554[9] > 0 && i2554[9] < i3[9] && i2563[9] > 0 && i2554[9] + 1 > 0, java.lang.Object(ARRAY(i3[9], a7196data[9])), i2554[9], i58[9], i2563[9])
(8): LOAD11943(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8]) → LOAD11943ARR3(java.lang.Object(ARRAY(i3[8], a7196data[8])), i2554[8], i58[8], i2563[8])

(13) -> (7), if ((i2554[13] + 1* i2624[7])∧(i2563[13]* i2563[7])∧((i3[13]* i3[7])∧(a7196data[13]* a7196data[7]))∧(i58[13]* i58[7]))

(14) -> (7), if ((i2563[14]* i2563[7])∧(i2624[14]* i2624[7])∧(i58[14]* i58[7])∧((i3[14]* i3[7])∧(a7196data[14]* a7196data[7])))

(17) -> (7), if ((i58[17]* i58[7])∧((i3[17]* i3[7])∧(a7196data[17]* a7196data[7]))∧(i2554[17] + 1* i2624[7])∧(i2563[17]* i2563[7]))

(7) -> (8), if ((i58[7]* i58[8])∧(i2624[7]* i2554[8])∧((i3[7]* i3[8])∧(a7196data[7]* a7196data[8]))∧(i2563[7] + -1* i2563[8]))

(10) -> (8), if ((i58[10]* i58[8])∧((i3[10]* i3[8])∧(a7196data[10]* a7196data[8]))∧(i2554[10] + 1* i2554[8])∧(i2563[10] + -1* i2563[8]))

(8) -> (9), if ((i2554[8]* i2554[9])∧(i2563[8]* i2563[9])∧(i58[8]* i58[9])∧((i3[8]* i3[9])∧(a7196data[8]* a7196data[9])))

(9) -> (10), if ((i2563[9]* i2563[10])∧((i3[9]* i3[10])∧(a7196data[9]* a7196data[10]))∧(i58[9]* i58[10])∧(i2554[9] > 0 && i2554[9] < i3[9] && i2563[9] > 0 && i2554[9] + 1 > 0* TRUE)∧(i2554[9]* i2554[10]))

(7) -> (11), if ((i2624[7]* i2554[11])∧(i58[7]* i58[11])∧((i3[7]* i3[11])∧(a7196data[7]* a7196data[11]))∧(i2563[7] + -1* i2563[11]))

(10) -> (11), if ((i2563[10] + -1* i2563[11])∧(i58[10]* i58[11])∧(i2554[10] + 1* i2554[11])∧((i3[10]* i3[11])∧(a7196data[10]* a7196data[11])))

(11) -> (12), if ((i2563[11]* i2563[12])∧((i3[11]* i3[12])∧(a7196data[11]* a7196data[12]))∧(i2554[11]* i2554[12])∧(i58[11]* i58[12]))

(12) -> (13), if (((i3[12]* i3[13])∧(a7196data[12]* a7196data[13]))∧(i2563[12]* i2563[13])∧(i58[12]* i58[13])∧(i2554[12]* i2554[13])∧(i2554[12] > 0 && i2554[12] < i3[12] && i2563[12] > 0 && i2554[12] + 1 > 0* TRUE))

(20) -> (14), if ((i2563[20]* i2563[14])∧(i58[20]* i58[14])∧(i2554[20] + 1* i2624[14])∧((i3[20]* i3[14])∧(a7196data[20]* a7196data[14])))

(7) -> (15), if ((i2563[7] + -1* i2563[15])∧(i58[7]* i58[15])∧(i2624[7]* i2554[15])∧((i3[7]* i3[15])∧(a7196data[7]* a7196data[15])))

(10) -> (15), if (((i3[10]* i3[15])∧(a7196data[10]* a7196data[15]))∧(i58[10]* i58[15])∧(i2554[10] + 1* i2554[15])∧(i2563[10] + -1* i2563[15]))

(15) -> (16), if (((i3[15]* i3[16])∧(a7196data[15]* a7196data[16]))∧(i2554[15]* i2554[16])∧(i58[15]* i58[16])∧((i2854[15]* i2854[16])∧(i2744[15]* i2744[16])∧(i2746[15]* i2746[16])∧(a7628[15]* a7628[16]))∧(i2563[15]* i2563[16]))

(16) -> (17), if ((i58[16]* i58[17])∧((i3[16]* i3[17])∧(a7196data[16]* a7196data[17]))∧(i2854[16] > 0 && i2554[16] > 0 && i2554[16] < i3[16] && i2563[16] > 0 && i2554[16] + 1 > 0* TRUE)∧(i2563[16]* i2563[17])∧(i2554[16]* i2554[17])∧((i2854[16]* i2854[17])∧(i2744[16]* i2744[17])∧(i2746[16]* i2746[17])∧(a7628[16]* a7628[17])))

(7) -> (18), if ((i58[7]* i58[18])∧(i2624[7]* i2554[18])∧(i2563[7] + -1* i2563[18])∧((i3[7]* i3[18])∧(a7196data[7]* a7196data[18])))

(10) -> (18), if (((i3[10]* i3[18])∧(a7196data[10]* a7196data[18]))∧(i2554[10] + 1* i2554[18])∧(i58[10]* i58[18])∧(i2563[10] + -1* i2563[18]))

(18) -> (19), if (((i2854[18]* i2854[19])∧(i2744[18]* i2744[19])∧(i2746[18]* i2746[19])∧(a7628[18]* a7628[19]))∧(i2554[18]* i2554[19])∧(i2563[18]* i2563[19])∧(i58[18]* i58[19])∧((i3[18]* i3[19])∧(a7196data[18]* a7196data[19])))

(19) -> (20), if ((i2554[19]* i2554[20])∧(i2563[19]* i2563[20])∧(i58[19]* i58[20])∧(i2854[19] > 0 && i2554[19] > 0 && i2554[19] < i3[19] && i2563[19] > 0 && i2554[19] + 1 > 0* TRUE)∧((i2854[19]* i2854[20])∧(i2744[19]* i2744[20])∧(i2746[19]* i2746[20])∧(a7628[19]* a7628[20]))∧((i3[19]* i3[20])∧(a7196data[19]* a7196data[20])))

The set Q consists of the following terms:
Load833ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load833ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Inc14138(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Cond_Load11943ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
JMP14222(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4)
Load11943ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Load11943ARR9(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))
Cond_Load11943ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(java.lang.String(x5, x6, x7, x8)))

### (33) 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 JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]) → INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]) the following chains were created:
• We consider the chain JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]) → INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14]), INC14138(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], i2563[7]) → LOAD11943(java.lang.Object(ARRAY(i3[7], a7196data[7])), i2624[7], i58[7], +(i2563[7], -1)) which results in the following constraint:

(1)    (i2563[14]=i2563[7]i2624[14]=i2624[7]i58[14]=i58[7]i3[14]=i3[7]a7196data[14]=a7196data[7]JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])≥NonInfC∧JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])≥INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])∧(UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥))

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

(2)    (JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])≥NonInfC∧JMP14222'(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])≥INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])∧(UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥))

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

(3)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥)∧[(-1)bso_22] ≥ 0)

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

(4)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥)∧[(-1)bso_22] ≥ 0)

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

(5)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥)∧[(-1)bso_22] ≥ 0)

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

(6)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[14], a7196data[14])), i2624[14], i58[14], i2563[14])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_22] ≥ 0)

For Pair COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20]))) → JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20]) the following chains were created:
• We consider the chain COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20]))) → JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20]) which results in the following constraint:

(7)    (COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20])))≥NonInfC∧COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20])))≥JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])∧(UIncreasing(JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])), ≥))

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

(8)    ((UIncreasing(JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])), ≥)∧[1 + (-1)bso_24] ≥ 0)

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

(9)    ((UIncreasing(JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])), ≥)∧[1 + (-1)bso_24] ≥ 0)

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

(10)    ((UIncreasing(JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])), ≥)∧[1 + (-1)bso_24] ≥ 0)

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

(11)    ((UIncreasing(JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_24] ≥ 0)

For Pair LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))) → COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))) the following chains were created:
• We consider the chain LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))) → COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19]))), COND_LOAD11943ARR9(TRUE, java.lang.Object(ARRAY(i3[20], a7196data[20])), i2554[20], i58[20], i2563[20], java.lang.Object(java.lang.String(i2854[20], i2744[20], i2746[20], a7628[20]))) → JMP14222'(java.lang.Object(ARRAY(i3[20], a7196data[20])), +(i2554[20], 1), i58[20], i2563[20]) which results in the following constraint:

(12)    (i2554[19]=i2554[20]i2563[19]=i2563[20]i58[19]=i58[20]&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0))=TRUEi2854[19]=i2854[20]i2744[19]=i2744[20]i2746[19]=i2746[20]a7628[19]=a7628[20]i3[19]=i3[20]a7196data[19]=a7196data[20]LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))≥NonInfC∧LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))≥COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))∧(UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥))

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

(13)    (>(+(i2554[19], 1), 0)=TRUE>(i2563[19], 0)=TRUE<(i2554[19], i3[19])=TRUE>(i2854[19], 0)=TRUE>(i2554[19], 0)=TRUELOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))≥NonInfC∧LOAD11943ARR9(java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))≥COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))∧(UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥))

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

(14)    (i2554[19] ≥ 0∧i2563[19] + [-1] ≥ 0∧i3[19] + [-1] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧[(-1)Bound*bni_25] + [(2)bni_25]i2563[19] ≥ 0∧[(-1)bso_26] ≥ 0)

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

(15)    (i2554[19] ≥ 0∧i2563[19] + [-1] ≥ 0∧i3[19] + [-1] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧[(-1)Bound*bni_25] + [(2)bni_25]i2563[19] ≥ 0∧[(-1)bso_26] ≥ 0)

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

(16)    (i2554[19] ≥ 0∧i2563[19] + [-1] ≥ 0∧i3[19] + [-1] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧[(-1)Bound*bni_25] + [(2)bni_25]i2563[19] ≥ 0∧[(-1)bso_26] ≥ 0)

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

(17)    (i2554[19] ≥ 0∧i2563[19] + [-1] ≥ 0∧i3[19] + [-1] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_25] + [(2)bni_25]i2563[19] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_26] ≥ 0)

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

(18)    ([1] + i2554[19] ≥ 0∧i2563[19] + [-1] ≥ 0∧i3[19] + [-2] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_25] + [(2)bni_25]i2563[19] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_26] ≥ 0)

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

(19)    ([1] + i2554[19] ≥ 0∧i2563[19] ≥ 0∧i3[19] + [-2] + [-1]i2554[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_25 + (2)bni_25] + [(2)bni_25]i2563[19] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_26] ≥ 0)

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

(20)    ([1] + i2554[19] ≥ 0∧i2563[19] ≥ 0∧i3[19] ≥ 0∧i2854[19] + [-1] ≥ 0∧i2554[19] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_25 + (2)bni_25] + [(2)bni_25]i2563[19] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_26] ≥ 0)

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

(21)    ([1] + i2554[19] ≥ 0∧i2563[19] ≥ 0∧i3[19] ≥ 0∧i2854[19] ≥ 0∧i2554[19] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR9(&&(&&(&&(&&(>(i2854[19], 0), >(i2554[19], 0)), <(i2554[19], i3[19])), >(i2563[19], 0)), >(+(i2554[19], 1), 0)), java.lang.Object(ARRAY(i3[19], a7196data[19])), i2554[19], i58[19], i2563[19], java.lang.Object(java.lang.String(i2854[19], i2744[19], i2746[19], a7628[19])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_25 + (2)bni_25] + [(2)bni_25]i2563[19] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_26] ≥ 0)

For Pair LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18]) → LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18]))) the following chains were created:
• We consider the chain LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18]) → LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18]))) which results in the following constraint:

(22)    (LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18])≥NonInfC∧LOAD11943(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18])≥LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))∧(UIncreasing(LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))), ≥))

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

(23)    ((UIncreasing(LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))), ≥)∧[(-1)bso_28] ≥ 0)

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

(24)    ((UIncreasing(LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))), ≥)∧[(-1)bso_28] ≥ 0)

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

(25)    ((UIncreasing(LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))), ≥)∧[(-1)bso_28] ≥ 0)

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

(26)    ((UIncreasing(LOAD11943ARR9(java.lang.Object(ARRAY(i3[18], a7196data[18])), i2554[18], i58[18], i2563[18], java.lang.Object(java.lang.String(i2854[18], i2744[18], i2746[18], a7628[18])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_28] ≥ 0)

For Pair COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))) → INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17]) the following chains were created:
• We consider the chain COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))) → INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17]) which results in the following constraint:

(27)    (COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17])))≥NonInfC∧COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17])))≥INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])∧(UIncreasing(INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])), ≥))

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

(28)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])), ≥)∧[1 + (-1)bso_30] ≥ 0)

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

(29)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])), ≥)∧[1 + (-1)bso_30] ≥ 0)

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

(30)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])), ≥)∧[1 + (-1)bso_30] ≥ 0)

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

(31)    ((UIncreasing(INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_30] ≥ 0)

For Pair LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))) → COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))) the following chains were created:
• We consider the chain LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))) → COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16]))), COND_LOAD11943ARR6(TRUE, java.lang.Object(ARRAY(i3[17], a7196data[17])), i2554[17], i58[17], i2563[17], java.lang.Object(java.lang.String(i2854[17], i2744[17], i2746[17], a7628[17]))) → INC14138(java.lang.Object(ARRAY(i3[17], a7196data[17])), +(i2554[17], 1), i58[17], i2563[17]) which results in the following constraint:

(32)    (i58[16]=i58[17]i3[16]=i3[17]a7196data[16]=a7196data[17]&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0))=TRUEi2563[16]=i2563[17]i2554[16]=i2554[17]i2854[16]=i2854[17]i2744[16]=i2744[17]i2746[16]=i2746[17]a7628[16]=a7628[17]LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))≥NonInfC∧LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))≥COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))∧(UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥))

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

(33)    (>(+(i2554[16], 1), 0)=TRUE>(i2563[16], 0)=TRUE<(i2554[16], i3[16])=TRUE>(i2854[16], 0)=TRUE>(i2554[16], 0)=TRUELOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))≥NonInfC∧LOAD11943ARR6(java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))≥COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))∧(UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥))

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

(34)    (i2554[16] ≥ 0∧i2563[16] + [-1] ≥ 0∧i3[16] + [-1] + [-1]i2554[16] ≥ 0∧i2854[16] + [-1] ≥ 0∧i2554[16] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥)∧[(-1)Bound*bni_31] + [(2)bni_31]i2563[16] ≥ 0∧[(-1)bso_32] ≥ 0)

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

(35)    (i2554[16] ≥ 0∧i2563[16] + [-1] ≥ 0∧i3[16] + [-1] + [-1]i2554[16] ≥ 0∧i2854[16] + [-1] ≥ 0∧i2554[16] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD11943ARR6(&&(&&(&&(&&(>(i2854[16], 0), >(i2554[16], 0)), <(i2554[16], i3[16])), >(i2563[16], 0)), >(+(i2554[16], 1), 0)), java.lang.Object(ARRAY(i3[16], a7196data[16])), i2554[16], i58[16], i2563[16], java.lang.Object(java.lang.String(i2854[16], i2744[16], i2746[16], a7628[16])))), ≥)∧[(-1)Bound*bni_31] + [(2)bni_31]i2563[16] ≥ 0∧[(-1)bso_32] ≥ 0)

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

(36)    (i2554[16] ≥ 0∧i2563[16] + [-1] ≥ 0∧i3[16] + [-1] + [-1]i2554