### (0) Obligation:

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

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

### (1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

### (2) Obligation:

FIGraph based on JBC Program:
Graph of 313 nodes with 3 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:
Load876(i103, i76) → Cond_Load876(i103 >= 0 && i103 < i76 - 1 && i103 + 1 > 0, i103, i76)
The set Q consists of the following terms:

### (7) Obligation:

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

The following domains are used:

Boolean, Integer

The ITRS R consists of the following rules:
Load876(i103, i76) → Cond_Load876(i103 >= 0 && i103 < i76 - 1 && i103 + 1 > 0, i103, i76)

The integer pair graph contains the following rules and edges:
(0): LOAD876(i103[0], i76[0]) → COND_LOAD876(i103[0] >= 0 && i103[0] < i76[0] - 1 && i103[0] + 1 > 0, i103[0], i76[0])

(0) -> (1), if ((i76[0]* i76[1])∧(i103[0] >= 0 && i103[0] < i76[0] - 1 && i103[0] + 1 > 0* TRUE)∧(i103[0]* i103[1]))

(1) -> (0), if ((i103[1] + 1* i103[0])∧(i76[1]* i76[0]))

The set Q consists of the following terms:

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

### (9) Obligation:

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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD876(i103[0], i76[0]) → COND_LOAD876(i103[0] >= 0 && i103[0] < i76[0] - 1 && i103[0] + 1 > 0, i103[0], i76[0])

(0) -> (1), if ((i76[0]* i76[1])∧(i103[0] >= 0 && i103[0] < i76[0] - 1 && i103[0] + 1 > 0* TRUE)∧(i103[0]* i103[1]))

(1) -> (0), if ((i103[1] + 1* i103[0])∧(i76[1]* i76[0]))

The set Q consists of the following terms:

### (10) 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 LOAD876(i103, i76) → COND_LOAD876(&&(&&(>=(i103, 0), <(i103, -(i76, 1))), >(+(i103, 1), 0)), i103, i76) the following chains were created:
• We consider the chain LOAD876(i103[0], i76[0]) → COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0]), COND_LOAD876(TRUE, i103[1], i76[1]) → LOAD876(+(i103[1], 1), i76[1]) which results in the following constraint:

(1)    (i76[0]=i76[1]&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0))=TRUEi103[0]=i103[1]LOAD876(i103[0], i76[0])≥NonInfC∧LOAD876(i103[0], i76[0])≥COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])∧(UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥))

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

(2)    (>(+(i103[0], 1), 0)=TRUE>=(i103[0], 0)=TRUE<(i103[0], -(i76[0], 1))=TRUELOAD876(i103[0], i76[0])≥NonInfC∧LOAD876(i103[0], i76[0])≥COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])∧(UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥))

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

(3)    (i103[0] ≥ 0∧i103[0] ≥ 0∧i76[0] + [-2] + [-1]i103[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [bni_11]i76[0] + [(-1)bni_11]i103[0] ≥ 0∧[(-1)bso_12] ≥ 0)

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

(4)    (i103[0] ≥ 0∧i103[0] ≥ 0∧i76[0] + [-2] + [-1]i103[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [bni_11]i76[0] + [(-1)bni_11]i103[0] ≥ 0∧[(-1)bso_12] ≥ 0)

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

(5)    (i103[0] ≥ 0∧i103[0] ≥ 0∧i76[0] + [-2] + [-1]i103[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [bni_11]i76[0] + [(-1)bni_11]i103[0] ≥ 0∧[(-1)bso_12] ≥ 0)

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

(6)    (i103[0] ≥ 0∧i103[0] ≥ 0∧i76[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥)∧[bni_11 + (-1)Bound*bni_11] + [bni_11]i76[0] ≥ 0∧[(-1)bso_12] ≥ 0)

For Pair COND_LOAD876(TRUE, i103, i76) → LOAD876(+(i103, 1), i76) the following chains were created:
• We consider the chain COND_LOAD876(TRUE, i103[1], i76[1]) → LOAD876(+(i103[1], 1), i76[1]) which results in the following constraint:

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

(8)    ((UIncreasing(LOAD876(+(i103[1], 1), i76[1])), ≥)∧[1 + (-1)bso_14] ≥ 0)

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

(9)    ((UIncreasing(LOAD876(+(i103[1], 1), i76[1])), ≥)∧[1 + (-1)bso_14] ≥ 0)

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

(10)    ((UIncreasing(LOAD876(+(i103[1], 1), i76[1])), ≥)∧[1 + (-1)bso_14] ≥ 0)

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

(11)    ((UIncreasing(LOAD876(+(i103[1], 1), i76[1])), ≥)∧0 = 0∧0 = 0∧[1 + (-1)bso_14] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• LOAD876(i103, i76) → COND_LOAD876(&&(&&(>=(i103, 0), <(i103, -(i76, 1))), >(+(i103, 1), 0)), i103, i76)
• (i103[0] ≥ 0∧i103[0] ≥ 0∧i76[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])), ≥)∧[bni_11 + (-1)Bound*bni_11] + [bni_11]i76[0] ≥ 0∧[(-1)bso_12] ≥ 0)

• ((UIncreasing(LOAD876(+(i103[1], 1), i76[1])), ≥)∧0 = 0∧0 = 0∧[1 + (-1)bso_14] ≥ 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(LOAD876(x1, x2)) = [-1] + x2 + [-1]x1
POL(COND_LOAD876(x1, x2, x3)) = [-1] + x3 + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(-(x1, x2)) = x1 + [-1]x2
POL(1) = [1]
POL(>(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2

The following pairs are in P>:

The following pairs are in Pbound:

LOAD876(i103[0], i76[0]) → COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])

The following pairs are in P:

LOAD876(i103[0], i76[0]) → COND_LOAD876(&&(&&(>=(i103[0], 0), <(i103[0], -(i76[0], 1))), >(+(i103[0], 1), 0)), i103[0], i76[0])

There are no usable rules.

### (12) 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:
(0): LOAD876(i103[0], i76[0]) → COND_LOAD876(i103[0] >= 0 && i103[0] < i76[0] - 1 && i103[0] + 1 > 0, i103[0], i76[0])

The set Q consists of the following terms:

### (13) IDependencyGraphProof (EQUIVALENT transformation)

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

### (15) Obligation:

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

The following domains are used:

Integer

R is empty.

The integer pair graph contains the following rules and edges:

The set Q consists of the following terms:

### (16) IDependencyGraphProof (EQUIVALENT transformation)

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

### (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:
Inc1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775(i75, i94 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Load775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Cond_Load775ARR1(i105 >= i112 && i94 > 0 && i94 < i76 && i75 >= 0 && i75 < i76 && i94 + 1 > 0, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Cond_Load775ARR1(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Load775(i75, i94 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Cond_Load560ARR2(i105 >= i112 && i75 + 1 > 0 && i75 + 1 < i76 && i75 >= 0 && i75 < i76 && i75 < i76 - 1 && i75 + 1 + 1 > 0, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Cond_Load560ARR2(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Load775(i75, i75 + 1 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Load775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Cond_Load775ARR3(i94 > 0 && i94 < i76 && i75 >= 0 && i75 < i76 && i105 < i112, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Cond_Load775ARR3(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Inc1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52dataNew)))
Load560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Load560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Cond_Load560ARR4(i75 + 1 > 0 && i75 + 1 < i76 && i75 >= 0 && i75 < i76 && i105 < i112 && i75 < i76 - 1, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Cond_Load560ARR4(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Inc1031(i75, i75 + 1, i76, java.lang.Object(ARRAY(i76, a52dataNew)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Cond_Load775(i94 > 0 && i76 >= 0 && i94 >= i76 && i75 + 1 > 0, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)))
Cond_Load775(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560(i75 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Cond_Load560(i75 + 1 > 0 && i76 >= 0 && i75 + 1 >= i76 && i75 < i76 - 1 && i75 + 1 > 0, i75, i76, java.lang.Object(ARRAY(i76, a52data)))
Cond_Load560(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560(i75 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))

### (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:

Integer, Boolean

The ITRS R consists of the following rules:
Inc1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775(i75, i94 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Load775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Cond_Load775ARR1(i105 >= i112 && i94 > 0 && i94 < i76 && i75 >= 0 && i75 < i76 && i94 + 1 > 0, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Cond_Load775ARR1(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Load775(i75, i94 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Cond_Load560ARR2(i105 >= i112 && i75 + 1 > 0 && i75 + 1 < i76 && i75 >= 0 && i75 < i76 && i75 < i76 - 1 && i75 + 1 + 1 > 0, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
Cond_Load560ARR2(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → Load775(i75, i75 + 1 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Load775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Cond_Load775ARR3(i94 > 0 && i94 < i76 && i75 >= 0 && i75 < i76 && i105 < i112, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Cond_Load775ARR3(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Inc1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52dataNew)))
Load560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Load560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Cond_Load560ARR4(i75 + 1 > 0 && i75 + 1 < i76 && i75 >= 0 && i75 < i76 && i105 < i112 && i75 < i76 - 1, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
Cond_Load560ARR4(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → Inc1031(i75, i75 + 1, i76, java.lang.Object(ARRAY(i76, a52dataNew)))
Load775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Cond_Load775(i94 > 0 && i76 >= 0 && i94 >= i76 && i75 + 1 > 0, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)))
Cond_Load775(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560(i75 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))
Load560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Cond_Load560(i75 + 1 > 0 && i76 >= 0 && i75 + 1 >= i76 && i75 < i76 - 1 && i75 + 1 > 0, i75, i76, java.lang.Object(ARRAY(i76, a52data)))
Cond_Load560(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data))) → Load560(i75 + 1, i76, java.lang.Object(ARRAY(i76, a52data)))

The integer pair graph contains the following rules and edges:
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(15): LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0, i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))
(16): COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(i75[16] + 1, i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))

(0) -> (1), if ((java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))

(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧(java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[7], a52data[7]))))

(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧(java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i75[0]* i75[13]))

(1) -> (2), if ((java.lang.Object(ARRAY(i76[1], a52data[1])) →* java.lang.Object(ARRAY(i76[2], a52data[2])))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))

(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧(java.lang.Object(ARRAY(i76[2], a52data[2])) →* java.lang.Object(ARRAY(i76[3], a52data[3])))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))

(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧(java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i76[3]* i76[1]))

(3) -> (7), if ((java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[7], a52data[7])))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))

(3) -> (13), if ((java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))

(4) -> (5), if ((java.lang.Object(ARRAY(i76[4], a52data[4])) →* java.lang.Object(ARRAY(i76[5], a52data[5])))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))

(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧(java.lang.Object(ARRAY(i76[5], a52data[5])) →* java.lang.Object(ARRAY(i76[6], a52data[6]))))

(6) -> (1), if ((i76[6]* i76[1])∧(java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))

(6) -> (7), if ((i75[6]* i75[7])∧(java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[7], a52data[7])))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))

(6) -> (13), if ((java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))

(7) -> (8), if ((i112[7]* i112[8])∧(java.lang.Object(ARRAY(i76[7], a52data[7])) →* java.lang.Object(ARRAY(i76[8], a52data[8])))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))

(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧(java.lang.Object(ARRAY(i76[8], a52data[8])) →* java.lang.Object(ARRAY(i76[9], a52data[9])))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))

(9) -> (0), if ((java.lang.Object(ARRAY(i76[9], a52dataNew[9])) →* java.lang.Object(ARRAY(i76[0], a52data[0])))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))

(10) -> (11), if ((java.lang.Object(ARRAY(i76[10], a52data[10])) →* java.lang.Object(ARRAY(i76[11], a52data[11])))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))

(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧(java.lang.Object(ARRAY(i76[11], a52data[11])) →* java.lang.Object(ARRAY(i76[12], a52data[12])))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))

(12) -> (0), if ((java.lang.Object(ARRAY(i76[12], a52dataNew[12])) →* java.lang.Object(ARRAY(i76[0], a52data[0])))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))

(13) -> (14), if ((java.lang.Object(ARRAY(i76[13], a52data[13])) →* java.lang.Object(ARRAY(i76[14], a52data[14])))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))

(14) -> (4), if ((i75[14] + 1* i75[4])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[4], a52data[4])))∧(i76[14]* i76[4]))

(14) -> (10), if ((i75[14] + 1* i75[10])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[10], a52data[10])))∧(i76[14]* i76[10]))

(14) -> (15), if ((i75[14] + 1* i75[15])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[15], a52data[15])))∧(i76[14]* i76[15]))

(15) -> (16), if ((java.lang.Object(ARRAY(i76[15], a52data[15])) →* java.lang.Object(ARRAY(i76[16], a52data[16])))∧(i75[15]* i75[16])∧(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0* TRUE)∧(i76[15]* i76[16]))

(16) -> (4), if ((i75[16] + 1* i75[4])∧(i76[16]* i76[4])∧(java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[4], a52data[4]))))

(16) -> (10), if ((i76[16]* i76[10])∧(i75[16] + 1* i75[10])∧(java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[10], a52data[10]))))

(16) -> (15), if ((java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[15], a52data[15])))∧(i75[16] + 1* i75[15])∧(i76[16]* i76[15]))

The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))

### (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:

Integer, Boolean

R is empty.

The integer pair graph contains the following rules and edges:
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(15): LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0, i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))
(16): COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(i75[16] + 1, i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))

(0) -> (1), if ((java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))

(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧(java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[7], a52data[7]))))

(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧(java.lang.Object(ARRAY(i76[0], a52data[0])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i75[0]* i75[13]))

(1) -> (2), if ((java.lang.Object(ARRAY(i76[1], a52data[1])) →* java.lang.Object(ARRAY(i76[2], a52data[2])))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))

(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧(java.lang.Object(ARRAY(i76[2], a52data[2])) →* java.lang.Object(ARRAY(i76[3], a52data[3])))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))

(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧(java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i76[3]* i76[1]))

(3) -> (7), if ((java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[7], a52data[7])))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))

(3) -> (13), if ((java.lang.Object(ARRAY(i76[3], a52data[3])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))

(4) -> (5), if ((java.lang.Object(ARRAY(i76[4], a52data[4])) →* java.lang.Object(ARRAY(i76[5], a52data[5])))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))

(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧(java.lang.Object(ARRAY(i76[5], a52data[5])) →* java.lang.Object(ARRAY(i76[6], a52data[6]))))

(6) -> (1), if ((i76[6]* i76[1])∧(java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[1], a52data[1])))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))

(6) -> (7), if ((i75[6]* i75[7])∧(java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[7], a52data[7])))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))

(6) -> (13), if ((java.lang.Object(ARRAY(i76[6], a52data[6])) →* java.lang.Object(ARRAY(i76[13], a52data[13])))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))

(7) -> (8), if ((i112[7]* i112[8])∧(java.lang.Object(ARRAY(i76[7], a52data[7])) →* java.lang.Object(ARRAY(i76[8], a52data[8])))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))

(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧(java.lang.Object(ARRAY(i76[8], a52data[8])) →* java.lang.Object(ARRAY(i76[9], a52data[9])))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))

(9) -> (0), if ((java.lang.Object(ARRAY(i76[9], a52dataNew[9])) →* java.lang.Object(ARRAY(i76[0], a52data[0])))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))

(10) -> (11), if ((java.lang.Object(ARRAY(i76[10], a52data[10])) →* java.lang.Object(ARRAY(i76[11], a52data[11])))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))

(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧(java.lang.Object(ARRAY(i76[11], a52data[11])) →* java.lang.Object(ARRAY(i76[12], a52data[12])))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))

(12) -> (0), if ((java.lang.Object(ARRAY(i76[12], a52dataNew[12])) →* java.lang.Object(ARRAY(i76[0], a52data[0])))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))

(13) -> (14), if ((java.lang.Object(ARRAY(i76[13], a52data[13])) →* java.lang.Object(ARRAY(i76[14], a52data[14])))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))

(14) -> (4), if ((i75[14] + 1* i75[4])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[4], a52data[4])))∧(i76[14]* i76[4]))

(14) -> (10), if ((i75[14] + 1* i75[10])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[10], a52data[10])))∧(i76[14]* i76[10]))

(14) -> (15), if ((i75[14] + 1* i75[15])∧(java.lang.Object(ARRAY(i76[14], a52data[14])) →* java.lang.Object(ARRAY(i76[15], a52data[15])))∧(i76[14]* i76[15]))

(15) -> (16), if ((java.lang.Object(ARRAY(i76[15], a52data[15])) →* java.lang.Object(ARRAY(i76[16], a52data[16])))∧(i75[15]* i75[16])∧(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0* TRUE)∧(i76[15]* i76[16]))

(16) -> (4), if ((i75[16] + 1* i75[4])∧(i76[16]* i76[4])∧(java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[4], a52data[4]))))

(16) -> (10), if ((i76[16]* i76[10])∧(i75[16] + 1* i75[10])∧(java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[10], a52data[10]))))

(16) -> (15), if ((java.lang.Object(ARRAY(i76[16], a52data[16])) →* java.lang.Object(ARRAY(i76[15], a52data[15])))∧(i75[16] + 1* i75[15])∧(i76[16]* i76[15]))

The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))

### (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:

Integer, Boolean

R is empty.

The integer pair graph contains the following rules and edges:
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(15): LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0, i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))
(16): COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(i75[16] + 1, i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))

(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))

(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))

(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧((i76[0]* i76[13])∧(a52data[0]* a52data[13]))∧(i75[0]* i75[13]))

(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))

(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))

(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))

(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))

(3) -> (13), if (((i76[3]* i76[13])∧(a52data[3]* a52data[13]))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))

(4) -> (5), if (((i76[4]* i76[5])∧(a52data[4]* a52data[5]))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))

(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧((i76[5]* i76[6])∧(a52data[5]* a52data[6])))

(6) -> (1), if ((i76[6]* i76[1])∧((i76[6]* i76[1])∧(a52data[6]* a52data[1]))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))

(6) -> (7), if ((i75[6]* i75[7])∧((i76[6]* i76[7])∧(a52data[6]* a52data[7]))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))

(6) -> (13), if (((i76[6]* i76[13])∧(a52data[6]* a52data[13]))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))

(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))

(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))

(10) -> (11), if (((i76[10]* i76[11])∧(a52data[10]* a52data[11]))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))

(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧((i76[11]* i76[12])∧(a52data[11]* a52data[12]))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))

(12) -> (0), if (((i76[12]* i76[0])∧(a52dataNew[12]* a52data[0]))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))

(13) -> (14), if (((i76[13]* i76[14])∧(a52data[13]* a52data[14]))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))

(14) -> (4), if ((i75[14] + 1* i75[4])∧((i76[14]* i76[4])∧(a52data[14]* a52data[4]))∧(i76[14]* i76[4]))

(14) -> (10), if ((i75[14] + 1* i75[10])∧((i76[14]* i76[10])∧(a52data[14]* a52data[10]))∧(i76[14]* i76[10]))

(14) -> (15), if ((i75[14] + 1* i75[15])∧((i76[14]* i76[15])∧(a52data[14]* a52data[15]))∧(i76[14]* i76[15]))

(15) -> (16), if (((i76[15]* i76[16])∧(a52data[15]* a52data[16]))∧(i75[15]* i75[16])∧(i75[15] + 1 > 0 && i76[15] >= 0 && i75[15] + 1 >= i76[15] && i75[15] < i76[15] - 1 && i75[15] + 1 > 0* TRUE)∧(i76[15]* i76[16]))

(16) -> (4), if ((i75[16] + 1* i75[4])∧(i76[16]* i76[4])∧((i76[16]* i76[4])∧(a52data[16]* a52data[4])))

(16) -> (10), if ((i76[16]* i76[10])∧(i75[16] + 1* i75[10])∧((i76[16]* i76[10])∧(a52data[16]* a52data[10])))

(16) -> (15), if (((i76[16]* i76[15])∧(a52data[16]* a52data[15]))∧(i75[16] + 1* i75[15])∧(i76[16]* i76[15]))

The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))

### (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 INC1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775(i75, +(i94, 1), i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
• We consider the chain INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) which results in the following constraint:

(1)    (INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥NonInfC∧INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))∧(UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥))

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

(2)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_34] ≥ 0)

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

(3)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_34] ≥ 0)

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

(4)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_34] ≥ 0)

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

(5)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_34] ≥ 0)

For Pair LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) the following chains were created:
• We consider the chain LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) which results in the following constraint:

(6)    (LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥NonInfC∧LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])∧(UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥))

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

(7)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_36] ≥ 0)

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

(8)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_36] ≥ 0)

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

(9)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_36] ≥ 0)

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

(10)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_36] ≥ 0)

For Pair LOAD775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105, i112), >(i94, 0)), <(i94, i76)), >=(i75, 0)), <(i75, i76)), >(+(i94, 1), 0)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) the following chains were created:
• We consider the chain LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]), COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

(11)    (&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0))=TRUEi112[2]=i112[3]i94[2]=i94[3]i76[2]=i76[3]a52data[2]=a52data[3]i105[2]=i105[3]i75[2]=i75[3]LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))

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

(12)    (>(+(i94[2], 1), 0)=TRUE<(i75[2], i76[2])=TRUE>=(i75[2], 0)=TRUE<(i94[2], i76[2])=TRUE>=(i105[2], i112[2])=TRUE>(i94[2], 0)=TRUELOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))

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

(13)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧[(-1)bso_38] ≥ 0)

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

(14)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧[(-1)bso_38] ≥ 0)

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

(15)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧[(-1)bso_38] ≥ 0)

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

(16)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)

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

(17)    ([1] + i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)

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

(18)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)

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

(19)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)

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

(20)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)

(21)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)

For Pair COND_LOAD775ARR1(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → LOAD775(i75, +(i94, 1), i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
• We consider the chain COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

(22)    (COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥NonInfC∧COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))∧(UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥))

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

(23)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_40] ≥ 0)

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

(24)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_40] ≥ 0)

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

(25)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_40] ≥ 0)

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

(26)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_40] ≥ 0)

For Pair LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) the following chains were created:
• We consider the chain LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4]) which results in the following constraint:

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

(28)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_42] ≥ 0)

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

(29)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_42] ≥ 0)

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

(30)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_42] ≥ 0)

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

(31)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_42] ≥ 0)

For Pair LOAD560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105, i112), >(+(i75, 1), 0)), <(+(i75, 1), i76)), >=(i75, 0)), <(i75, i76)), <(i75, -(i76, 1))), >(+(+(i75, 1), 1), 0)), i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) the following chains were created:
• We consider the chain LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]), COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6]))) which results in the following constraint:

(32)    (i76[5]=i76[6]&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0))=TRUEi105[5]=i105[6]i112[5]=i112[6]i75[5]=i75[6]a52data[5]=a52data[6]LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥NonInfC∧LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])∧(UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥))

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

(33)    (>(+(+(i75[5], 1), 1), 0)=TRUE<(i75[5], -(i76[5], 1))=TRUE<(i75[5], i76[5])=TRUE>=(i75[5], 0)=TRUE<(+(i75[5], 1), i76[5])=TRUE>=(i105[5], i112[5])=TRUE>(+(i75[5], 1), 0)=TRUELOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥NonInfC∧LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])∧(UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥))

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

(34)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧[(-1)bso_44] ≥ 0)

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

(35)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧[(-1)bso_44] ≥ 0)

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

(36)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧[(-1)bso_44] ≥ 0)

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

(37)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)

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

(38)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)

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

(39)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)

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

(40)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)

(41)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)

For Pair COND_LOAD560ARR2(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → LOAD775(i75, +(+(i75, 1), 1), i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
• We consider the chain COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6]))) which results in the following constraint:

(42)    (COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6])≥NonInfC∧COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6])≥LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))∧(UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥))

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

(43)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[(-1)bso_46] ≥ 0)

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

(44)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[(-1)bso_46] ≥ 0)

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

(45)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[(-1)bso_46] ≥ 0)

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

(46)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_46] ≥ 0)

For Pair LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) the following chains were created:
• We consider the chain LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) which results in the following constraint:

(47)    (LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥NonInfC∧LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])∧(UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥))

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

(48)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_48] ≥ 0)

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

(49)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_48] ≥ 0)

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

(50)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_48] ≥ 0)

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

(51)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_48] ≥ 0)

For Pair LOAD775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94, 0), <(i94, i76)), >=(i75, 0)), <(i75, i76)), <(i105, i112)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) the following chains were created:
• We consider the chain LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]), COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

(52)    (i105[8]=i105[9]i94[8]=i94[9]i76[8]=i76[9]i112[8]=i112[9]i131[8]=i131[9]a52data[8]=a52data[9]i75[8]=i75[9]i152[8]=i152[9]&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8]))=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))

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

(53)    (<(i105[8], i112[8])=TRUE<(i75[8], i76[8])=TRUE>=(i75[8], 0)=TRUE>(i94[8], 0)=TRUE<(i94[8], i76[8])=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))

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

(54)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(55)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(56)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(57)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)

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

(58)    (i112[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)

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

(59)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)

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

(60)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)

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

(61)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)

(62)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)

For Pair COND_LOAD775ARR3(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → INC1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52dataNew))) the following chains were created:
• We consider the chain COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

(63)    (COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥NonInfC∧COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))∧(UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥))

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

(64)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_52] ≥ 0)

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

(65)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_52] ≥ 0)

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

(66)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_52] ≥ 0)

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

(67)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)

For Pair LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) the following chains were created:
• We consider the chain LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10]) which results in the following constraint:

(68)    (LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])))≥NonInfC∧LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])))≥LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])∧(UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥))

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

(69)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[(-1)bso_54] ≥ 0)

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

(70)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[(-1)bso_54] ≥ 0)

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

(71)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[(-1)bso_54] ≥ 0)

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

(72)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_54] ≥ 0)

For Pair LOAD560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75, 1), 0), <(+(i75, 1), i76)), >=(i75, 0)), <(i75, i76)), <(i105, i112)), <(i75, -(i76, 1))), i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) the following chains were created:
• We consider the chain LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]), COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12]))) which results in the following constraint:

(73)    (i112[11]=i112[12]i105[11]=i105[12]i76[11]=i76[12]i75[11]=i75[12]&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1)))=TRUEa52data[11]=a52data[12]i131[11]=i131[12]i152[11]=i152[12]LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥NonInfC∧LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])∧(UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥))

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

(74)    (<(i75[11], -(i76[11], 1))=TRUE<(i105[11], i112[11])=TRUE<(i75[11], i76[11])=TRUE>=(i75[11], 0)=TRUE>(+(i75[11], 1), 0)=TRUE<(+(i75[11], 1), i76[11])=TRUELOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥NonInfC∧LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])∧(UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥))

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

(75)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧[(-1)bso_56] ≥ 0)

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

(76)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧[(-1)bso_56] ≥ 0)

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

(77)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧[(-1)bso_56] ≥ 0)

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

(78)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)

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

(79)    (i76[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)

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

(80)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)

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

(81)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)

(82)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)

For Pair COND_LOAD560ARR4(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → INC1031(i75, +(i75, 1), i76, java.lang.Object(ARRAY(i76, a52dataNew))) the following chains were created:
• We consider the chain COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12]))) which results in the following constraint:

(83)    (COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12])≥NonInfC∧COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12])≥INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))∧(UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥))

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

(84)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_58] ≥ 0)

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

(85)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_58] ≥ 0)

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

(86)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_58] ≥ 0)

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

(87)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)

For Pair LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → COND_LOAD775(&&(&&(&&(>(i94, 0), >=(i76, 0)), >=(i94, i76)), >(+(i75, 1), 0)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
• We consider the chain LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))), COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) which results in the following constraint:

(88)    (i76[13]=i76[14]a52data[13]=a52data[14]i75[13]=i75[14]&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0))=TRUEi94[13]=i94[14]LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥NonInfC∧LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))∧(UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥))

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

(89)    (>(+(i75[13], 1), 0)=TRUE>=(i94[13], i76[13])=TRUE>(i94[13], 0)=TRUE>=(i76[13], 0)=TRUELOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥NonInfC∧LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))∧(UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥))

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

(90)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧[(-1)bso_60] ≥ 0)

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

(91)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧[(-1)bso_60] ≥ 0)

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

(92)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧[(-1)bso_60] ≥ 0)

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

(93)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧0 = 0∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧0 = 0∧[(-1)bso_60] ≥ 0)

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

(94)    (i75[13] ≥ 0∧i94[13] ≥ 0∧i76[13] + [-1] + i94[13] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧0 = 0∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧0 = 0∧[(-1)bso_60] ≥ 0)

For Pair COND_LOAD775(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560(+(i75, 1), i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
• We consider the chain COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) which results in the following constraint:

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

(96)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[1 + (-1)bso_62] ≥ 0)

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

(97)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[1 + (-1)bso_62] ≥ 0)

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

(98)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[1 + (-1)bso_62] ≥ 0)

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

(99)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_62] ≥ 0)

For Pair LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → COND_LOAD560(&&(&&(&&(&&(>(+(i75, 1), 0), >=(i76, 0)), >=(+(i75, 1), i76)), <(i75, -(i76, 1))), >(+(i75, 1), 0)), i75, i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
• We consider the chain LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))), COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) which results in the following constraint:

(100)    (i76[15]=i76[16]a52data[15]=a52data[16]i75[15]=i75[16]&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0))=TRUELOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))≥NonInfC∧LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))≥COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))∧(UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥))

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

(101)    (>(+(i75[15], 1), 0)=TRUE<(i75[15], -(i76[15], 1))=TRUE>=(+(i75[15], 1), i76[15])=TRUE>=(i76[15], 0)=TRUELOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))≥NonInfC∧LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))≥COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))∧(UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥))

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

(102)    (i75[15] ≥ 0∧i76[15] + [-2] + [-1]i75[15] ≥ 0∧i75[15] + [1] + [-1]i76[15] ≥ 0∧i76[15] ≥ 0 ⇒ (UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥)∧[(-1)bni_63 + (-1)Bound*bni_63] + [(-1)bni_63]i75[15] ≥ 0∧[(-1)bso_64] ≥ 0)

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

(103)    (i75[15] ≥ 0∧i76[15] + [-2] + [-1]i75[15] ≥ 0∧i75[15] + [1] + [-1]i76[15] ≥ 0∧i76[15] ≥ 0 ⇒ (UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥)∧[(-1)bni_63 + (-1)Bound*bni_63] + [(-1)bni_63]i75[15] ≥ 0∧[(-1)bso_64] ≥ 0)

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

(104)    (i75[15] ≥ 0∧i76[15] + [-2] + [-1]i75[15] ≥ 0∧i75[15] + [1] + [-1]i76[15] ≥ 0∧i76[15] ≥ 0 ⇒ (UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥)∧[(-1)bni_63 + (-1)Bound*bni_63] + [(-1)bni_63]i75[15] ≥ 0∧[(-1)bso_64] ≥ 0)

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

(105)    (i75[15] ≥ 0∧i76[15] + [-2] + [-1]i75[15] ≥ 0∧i75[15] + [1] + [-1]i76[15] ≥ 0∧i76[15] ≥ 0 ⇒ (UIncreasing(COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))), ≥)∧0 = 0∧[(-1)bni_63 + (-1)Bound*bni_63] + [(-1)bni_63]i75[15] ≥ 0∧0 = 0∧[(-1)bso_64] ≥ 0)

We solved constraint (105) using rule (IDP_SMT_SPLIT).

For Pair COND_LOAD560(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560(+(i75, 1), i76, java.lang.Object(ARRAY(i76, a52data))) the following chains were created:
• We consider the chain COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) which results in the following constraint:

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

(107)    ((UIncreasing(LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))), ≥)∧[1 + (-1)bso_66] ≥ 0)

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

(108)    ((UIncreasing(LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))), ≥)∧[1 + (-1)bso_66] ≥ 0)

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

(109)    ((UIncreasing(LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))), ≥)∧[1 + (-1)bso_66] ≥ 0)

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

(110)    ((UIncreasing(LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_66] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• INC1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775(i75, +(i94, 1), i76, java.lang.Object(ARRAY(i76, a52data)))
• ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_34] ≥ 0)

• LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
• ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_36] ≥ 0)

• LOAD775ARR1(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105, i112), >(i94, 0)), <(i94, i76)), >=(i75, 0)), <(i75, i76)), >(+(i94, 1), 0)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
• ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)
• ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_37 + (-1)Bound*bni_37] + [(-1)bni_37]i75[2] ≥ 0∧0 = 0∧[(-1)bso_38] ≥ 0)

• COND_LOAD775ARR1(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → LOAD775(i75, +(i94, 1), i76, java.lang.Object(ARRAY(i76, a52data)))
• ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_40] ≥ 0)

• LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
• ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_42] ≥ 0)

• LOAD560ARR2(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105, i112), >(+(i75, 1), 0)), <(+(i75, 1), i76)), >=(i75, 0)), <(i75, i76)), <(i75, -(i76, 1))), >(+(+(i75, 1), 1), 0)), i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105)
• (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)
• (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-1)bni_43 + (-1)Bound*bni_43] + [(-1)bni_43]i75[5] ≥ 0∧0 = 0∧[(-1)bso_44] ≥ 0)

• COND_LOAD560ARR2(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i112, i105) → LOAD775(i75, +(+(i75, 1), 1), i76, java.lang.Object(ARRAY(i76, a52data)))
• ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_46] ≥ 0)

• LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
• ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_48] ≥ 0)

• LOAD775ARR3(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94, 0), <(i94, i76)), >=(i75, 0)), <(i75, i76)), <(i105, i112)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
• (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)
• (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_49 + (-1)Bound*bni_49] + [(-1)bni_49]i75[8] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)

• COND_LOAD775ARR3(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → INC1031(i75, i94, i76, java.lang.Object(ARRAY(i76, a52dataNew)))
• ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)

• LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
• ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_54] ≥ 0)

• LOAD560ARR4(i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75, 1), 0), <(+(i75, 1), i76)), >=(i75, 0)), <(i75, i76)), <(i105, i112)), <(i75, -(i76, 1))), i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105)
• (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)
• (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]i75[11] ≥ 0∧0 = 0∧[(-1)bso_56] ≥ 0)

• COND_LOAD560ARR4(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data)), i152, i131, i112, i105) → INC1031(i75, +(i75, 1), i76, java.lang.Object(ARRAY(i76, a52dataNew)))
• ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)

• LOAD775(i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → COND_LOAD775(&&(&&(&&(>(i94, 0), >=(i76, 0)), >=(i94, i76)), >(+(i75, 1), 0)), i75, i94, i76, java.lang.Object(ARRAY(i76, a52data)))
• (i75[13] ≥ 0∧i94[13] ≥ 0∧i76[13] + [-1] + i94[13] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧0 = 0∧[(-1)bni_59 + (-1)Bound*bni_59] + [(-1)bni_59]i75[13] ≥ 0∧0 = 0∧[(-1)bso_60] ≥ 0)

• COND_LOAD775(TRUE, i75, i94, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560(+(i75, 1), i76, java.lang.Object(ARRAY(i76, a52data)))
• ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_62] ≥ 0)

• LOAD560(i75, i76, java.lang.Object(ARRAY(i76, a52data))) → COND_LOAD560(&&(&&(&&(&&(>(+(i75, 1), 0), >=(i76, 0)), >=(+(i75, 1), i76)), <(i75, -(i76, 1))), >(+(i75, 1), 0)), i75, i76, java.lang.Object(ARRAY(i76, a52data)))

• COND_LOAD560(TRUE, i75, i76, java.lang.Object(ARRAY(i76, a52data))) → LOAD560(+(i75, 1), i76, java.lang.Object(ARRAY(i76, a52data)))
• ((UIncreasing(LOAD560(+(i75[16], 1), i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_66] ≥ 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(INC1031(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x1
POL(java.lang.Object(x1)) = x1
POL(ARRAY(x1, x2)) = [-1]x1
POL(LOAD775(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x1
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(LOAD775ARR1(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x4 + [-1]x3 + [-1]x1
POL(COND_LOAD775ARR1(x1, x2, x3, x4, x5, x6, x7)) = [-1] + [-1]x5 + [-1]x4 + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(LOAD560(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1
POL(LOAD560ARR2(x1, x2, x3, x4, x5)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1
POL(COND_LOAD560ARR2(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2
POL(-(x1, x2)) = x1 + [-1]x2
POL(LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8)) = [-1] + [-1]x4 + [-1]x3 + [-1]x1
POL(COND_LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8, x9)) = [-1] + [-1]x5 + [-1]x4 + [-1]x2
POL(LOAD560ARR4(x1, x2, x3, x4, x5, x6, x7)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1
POL(COND_LOAD560ARR4(x1, x2, x3, x4, x5, x6, x7, x8)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2
POL(COND_LOAD775(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + [-1]x4 + [-1]x2
POL(COND_LOAD560(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + [-1]x2

The following pairs are in P>:

COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))

The following pairs are in Pbound:

LOAD560(i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15]))) → COND_LOAD560(&&(&&(&&(&&(>(+(i75[15], 1), 0), >=(i76[15], 0)), >=(+(i75[15], 1), i76[15])), <(i75[15], -(i76[15], 1))), >(+(i75[15], 1), 0)), i75[15], i76[15], java.lang.Object(ARRAY(i76[15], a52data[15])))

The following pairs are in P:

INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))

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:

Integer, Boolean

R is empty.

The integer pair graph contains the following rules and edges:
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))

(12) -> (0), if (((i76[12]* i76[0])∧(a52dataNew[12]* a52data[0]))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))

(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))

(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))

(6) -> (1), if ((i76[6]* i76[1])∧((i76[6]* i76[1])∧(a52data[6]* a52data[1]))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))

(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))

(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))

(4) -> (5), if (((i76[4]* i76[5])∧(a52data[4]* a52data[5]))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))

(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧((i76[5]* i76[6])∧(a52data[5]* a52data[6])))

(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))

(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))

(6) -> (7), if ((i75[6]* i75[7])∧((i76[6]* i76[7])∧(a52data[6]* a52data[7]))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))

(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))

(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))

(10) -> (11), if (((i76[10]* i76[11])∧(a52data[10]* a52data[11]))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))

(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧((i76[11]* i76[12])∧(a52data[11]* a52data[12]))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))

(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧((i76[0]* i76[13])∧(a52data[0]* a52data[13]))∧(i75[0]* i75[13]))

(3) -> (13), if (((i76[3]* i76[13])∧(a52data[3]* a52data[13]))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))

(6) -> (13), if (((i76[6]* i76[13])∧(a52data[6]* a52data[13]))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))

The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))

### (28) IDependencyGraphProof (EQUIVALENT transformation)

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

### (29) Obligation:

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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))

(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))

(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))

(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))

(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))

(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))

(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))

(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))

(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))

The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))

### (30) 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 COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) the following chains were created:
• We consider the chain COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

(1)    (COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥NonInfC∧COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))∧(UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥))

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

(2)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_18] ≥ 0)

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

(3)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_18] ≥ 0)

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

(4)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_18] ≥ 0)

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

(5)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)

For Pair LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) the following chains were created:
• We consider the chain LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]), COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

(6)    (i105[8]=i105[9]i94[8]=i94[9]i76[8]=i76[9]i112[8]=i112[9]i131[8]=i131[9]a52data[8]=a52data[9]i75[8]=i75[9]i152[8]=i152[9]&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8]))=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))

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

(7)    (<(i105[8], i112[8])=TRUE<(i75[8], i76[8])=TRUE>=(i75[8], 0)=TRUE>(i94[8], 0)=TRUE<(i94[8], i76[8])=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))

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

(8)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i76[8] ≥ 0∧[(-1)bso_20] ≥ 0)

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

(9)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i76[8] ≥ 0∧[(-1)bso_20] ≥ 0)

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

(10)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i76[8] ≥ 0∧[(-1)bso_20] ≥ 0)

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

(11)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)

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

(12)    (i112[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)

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

(13)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)

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

(14)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)

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

(15)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)

(16)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)

For Pair LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) the following chains were created:
• We consider the chain LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) which results in the following constraint:

(17)    (LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥NonInfC∧LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])∧(UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥))

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

(18)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_22] ≥ 0)

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

(19)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_22] ≥ 0)

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

(20)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_22] ≥ 0)

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

(21)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_22] ≥ 0)

For Pair COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) the following chains were created:
• We consider the chain COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

(22)    (COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥NonInfC∧COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))∧(UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥))

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

(23)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[1 + (-1)bso_24] ≥ 0)

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

(24)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[1 + (-1)bso_24] ≥ 0)

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

(25)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[1 + (-1)bso_24] ≥ 0)

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

(26)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_24] ≥ 0)

For Pair LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) the following chains were created:
• We consider the chain LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]), COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

(27)    (&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0))=TRUEi112[2]=i112[3]i94[2]=i94[3]i76[2]=i76[3]a52data[2]=a52data[3]i105[2]=i105[3]i75[2]=i75[3]LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))

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

(28)    (>(+(i94[2], 1), 0)=TRUE<(i75[2], i76[2])=TRUE>=(i75[2], 0)=TRUE<(i94[2], i76[2])=TRUE>=(i105[2], i112[2])=TRUE>(i94[2], 0)=TRUELOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))

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

(29)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_25 + (-1)Bound*bni_25] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧[(-1)bso_26] ≥ 0)

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

(30)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_25 + (-1)Bound*bni_25] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧[(-1)bso_26] ≥ 0)

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

(31)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-1)bni_25 + (-1)Bound*bni_25] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧[(-1)bso_26] ≥ 0)

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

(32)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)bni_25 + (-1)Bound*bni_25] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)

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

(33)    ([1] + i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-2)bni_25 + (-1)Bound*bni_25] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)

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

(34)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)

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

(35)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)

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

(36)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)

(37)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)

For Pair LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) the following chains were created:
• We consider the chain LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) which results in the following constraint:

(38)    (LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥NonInfC∧LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])∧(UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥))

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

(39)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_28] ≥ 0)

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

(40)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_28] ≥ 0)

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

(41)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_28] ≥ 0)

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

(42)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_28] ≥ 0)

For Pair INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) the following chains were created:
• We consider the chain INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) which results in the following constraint:

(43)    (INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥NonInfC∧INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))∧(UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥))

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

(44)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[1 + (-1)bso_30] ≥ 0)

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

(45)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[1 + (-1)bso_30] ≥ 0)

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

(46)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[1 + (-1)bso_30] ≥ 0)

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

(47)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_30] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
• ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)

• LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
• (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)
• (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]i94[8] + [bni_19]i75[8] + [bni_19]i76[8] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)

• LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
• ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_22] ≥ 0)

• COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
• ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_24] ≥ 0)

• LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
• ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)
• ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_25 + (-1)bni_25] + [bni_25]i75[2] + [bni_25]i76[2] + [(-1)bni_25]i94[2] ≥ 0∧0 = 0∧[(-1)bso_26] ≥ 0)

• LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
• ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_28] ≥ 0)

• INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
• ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_30] ≥ 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(COND_LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8, x9)) = [-1] + [-1]x3 + x4
POL(java.lang.Object(x1)) = x1
POL(ARRAY(x1, x2)) = [-1] + [-1]x2 + [-1]x1
POL(INC1031(x1, x2, x3, x4)) = [-1] + [-1]x2 + x3
POL(LOAD775ARR3(x1, x2, x3, x4, x5, x6, x7, x8)) = [-1] + [-1]x2 + x3
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = 0
POL(0) = 0
POL(<(x1, x2)) = 0
POL(>=(x1, x2)) = [-1]
POL(LOAD775(x1, x2, x3, x4)) = [-1] + [-1]x2 + x3
POL(COND_LOAD775ARR1(x1, x2, x3, x4, x5, x6, x7)) = [-1] + x4 + [-1]x3
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(LOAD775ARR1(x1, x2, x3, x4, x5, x6)) = [-1] + x3 + [-1]x2

The following pairs are in P>:

COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

The following pairs are in Pbound:

LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])

The following pairs are in P:

COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])

There are no usable rules.

### (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:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])

(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))

(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))

(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))

The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))

### (33) IDependencyGraphProof (EQUIVALENT transformation)

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

### (35) Obligation:

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

The following domains are used:

Integer

R is empty.

The integer pair graph contains the following rules and edges:
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))

(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))

(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))

(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))

(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))

The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))

### (36) IDependencyGraphProof (EQUIVALENT transformation)

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

### (38) Obligation:

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

The following domains are used:

Integer, Boolean

R is empty.

The integer pair graph contains the following rules and edges:
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(16): COND_LOAD560(TRUE, i75[16], i76[16], java.lang.Object(ARRAY(i76[16], a52data[16]))) → LOAD560(i75[16] + 1, i76[16], java.lang.Object(ARRAY(i76[16], a52data[16])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))

(12) -> (0), if (((i76[12]* i76[0])∧(a52dataNew[12]* a52data[0]))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))

(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))

(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))

(6) -> (1), if ((i76[6]* i76[1])∧((i76[6]* i76[1])∧(a52data[6]* a52data[1]))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))

(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))

(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))

(14) -> (4), if ((i75[14] + 1* i75[4])∧((i76[14]* i76[4])∧(a52data[14]* a52data[4]))∧(i76[14]* i76[4]))

(16) -> (4), if ((i75[16] + 1* i75[4])∧(i76[16]* i76[4])∧((i76[16]* i76[4])∧(a52data[16]* a52data[4])))

(4) -> (5), if (((i76[4]* i76[5])∧(a52data[4]* a52data[5]))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))

(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧((i76[5]* i76[6])∧(a52data[5]* a52data[6])))

(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))

(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))

(6) -> (7), if ((i75[6]* i75[7])∧((i76[6]* i76[7])∧(a52data[6]* a52data[7]))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))

(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))

(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))

(14) -> (10), if ((i75[14] + 1* i75[10])∧((i76[14]* i76[10])∧(a52data[14]* a52data[10]))∧(i76[14]* i76[10]))

(16) -> (10), if ((i76[16]* i76[10])∧(i75[16] + 1* i75[10])∧((i76[16]* i76[10])∧(a52data[16]* a52data[10])))

(10) -> (11), if (((i76[10]* i76[11])∧(a52data[10]* a52data[11]))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))

(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧((i76[11]* i76[12])∧(a52data[11]* a52data[12]))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))

(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧((i76[0]* i76[13])∧(a52data[0]* a52data[13]))∧(i75[0]* i75[13]))

(3) -> (13), if (((i76[3]* i76[13])∧(a52data[3]* a52data[13]))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))

(6) -> (13), if (((i76[6]* i76[13])∧(a52data[6]* a52data[13]))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))

(13) -> (14), if (((i76[13]* i76[14])∧(a52data[13]* a52data[14]))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))

The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))

### (39) IDependencyGraphProof (EQUIVALENT transformation)

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

### (40) Obligation:

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

The following domains are used:

Integer, Boolean

R is empty.

The integer pair graph contains the following rules and edges:
(12): COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], i75[12] + 1, i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
(11): LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1, i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
(10): LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
(6): COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], i75[6] + 1 + 1, i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
(5): LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0, i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
(4): LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])
(14): COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(i75[14] + 1, i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))
(13): LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0, i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))
(9): COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))
(8): LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8], i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])
(7): LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])
(3): COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], i94[3] + 1, i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))
(2): LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0, i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])
(1): LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])
(0): INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], i94[0] + 1, i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))

(9) -> (0), if (((i76[9]* i76[0])∧(a52dataNew[9]* a52data[0]))∧(i76[9]* i76[0])∧(i75[9]* i75[0])∧(i94[9]* i94[0]))

(12) -> (0), if (((i76[12]* i76[0])∧(a52dataNew[12]* a52data[0]))∧(i75[12]* i75[0])∧(i75[12] + 1* i94[0])∧(i76[12]* i76[0]))

(0) -> (1), if (((i76[0]* i76[1])∧(a52data[0]* a52data[1]))∧(i94[0] + 1* i94[1])∧(i76[0]* i76[1])∧(i75[0]* i75[1]))

(3) -> (1), if ((i75[3]* i75[1])∧(i94[3] + 1* i94[1])∧((i76[3]* i76[1])∧(a52data[3]* a52data[1]))∧(i76[3]* i76[1]))

(6) -> (1), if ((i76[6]* i76[1])∧((i76[6]* i76[1])∧(a52data[6]* a52data[1]))∧(i75[6]* i75[1])∧(i75[6] + 1 + 1* i94[1]))

(1) -> (2), if (((i76[1]* i76[2])∧(a52data[1]* a52data[2]))∧(i76[1]* i76[2])∧(i75[1]* i75[2])∧(i94[1]* i94[2])∧(i105[1]* i105[2])∧(i112[1]* i112[2]))

(2) -> (3), if ((i105[2] >= i112[2] && i94[2] > 0 && i94[2] < i76[2] && i75[2] >= 0 && i75[2] < i76[2] && i94[2] + 1 > 0* TRUE)∧(i112[2]* i112[3])∧(i94[2]* i94[3])∧(i76[2]* i76[3])∧((i76[2]* i76[3])∧(a52data[2]* a52data[3]))∧(i105[2]* i105[3])∧(i75[2]* i75[3]))

(14) -> (4), if ((i75[14] + 1* i75[4])∧((i76[14]* i76[4])∧(a52data[14]* a52data[4]))∧(i76[14]* i76[4]))

(4) -> (5), if (((i76[4]* i76[5])∧(a52data[4]* a52data[5]))∧(i76[4]* i76[5])∧(i112[4]* i112[5])∧(i105[4]* i105[5])∧(i75[4]* i75[5]))

(5) -> (6), if ((i76[5]* i76[6])∧(i105[5] >= i112[5] && i75[5] + 1 > 0 && i75[5] + 1 < i76[5] && i75[5] >= 0 && i75[5] < i76[5] && i75[5] < i76[5] - 1 && i75[5] + 1 + 1 > 0* TRUE)∧(i105[5]* i105[6])∧(i112[5]* i112[6])∧(i75[5]* i75[6])∧((i76[5]* i76[6])∧(a52data[5]* a52data[6])))

(0) -> (7), if ((i94[0] + 1* i94[7])∧(i76[0]* i76[7])∧(i75[0]* i75[7])∧((i76[0]* i76[7])∧(a52data[0]* a52data[7])))

(3) -> (7), if (((i76[3]* i76[7])∧(a52data[3]* a52data[7]))∧(i76[3]* i76[7])∧(i94[3] + 1* i94[7])∧(i75[3]* i75[7]))

(6) -> (7), if ((i75[6]* i75[7])∧((i76[6]* i76[7])∧(a52data[6]* a52data[7]))∧(i76[6]* i76[7])∧(i75[6] + 1 + 1* i94[7]))

(7) -> (8), if ((i112[7]* i112[8])∧((i76[7]* i76[8])∧(a52data[7]* a52data[8]))∧(i94[7]* i94[8])∧(i105[7]* i105[8])∧(i131[7]* i131[8])∧(i76[7]* i76[8])∧(i152[7]* i152[8])∧(i75[7]* i75[8]))

(8) -> (9), if ((i105[8]* i105[9])∧(i94[8]* i94[9])∧(i76[8]* i76[9])∧(i112[8]* i112[9])∧(i131[8]* i131[9])∧((i76[8]* i76[9])∧(a52data[8]* a52data[9]))∧(i75[8]* i75[9])∧(i152[8]* i152[9])∧(i94[8] > 0 && i94[8] < i76[8] && i75[8] >= 0 && i75[8] < i76[8] && i105[8] < i112[8]* TRUE))

(14) -> (10), if ((i75[14] + 1* i75[10])∧((i76[14]* i76[10])∧(a52data[14]* a52data[10]))∧(i76[14]* i76[10]))

(10) -> (11), if (((i76[10]* i76[11])∧(a52data[10]* a52data[11]))∧(i112[10]* i112[11])∧(i76[10]* i76[11])∧(i75[10]* i75[11])∧(i131[10]* i131[11])∧(i105[10]* i105[11])∧(i152[10]* i152[11]))

(11) -> (12), if ((i112[11]* i112[12])∧(i105[11]* i105[12])∧(i76[11]* i76[12])∧(i75[11]* i75[12])∧(i75[11] + 1 > 0 && i75[11] + 1 < i76[11] && i75[11] >= 0 && i75[11] < i76[11] && i105[11] < i112[11] && i75[11] < i76[11] - 1* TRUE)∧((i76[11]* i76[12])∧(a52data[11]* a52data[12]))∧(i131[11]* i131[12])∧(i152[11]* i152[12]))

(0) -> (13), if ((i76[0]* i76[13])∧(i94[0] + 1* i94[13])∧((i76[0]* i76[13])∧(a52data[0]* a52data[13]))∧(i75[0]* i75[13]))

(3) -> (13), if (((i76[3]* i76[13])∧(a52data[3]* a52data[13]))∧(i75[3]* i75[13])∧(i94[3] + 1* i94[13])∧(i76[3]* i76[13]))

(6) -> (13), if (((i76[6]* i76[13])∧(a52data[6]* a52data[13]))∧(i76[6]* i76[13])∧(i75[6] + 1 + 1* i94[13])∧(i75[6]* i75[13]))

(13) -> (14), if (((i76[13]* i76[14])∧(a52data[13]* a52data[14]))∧(i75[13]* i75[14])∧(i94[13] > 0 && i76[13] >= 0 && i94[13] >= i76[13] && i75[13] + 1 > 0* TRUE)∧(i94[13]* i94[14])∧(i76[13]* i76[14]))

The set Q consists of the following terms:
Inc1031(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))
Load775ARR1(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Cond_Load775ARR1(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5)
Load560ARR2(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Cond_Load560ARR2(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4)
Load775ARR3(x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Cond_Load775ARR3(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)), x4, x5, x6, x7)
Load560ARR4(x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load560ARR4(TRUE, x0, x1, java.lang.Object(ARRAY(x1, x2)), x3, x4, x5, x6)
Cond_Load775(TRUE, x0, x1, x2, java.lang.Object(ARRAY(x2, x3)))

### (41) 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 COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12]))) the following chains were created:
• We consider the chain COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12]))) which results in the following constraint:

(1)    (COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12])≥NonInfC∧COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12])≥INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))∧(UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥))

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

(2)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_21] ≥ 0)

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

(3)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_21] ≥ 0)

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

(4)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧[(-1)bso_21] ≥ 0)

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

(5)    ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_21] ≥ 0)

For Pair LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) the following chains were created:
• We consider the chain LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]), COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12]))) which results in the following constraint:

(6)    (i112[11]=i112[12]i105[11]=i105[12]i76[11]=i76[12]i75[11]=i75[12]&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1)))=TRUEa52data[11]=a52data[12]i131[11]=i131[12]i152[11]=i152[12]LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥NonInfC∧LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])∧(UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥))

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

(7)    (<(i75[11], -(i76[11], 1))=TRUE<(i105[11], i112[11])=TRUE<(i75[11], i76[11])=TRUE>=(i75[11], 0)=TRUE>(+(i75[11], 1), 0)=TRUE<(+(i75[11], 1), i76[11])=TRUELOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥NonInfC∧LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])≥COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])∧(UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥))

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

(8)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-3)bni_22 + (-1)Bound*bni_22] + [(3)bni_22]i76[11] + [(-1)bni_22]i75[11] ≥ 0∧[(-1)bso_23] ≥ 0)

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

(9)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-3)bni_22 + (-1)Bound*bni_22] + [(3)bni_22]i76[11] + [(-1)bni_22]i75[11] ≥ 0∧[(-1)bso_23] ≥ 0)

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

(10)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧[(-3)bni_22 + (-1)Bound*bni_22] + [(3)bni_22]i76[11] + [(-1)bni_22]i75[11] ≥ 0∧[(-1)bso_23] ≥ 0)

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

(11)    (i76[11] + [-2] + [-1]i75[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧i76[11] + [-1] + [-1]i75[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] + [-2] + [-1]i75[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(-3)bni_22 + (-1)Bound*bni_22] + [(3)bni_22]i76[11] + [(-1)bni_22]i75[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)

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

(12)    (i76[11] ≥ 0∧i112[11] + [-1] + [-1]i105[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)

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

(13)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)

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

(14)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)

(15)    (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)

For Pair LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10]) the following chains were created:
• We consider the chain LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10]) which results in the following constraint:

(16)    (LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])))≥NonInfC∧LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])))≥LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])∧(UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥))

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

(17)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[1 + (-1)bso_25] ≥ 0)

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

(18)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[1 + (-1)bso_25] ≥ 0)

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

(19)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧[1 + (-1)bso_25] ≥ 0)

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

(20)    ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_25] ≥ 0)

For Pair COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6]))) the following chains were created:
• We consider the chain COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6]))) which results in the following constraint:

(21)    (COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6])≥NonInfC∧COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6])≥LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))∧(UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥))

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

(22)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[1 + (-1)bso_27] ≥ 0)

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

(23)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[1 + (-1)bso_27] ≥ 0)

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

(24)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧[1 + (-1)bso_27] ≥ 0)

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

(25)    ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_27] ≥ 0)

For Pair LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) the following chains were created:
• We consider the chain LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]), COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6]))) which results in the following constraint:

(26)    (i76[5]=i76[6]&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0))=TRUEi105[5]=i105[6]i112[5]=i112[6]i75[5]=i75[6]a52data[5]=a52data[6]LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥NonInfC∧LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])∧(UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥))

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

(27)    (>(+(+(i75[5], 1), 1), 0)=TRUE<(i75[5], -(i76[5], 1))=TRUE<(i75[5], i76[5])=TRUE>=(i75[5], 0)=TRUE<(+(i75[5], 1), i76[5])=TRUE>=(i105[5], i112[5])=TRUE>(+(i75[5], 1), 0)=TRUELOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥NonInfC∧LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])≥COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])∧(UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥))

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

(28)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-2)bni_28 + (-1)Bound*bni_28] + [(3)bni_28]i76[5] + [(-1)bni_28]i75[5] ≥ 0∧[(-1)bso_29] ≥ 0)

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

(29)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-2)bni_28 + (-1)Bound*bni_28] + [(3)bni_28]i76[5] + [(-1)bni_28]i75[5] ≥ 0∧[(-1)bso_29] ≥ 0)

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

(30)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧[(-2)bni_28 + (-1)Bound*bni_28] + [(3)bni_28]i76[5] + [(-1)bni_28]i75[5] ≥ 0∧[(-1)bso_29] ≥ 0)

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

(31)    (i75[5] + [1] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i76[5] + [-1] + [-1]i75[5] ≥ 0∧i75[5] ≥ 0∧i76[5] + [-2] + [-1]i75[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(-2)bni_28 + (-1)Bound*bni_28] + [(3)bni_28]i76[5] + [(-1)bni_28]i75[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)

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

(32)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] + [-1]i112[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(4)bni_28 + (-1)Bound*bni_28] + [(2)bni_28]i75[5] + [(3)bni_28]i76[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)

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

(33)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(4)bni_28 + (-1)Bound*bni_28] + [(2)bni_28]i75[5] + [(3)bni_28]i76[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)

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

(34)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(4)bni_28 + (-1)Bound*bni_28] + [(2)bni_28]i75[5] + [(3)bni_28]i76[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)

(35)    (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(4)bni_28 + (-1)Bound*bni_28] + [(2)bni_28]i75[5] + [(3)bni_28]i76[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)

For Pair LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4]) the following chains were created:
• We consider the chain LOAD560(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4]))) → LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4]) which results in the following constraint:

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

(37)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_31] ≥ 0)

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

(38)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_31] ≥ 0)

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

(39)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧[(-1)bso_31] ≥ 0)

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

(40)    ((UIncreasing(LOAD560ARR2(i75[4], i76[4], java.lang.Object(ARRAY(i76[4], a52data[4])), i112[4], i105[4])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_31] ≥ 0)

For Pair COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) the following chains were created:
• We consider the chain COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) which results in the following constraint:

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

(42)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[(-1)bso_33] ≥ 0)

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

(43)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[(-1)bso_33] ≥ 0)

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

(44)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧[(-1)bso_33] ≥ 0)

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

(45)    ((UIncreasing(LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_33] ≥ 0)

For Pair LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) the following chains were created:
• We consider the chain LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))) → COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13]))), COND_LOAD775(TRUE, i75[14], i94[14], i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) → LOAD560(+(i75[14], 1), i76[14], java.lang.Object(ARRAY(i76[14], a52data[14]))) which results in the following constraint:

(46)    (i76[13]=i76[14]a52data[13]=a52data[14]i75[13]=i75[14]&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0))=TRUEi94[13]=i94[14]LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥NonInfC∧LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))∧(UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥))

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

(47)    (>(+(i75[13], 1), 0)=TRUE>=(i94[13], i76[13])=TRUE>(i94[13], 0)=TRUE>=(i76[13], 0)=TRUELOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥NonInfC∧LOAD775(i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))≥COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))∧(UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥))

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

(48)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-3)bni_34 + (-1)Bound*bni_34] + [(3)bni_34]i76[13] + [(-1)bni_34]i75[13] ≥ 0∧[(-1)bso_35] ≥ 0)

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

(49)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-3)bni_34 + (-1)Bound*bni_34] + [(3)bni_34]i76[13] + [(-1)bni_34]i75[13] ≥ 0∧[(-1)bso_35] ≥ 0)

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

(50)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧[(-3)bni_34 + (-1)Bound*bni_34] + [(3)bni_34]i76[13] + [(-1)bni_34]i75[13] ≥ 0∧[(-1)bso_35] ≥ 0)

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

(51)    (i75[13] ≥ 0∧i94[13] + [-1]i76[13] ≥ 0∧i94[13] + [-1] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧0 = 0∧[(-3)bni_34 + (-1)Bound*bni_34] + [(3)bni_34]i76[13] + [(-1)bni_34]i75[13] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)

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

(52)    (i75[13] ≥ 0∧i94[13] ≥ 0∧i76[13] + [-1] + i94[13] ≥ 0∧i76[13] ≥ 0 ⇒ (UIncreasing(COND_LOAD775(&&(&&(&&(>(i94[13], 0), >=(i76[13], 0)), >=(i94[13], i76[13])), >(+(i75[13], 1), 0)), i75[13], i94[13], i76[13], java.lang.Object(ARRAY(i76[13], a52data[13])))), ≥)∧0 = 0∧[(-3)bni_34 + (-1)Bound*bni_34] + [(3)bni_34]i76[13] + [(-1)bni_34]i75[13] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)

For Pair COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) the following chains were created:
• We consider the chain COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

(53)    (COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥NonInfC∧COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9])≥INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))∧(UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥))

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

(54)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_37] ≥ 0)

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

(55)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_37] ≥ 0)

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

(56)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧[(-1)bso_37] ≥ 0)

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

(57)    ((UIncreasing(INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_37] ≥ 0)

For Pair LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) the following chains were created:
• We consider the chain LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]) → COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8]), COND_LOAD775ARR3(TRUE, i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52data[9])), i152[9], i131[9], i112[9], i105[9]) → INC1031(i75[9], i94[9], i76[9], java.lang.Object(ARRAY(i76[9], a52dataNew[9]))) which results in the following constraint:

(58)    (i105[8]=i105[9]i94[8]=i94[9]i76[8]=i76[9]i112[8]=i112[9]i131[8]=i131[9]a52data[8]=a52data[9]i75[8]=i75[9]i152[8]=i152[9]&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8]))=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))

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

(59)    (<(i105[8], i112[8])=TRUE<(i75[8], i76[8])=TRUE>=(i75[8], 0)=TRUE>(i94[8], 0)=TRUE<(i94[8], i76[8])=TRUELOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥NonInfC∧LOAD775ARR3(i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])≥COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])∧(UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥))

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

(60)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-3)bni_38 + (-1)Bound*bni_38] + [(3)bni_38]i76[8] + [(-1)bni_38]i75[8] ≥ 0∧[(-1)bso_39] ≥ 0)

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

(61)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-3)bni_38 + (-1)Bound*bni_38] + [(3)bni_38]i76[8] + [(-1)bni_38]i75[8] ≥ 0∧[(-1)bso_39] ≥ 0)

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

(62)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧[(-3)bni_38 + (-1)Bound*bni_38] + [(3)bni_38]i76[8] + [(-1)bni_38]i75[8] ≥ 0∧[(-1)bso_39] ≥ 0)

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

(63)    (i112[8] + [-1] + [-1]i105[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-3)bni_38 + (-1)Bound*bni_38] + [(3)bni_38]i76[8] + [(-1)bni_38]i75[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)

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

(64)    (i112[8] ≥ 0∧i76[8] + [-1] + [-1]i75[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i76[8] + [-1] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-3)bni_38 + (-1)Bound*bni_38] + [(3)bni_38]i76[8] + [(-1)bni_38]i75[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)

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

(65)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] + [-1] ≥ 0∧i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_38] + [(2)bni_38]i75[8] + [(3)bni_38]i76[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)

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

(66)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_38] + [(2)bni_38]i75[8] + [(3)bni_38]i76[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)

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

(67)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_38] + [(2)bni_38]i75[8] + [(3)bni_38]i76[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)

(68)    (i112[8] ≥ 0∧i76[8] ≥ 0∧i75[8] ≥ 0∧i94[8] ≥ 0∧[-1] + i75[8] + i76[8] + [-1]i94[8] ≥ 0∧i105[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR3(&&(&&(&&(&&(>(i94[8], 0), <(i94[8], i76[8])), >=(i75[8], 0)), <(i75[8], i76[8])), <(i105[8], i112[8])), i75[8], i94[8], i76[8], java.lang.Object(ARRAY(i76[8], a52data[8])), i152[8], i131[8], i112[8], i105[8])), ≥)∧0 = 0∧[(-1)Bound*bni_38] + [(2)bni_38]i75[8] + [(3)bni_38]i76[8] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)

For Pair LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) the following chains were created:
• We consider the chain LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7]))) → LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7]) which results in the following constraint:

(69)    (LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥NonInfC∧LOAD775(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])))≥LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])∧(UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥))

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

(70)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_41] ≥ 0)

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

(71)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_41] ≥ 0)

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

(72)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧[(-1)bso_41] ≥ 0)

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

(73)    ((UIncreasing(LOAD775ARR3(i75[7], i94[7], i76[7], java.lang.Object(ARRAY(i76[7], a52data[7])), i152[7], i131[7], i112[7], i105[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_41] ≥ 0)

For Pair COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) the following chains were created:
• We consider the chain COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

(74)    (COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥NonInfC∧COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3])≥LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))∧(UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥))

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

(75)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_43] ≥ 0)

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

(76)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_43] ≥ 0)

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

(77)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧[(-1)bso_43] ≥ 0)

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

(78)    ((UIncreasing(LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_43] ≥ 0)

For Pair LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) the following chains were created:
• We consider the chain LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]) → COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2]), COND_LOAD775ARR1(TRUE, i75[3], i94[3], i76[3], java.lang.Object(ARRAY(i76[3], a52data[3])), i112[3], i105[3]) → LOAD775(i75[3], +(i94[3], 1), i76[3], java.lang.Object(ARRAY(i76[3], a52data[3]))) which results in the following constraint:

(79)    (&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0))=TRUEi112[2]=i112[3]i94[2]=i94[3]i76[2]=i76[3]a52data[2]=a52data[3]i105[2]=i105[3]i75[2]=i75[3]LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))

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

(80)    (>(+(i94[2], 1), 0)=TRUE<(i75[2], i76[2])=TRUE>=(i75[2], 0)=TRUE<(i94[2], i76[2])=TRUE>=(i105[2], i112[2])=TRUE>(i94[2], 0)=TRUELOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥NonInfC∧LOAD775ARR1(i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])≥COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])∧(UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥))

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

(81)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-3)bni_44 + (-1)Bound*bni_44] + [(3)bni_44]i76[2] + [(-1)bni_44]i75[2] ≥ 0∧[(-1)bso_45] ≥ 0)

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

(82)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-3)bni_44 + (-1)Bound*bni_44] + [(3)bni_44]i76[2] + [(-1)bni_44]i75[2] ≥ 0∧[(-1)bso_45] ≥ 0)

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

(83)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧[(-3)bni_44 + (-1)Bound*bni_44] + [(3)bni_44]i76[2] + [(-1)bni_44]i75[2] ≥ 0∧[(-1)bso_45] ≥ 0)

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

(84)    (i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-1] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-3)bni_44 + (-1)Bound*bni_44] + [(3)bni_44]i76[2] + [(-1)bni_44]i75[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)

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

(85)    ([1] + i94[2] ≥ 0∧i76[2] + [-1] + [-1]i75[2] ≥ 0∧i75[2] ≥ 0∧i76[2] + [-2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-3)bni_44 + (-1)Bound*bni_44] + [(3)bni_44]i76[2] + [(-1)bni_44]i75[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)

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

(86)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] + [-1]i112[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_44] + [(2)bni_44]i75[2] + [(3)bni_44]i76[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)

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

(87)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_44] + [(2)bni_44]i75[2] + [(3)bni_44]i76[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)

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

(88)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_44] + [(2)bni_44]i75[2] + [(3)bni_44]i76[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)

(89)    ([1] + i94[2] ≥ 0∧i76[2] ≥ 0∧i75[2] ≥ 0∧[-1] + i75[2] + i76[2] + [-1]i94[2] ≥ 0∧i105[2] ≥ 0∧i94[2] ≥ 0∧i112[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD775ARR1(&&(&&(&&(&&(&&(>=(i105[2], i112[2]), >(i94[2], 0)), <(i94[2], i76[2])), >=(i75[2], 0)), <(i75[2], i76[2])), >(+(i94[2], 1), 0)), i75[2], i94[2], i76[2], java.lang.Object(ARRAY(i76[2], a52data[2])), i112[2], i105[2])), ≥)∧0 = 0∧[(-1)Bound*bni_44] + [(2)bni_44]i75[2] + [(3)bni_44]i76[2] ≥ 0∧0 = 0∧[(-1)bso_45] ≥ 0)

For Pair LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) the following chains were created:
• We consider the chain LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1]))) → LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1]) which results in the following constraint:

(90)    (LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥NonInfC∧LOAD775(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])))≥LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])∧(UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥))

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

(91)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_47] ≥ 0)

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

(92)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_47] ≥ 0)

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

(93)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧[(-1)bso_47] ≥ 0)

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

(94)    ((UIncreasing(LOAD775ARR1(i75[1], i94[1], i76[1], java.lang.Object(ARRAY(i76[1], a52data[1])), i112[1], i105[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_47] ≥ 0)

For Pair INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) the following chains were created:
• We consider the chain INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) → LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0]))) which results in the following constraint:

(95)    (INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥NonInfC∧INC1031(i75[0], i94[0], i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))≥LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))∧(UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥))

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

(96)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_49] ≥ 0)

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

(97)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_49] ≥ 0)

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

(98)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧[(-1)bso_49] ≥ 0)

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

(99)    ((UIncreasing(LOAD775(i75[0], +(i94[0], 1), i76[0], java.lang.Object(ARRAY(i76[0], a52data[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_49] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• COND_LOAD560ARR4(TRUE, i75[12], i76[12], java.lang.Object(ARRAY(i76[12], a52data[12])), i152[12], i131[12], i112[12], i105[12]) → INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))
• ((UIncreasing(INC1031(i75[12], +(i75[12], 1), i76[12], java.lang.Object(ARRAY(i76[12], a52dataNew[12])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_21] ≥ 0)

• LOAD560ARR4(i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11]) → COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])
• (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)
• (i76[11] ≥ 0∧i112[11] ≥ 0∧[1] + i76[11] ≥ 0∧i75[11] ≥ 0∧i75[11] ≥ 0∧i76[11] ≥ 0∧i105[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR4(&&(&&(&&(&&(&&(>(+(i75[11], 1), 0), <(+(i75[11], 1), i76[11])), >=(i75[11], 0)), <(i75[11], i76[11])), <(i105[11], i112[11])), <(i75[11], -(i76[11], 1))), i75[11], i76[11], java.lang.Object(ARRAY(i76[11], a52data[11])), i152[11], i131[11], i112[11], i105[11])), ≥)∧0 = 0∧[(3)bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i75[11] + [(3)bni_22]i76[11] ≥ 0∧0 = 0∧[(-1)bso_23] ≥ 0)

• LOAD560(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10]))) → LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])
• ((UIncreasing(LOAD560ARR4(i75[10], i76[10], java.lang.Object(ARRAY(i76[10], a52data[10])), i152[10], i131[10], i112[10], i105[10])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_25] ≥ 0)

• COND_LOAD560ARR2(TRUE, i75[6], i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])), i112[6], i105[6]) → LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))
• ((UIncreasing(LOAD775(i75[6], +(+(i75[6], 1), 1), i76[6], java.lang.Object(ARRAY(i76[6], a52data[6])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_27] ≥ 0)

• LOAD560ARR2(i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5]) → COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])
• (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5], i112[5]), >(+(i75[5], 1), 0)), <(+(i75[5], 1), i76[5])), >=(i75[5], 0)), <(i75[5], i76[5])), <(i75[5], -(i76[5], 1))), >(+(+(i75[5], 1), 1), 0)), i75[5], i76[5], java.lang.Object(ARRAY(i76[5], a52data[5])), i112[5], i105[5])), ≥)∧0 = 0∧[(4)bni_28 + (-1)Bound*bni_28] + [(2)bni_28]i75[5] + [(3)bni_28]i76[5] ≥ 0∧0 = 0∧[(-1)bso_29] ≥ 0)
• (i75[5] + [1] ≥ 0∧i76[5] ≥ 0∧[1] + i76[5] ≥ 0∧i75[5] ≥ 0∧i76[5] ≥ 0∧i105[5] ≥ 0∧i75[5] ≥ 0∧i112[5] ≥ 0 ⇒ (UIncreasing(COND_LOAD560ARR2(&&(&&(&&(&&(&&(&&(>=(i105[5]