### (0) Obligation:

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

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

### (1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

### (2) Obligation:

FIGraph based on JBC Program:
Graph of 425 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:
Load2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Cond_Load2305ARR1(i118 > 0 && i118 < i3 && i477 > 0 && i118 + 1 > 0, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Load3607(java.lang.Object(ARRAY(i3, a2436data)), i118 + 1, o1856, i477, o1856, i771, o1856)
JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1284, o3274) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1284, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Cond_Load3607(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311)))
Cond_Load3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238 + -1, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141) → Cond_Load36071(i1238 > 0 && i1238 <= 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, o3141)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, NULL) → Cond_Load36072(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, NULL)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, NULL) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, NULL)
Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → Cond_Load36073(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238 + -1, o3280)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, 0, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), i1291)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), i1291)
The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, NULL)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(IntList(x3, x4)), x6, java.lang.Object(IntList(x3, x4)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, NULL)

### (6) GroundTermsRemoverProof (EQUIVALENT transformation)

Some arguments are removed because they always contain the same ground term.
We removed the following ground terms:
• NULL

We removed arguments according to the following replacements:

Cond_Load36072(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load36072(x1, x2, x3, x4, x5, x6, x7)

### (7) Obligation:

ITRS problem:

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

The TRS R consists of the following rules:
Load2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Cond_Load2305ARR1(i118 > 0 && i118 < i3 && i477 > 0 && i118 + 1 > 0, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Load3607(java.lang.Object(ARRAY(i3, a2436data)), i118 + 1, o1856, i477, o1856, i771, o1856)
JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1284, o3274) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1284, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Cond_Load3607(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311)))
Cond_Load3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238 + -1, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141) → Cond_Load36071(i1238 > 0 && i1238 <= 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, o3141)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, NULL) → Cond_Load36072(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, NULL)
Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → Cond_Load36073(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238 + -1, o3280)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, 0, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), i1291)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), i1291)
The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(IntList(x3, x4)), x6, java.lang.Object(IntList(x3, x4)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, NULL)

### (8) DuplicateArgsRemoverProof (EQUIVALENT transformation)

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

Load3607(x1, x2, x3, x4, x5, x6, x7) → Load3607(x1, x2, x4, x5, x6, x7)
Return3818(x1, x2, x3, x4, x5, x6) → Return3818(x1, x2, x4, x5, x6)
Load3637(x1, x2, x3, x4, x5, x6) → Load3637(x1, x2, x4, x5, x6)
JMP3960(x1, x2, x3, x4, x5, x6, x7) → JMP3960(x1, x2, x4, x5, x6, x7)
Cond_Load36073(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load36073(x1, x2, x3, x5, x7, x8)
Cond_Load36072(x1, x2, x3, x4, x5, x6, x7) → Cond_Load36072(x1, x2, x3, x5, x6, x7)
Cond_Load36071(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load36071(x1, x2, x3, x5, x6, x7, x8)
Cond_Load3607(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load3607(x1, x2, x3, x5, x6, x7, x8)

### (9) 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:
Load2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Cond_Load2305ARR1(i118 > 0 && i118 < i3 && i477 > 0 && i118 + 1 > 0, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Load3607(java.lang.Object(ARRAY(i3, a2436data)), i118 + 1, i477, o1856, i771, o1856)
JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Cond_Load3607(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311)))
Cond_Load3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238 + -1, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → Cond_Load36071(i1238 > 0 && i1238 <= 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, o3141)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, NULL) → Cond_Load36072(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL)
Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → Cond_Load36073(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238 + -1, o3280)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)
The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

### (11) Obligation:

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

The following domains are used:

Boolean, Integer

The ITRS R consists of the following rules:
Load2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Cond_Load2305ARR1(i118 > 0 && i118 < i3 && i477 > 0 && i118 + 1 > 0, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Load3607(java.lang.Object(ARRAY(i3, a2436data)), i118 + 1, i477, o1856, i771, o1856)
JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Cond_Load3607(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311)))
Cond_Load3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238 + -1, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → Cond_Load36071(i1238 > 0 && i1238 <= 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, o3141)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, NULL) → Cond_Load36072(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL)
Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → Cond_Load36073(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238 + -1, o3280)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)

The integer pair graph contains the following rules and edges:
(0): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
(1): LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
(2): COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2] + 1, i477[2], o1856[2], i771[2], o1856[2])
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(6): LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(i1238[6] > 0 && i1238[6] <= 1, java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(8): LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(i1238[8] > 1, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
(9): COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(17): LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])

(0) -> (1), if ((java.lang.Object(IntList(o1856[0], i480[0])) →* java.lang.Object(IntList(o1856[1], i480[1])))∧(i118[0]* i118[1])∧(i477[0]* i477[1])∧(java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])) →* java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))∧(java.lang.Object(ARRAY(i3[0], a2436data[0])) →* java.lang.Object(ARRAY(i3[1], a2436data[1]))))

(1) -> (2), if ((i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0* TRUE)∧(i477[1]* i477[2])∧(java.lang.Object(IntList(o1856[1], i480[1])) →* java.lang.Object(IntList(o1856[2], i480[2])))∧(java.lang.Object(ARRAY(i3[1], a2436data[1])) →* java.lang.Object(ARRAY(i3[2], a2436data[2])))∧(java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])) →* java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2])))∧(i118[1]* i118[2]))

(2) -> (4), if ((o1856[2]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i118[2] + 1* i615[4])∧(i771[2]* i1238[4])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[4], a4210data[4])))∧(i477[2]* i477[4])∧(o1856[2]* o3142[4]))

(2) -> (6), if ((o1856[2]* o3142[6])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[6], a4210data[6])))∧(o1856[2]* o3141[6])∧(i118[2] + 1* i615[6])∧(i771[2]* i1238[6])∧(i477[2]* i477[6]))

(2) -> (8), if ((i771[2]* i1238[8])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(i477[2]* i477[8])∧(i118[2] + 1* i615[8])∧(o1856[2]* o3142[8])∧(o1856[2]* NULL))

(2) -> (13), if ((i771[2]* 0)∧(o1856[2]* o3142[13])∧(i477[2]* i477[13])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[13], a4210data[13])))∧(o1856[2]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i118[2] + 1* i615[13]))

(2) -> (14), if ((java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[14], a4210data[14])))∧(i477[2]* i477[14])∧(o1856[2]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i771[2]* i1238[14])∧(i118[2] + 1* i615[14]))

(2) -> (17), if ((java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(o1856[2]* o3142[17])∧(i771[2]* 0)∧(o1856[2]* NULL)∧(i477[2]* i477[17])∧(i118[2] + 1* i615[17]))

(2) -> (19), if ((o1856[2]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[2]* i477[19])∧(i771[2]* 0)∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(i118[2] + 1* i615[19]))

(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[4], a4210data[4])))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))

(3) -> (6), if ((i615[3]* i615[6])∧(i477[3]* i477[6])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[6], a4210data[6])))∧(o3142[3]* o3142[6])∧(o3274[3]* o3141[6])∧(i1284[3]* i1238[6]))

(3) -> (8), if ((o3142[3]* o3142[8])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(i1284[3]* i1238[8])∧(o3274[3]* NULL)∧(i477[3]* i477[8])∧(i615[3]* i615[8]))

(3) -> (13), if ((i477[3]* i477[13])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[13], a4210data[13])))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))

(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[14], a4210data[14])))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))

(3) -> (17), if ((i477[3]* i477[17])∧(o3142[3]* o3142[17])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(o3274[3]* NULL)∧(i615[3]* i615[17])∧(i1284[3]* 0))

(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))

(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧(java.lang.Object(IntList(o3274[4], i1311[4])) →* java.lang.Object(IntList(o3274[5], i1311[5])))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧(java.lang.Object(ARRAY(i3[4], a4210data[4])) →* java.lang.Object(ARRAY(i3[5], a4210data[5]))))

(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[4], a4210data[4]))))

(5) -> (6), if ((i615[5]* i615[6])∧(i1238[5] + -1* i1238[6])∧(o3274[5]* o3141[6])∧(o3142[5]* o3142[6])∧(i477[5]* i477[6])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[6], a4210data[6]))))

(5) -> (8), if ((o3142[5]* o3142[8])∧(i615[5]* i615[8])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(o3274[5]* NULL)∧(i477[5]* i477[8])∧(i1238[5] + -1* i1238[8]))

(5) -> (13), if ((i1238[5] + -1* 0)∧(i615[5]* i615[13])∧(o3142[5]* o3142[13])∧(o3274[5]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i477[5]* i477[13])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[13], a4210data[13]))))

(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[14], a4210data[14]))))

(5) -> (17), if ((i1238[5] + -1* 0)∧(i477[5]* i477[17])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(i615[5]* i615[17])∧(o3274[5]* NULL)∧(o3142[5]* o3142[17]))

(5) -> (19), if ((o3274[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(o3142[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(i1238[5] + -1* 0)∧(i615[5]* i615[19])∧(i477[5]* i477[19]))

(6) -> (7), if ((i1238[6] > 0 && i1238[6] <= 1* TRUE)∧(i1238[6]* i1238[7])∧(java.lang.Object(ARRAY(i3[6], a4210data[6])) →* java.lang.Object(ARRAY(i3[7], a4210data[7])))∧(o3141[6]* o3141[7])∧(i477[6]* i477[7])∧(i615[6]* i615[7])∧(o3142[6]* o3142[7]))

(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧(java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[12], a4210data[12])))∧(o3142[7]* o3142[12]))

(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧(java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[16], a4210data[16])))∧(o3142[7]* o3142[16]))

(7) -> (18), if ((java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[18], a4210data[18])))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))

(8) -> (9), if ((i477[8]* i477[9])∧(o3142[8]* o3142[9])∧(i615[8]* i615[9])∧(java.lang.Object(ARRAY(i3[8], a4210data[8])) →* java.lang.Object(ARRAY(i3[9], a4210data[9])))∧(i1238[8]* i1238[9])∧(i1238[8] > 1* TRUE))

(9) -> (12), if ((i615[9]* i615[12])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[12], a4210data[12])))∧(NULL* java.lang.Object(IntList(o3234[12], i1289[12])))∧(o3142[9]* o3142[12])∧(i477[9]* i477[12]))

(9) -> (16), if ((i477[9]* i477[16])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[16], a4210data[16])))∧(i615[9]* i615[16])∧(o3142[9]* o3142[16]))

(9) -> (18), if ((NULL* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[9]* i477[18])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[18], a4210data[18])))∧(o3142[9]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[9]* i615[18]))

(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧(java.lang.Object(ARRAY(i3[10], a4210data[10])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))

(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧(java.lang.Object(ARRAY(i3[11], a4210data[11])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))

(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧(java.lang.Object(ARRAY(i3[12], a4210data[12])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))

(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧(java.lang.Object(ARRAY(i3[13], a4210data[13])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))

(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧(java.lang.Object(ARRAY(i3[14], a4210data[14])) →* java.lang.Object(ARRAY(i3[15], a4210data[15])))∧(i615[14]* i615[15])∧(java.lang.Object(IntList(o3280[14], i1314[14])) →* java.lang.Object(IntList(o3280[15], i1314[15]))))

(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧(java.lang.Object(ARRAY(i3[15], a4210data[15])) →* java.lang.Object(ARRAY(i3[3], a4210data[3])))∧(o3280[15]* o3274[3]))

(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧(java.lang.Object(ARRAY(i3[16], a4210data[16])) →* java.lang.Object(ARRAY(i3[10], a4210data[10])))∧(0* i1289[10])∧(i477[16]* i477[10]))

(17) -> (10), if ((o3142[17]* o3142[10])∧(i477[17]* i477[10])∧(java.lang.Object(ARRAY(i3[17], a4210data[17])) →* java.lang.Object(ARRAY(i3[10], a4210data[10])))∧(0* i1289[10])∧(i615[17]* i615[10]))

(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧(java.lang.Object(ARRAY(i3[18], a4210data[18])) →* java.lang.Object(ARRAY(i3[11], a4210data[11]))))

(19) -> (11), if ((java.lang.Object(ARRAY(i3[19], a4210data[19])) →* java.lang.Object(ARRAY(i3[11], a4210data[11])))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))

The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

### (12) UsableRulesProof (EQUIVALENT transformation)

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

### (13) Obligation:

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): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
(1): LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
(2): COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2] + 1, i477[2], o1856[2], i771[2], o1856[2])
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(6): LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(i1238[6] > 0 && i1238[6] <= 1, java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(8): LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(i1238[8] > 1, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
(9): COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(17): LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])

(0) -> (1), if ((java.lang.Object(IntList(o1856[0], i480[0])) →* java.lang.Object(IntList(o1856[1], i480[1])))∧(i118[0]* i118[1])∧(i477[0]* i477[1])∧(java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])) →* java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))∧(java.lang.Object(ARRAY(i3[0], a2436data[0])) →* java.lang.Object(ARRAY(i3[1], a2436data[1]))))

(1) -> (2), if ((i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0* TRUE)∧(i477[1]* i477[2])∧(java.lang.Object(IntList(o1856[1], i480[1])) →* java.lang.Object(IntList(o1856[2], i480[2])))∧(java.lang.Object(ARRAY(i3[1], a2436data[1])) →* java.lang.Object(ARRAY(i3[2], a2436data[2])))∧(java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])) →* java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2])))∧(i118[1]* i118[2]))

(2) -> (4), if ((o1856[2]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i118[2] + 1* i615[4])∧(i771[2]* i1238[4])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[4], a4210data[4])))∧(i477[2]* i477[4])∧(o1856[2]* o3142[4]))

(2) -> (6), if ((o1856[2]* o3142[6])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[6], a4210data[6])))∧(o1856[2]* o3141[6])∧(i118[2] + 1* i615[6])∧(i771[2]* i1238[6])∧(i477[2]* i477[6]))

(2) -> (8), if ((i771[2]* i1238[8])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(i477[2]* i477[8])∧(i118[2] + 1* i615[8])∧(o1856[2]* o3142[8])∧(o1856[2]* NULL))

(2) -> (13), if ((i771[2]* 0)∧(o1856[2]* o3142[13])∧(i477[2]* i477[13])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[13], a4210data[13])))∧(o1856[2]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i118[2] + 1* i615[13]))

(2) -> (14), if ((java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[14], a4210data[14])))∧(i477[2]* i477[14])∧(o1856[2]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i771[2]* i1238[14])∧(i118[2] + 1* i615[14]))

(2) -> (17), if ((java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(o1856[2]* o3142[17])∧(i771[2]* 0)∧(o1856[2]* NULL)∧(i477[2]* i477[17])∧(i118[2] + 1* i615[17]))

(2) -> (19), if ((o1856[2]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[2]* i477[19])∧(i771[2]* 0)∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(i118[2] + 1* i615[19]))

(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[4], a4210data[4])))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))

(3) -> (6), if ((i615[3]* i615[6])∧(i477[3]* i477[6])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[6], a4210data[6])))∧(o3142[3]* o3142[6])∧(o3274[3]* o3141[6])∧(i1284[3]* i1238[6]))

(3) -> (8), if ((o3142[3]* o3142[8])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(i1284[3]* i1238[8])∧(o3274[3]* NULL)∧(i477[3]* i477[8])∧(i615[3]* i615[8]))

(3) -> (13), if ((i477[3]* i477[13])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[13], a4210data[13])))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))

(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[14], a4210data[14])))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))

(3) -> (17), if ((i477[3]* i477[17])∧(o3142[3]* o3142[17])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(o3274[3]* NULL)∧(i615[3]* i615[17])∧(i1284[3]* 0))

(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))

(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧(java.lang.Object(IntList(o3274[4], i1311[4])) →* java.lang.Object(IntList(o3274[5], i1311[5])))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧(java.lang.Object(ARRAY(i3[4], a4210data[4])) →* java.lang.Object(ARRAY(i3[5], a4210data[5]))))

(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[4], a4210data[4]))))

(5) -> (6), if ((i615[5]* i615[6])∧(i1238[5] + -1* i1238[6])∧(o3274[5]* o3141[6])∧(o3142[5]* o3142[6])∧(i477[5]* i477[6])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[6], a4210data[6]))))

(5) -> (8), if ((o3142[5]* o3142[8])∧(i615[5]* i615[8])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(o3274[5]* NULL)∧(i477[5]* i477[8])∧(i1238[5] + -1* i1238[8]))

(5) -> (13), if ((i1238[5] + -1* 0)∧(i615[5]* i615[13])∧(o3142[5]* o3142[13])∧(o3274[5]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i477[5]* i477[13])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[13], a4210data[13]))))

(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[14], a4210data[14]))))

(5) -> (17), if ((i1238[5] + -1* 0)∧(i477[5]* i477[17])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(i615[5]* i615[17])∧(o3274[5]* NULL)∧(o3142[5]* o3142[17]))

(5) -> (19), if ((o3274[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(o3142[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(i1238[5] + -1* 0)∧(i615[5]* i615[19])∧(i477[5]* i477[19]))

(6) -> (7), if ((i1238[6] > 0 && i1238[6] <= 1* TRUE)∧(i1238[6]* i1238[7])∧(java.lang.Object(ARRAY(i3[6], a4210data[6])) →* java.lang.Object(ARRAY(i3[7], a4210data[7])))∧(o3141[6]* o3141[7])∧(i477[6]* i477[7])∧(i615[6]* i615[7])∧(o3142[6]* o3142[7]))

(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧(java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[12], a4210data[12])))∧(o3142[7]* o3142[12]))

(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧(java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[16], a4210data[16])))∧(o3142[7]* o3142[16]))

(7) -> (18), if ((java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[18], a4210data[18])))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))

(8) -> (9), if ((i477[8]* i477[9])∧(o3142[8]* o3142[9])∧(i615[8]* i615[9])∧(java.lang.Object(ARRAY(i3[8], a4210data[8])) →* java.lang.Object(ARRAY(i3[9], a4210data[9])))∧(i1238[8]* i1238[9])∧(i1238[8] > 1* TRUE))

(9) -> (12), if ((i615[9]* i615[12])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[12], a4210data[12])))∧(NULL* java.lang.Object(IntList(o3234[12], i1289[12])))∧(o3142[9]* o3142[12])∧(i477[9]* i477[12]))

(9) -> (16), if ((i477[9]* i477[16])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[16], a4210data[16])))∧(i615[9]* i615[16])∧(o3142[9]* o3142[16]))

(9) -> (18), if ((NULL* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[9]* i477[18])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[18], a4210data[18])))∧(o3142[9]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[9]* i615[18]))

(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧(java.lang.Object(ARRAY(i3[10], a4210data[10])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))

(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧(java.lang.Object(ARRAY(i3[11], a4210data[11])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))

(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧(java.lang.Object(ARRAY(i3[12], a4210data[12])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))

(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧(java.lang.Object(ARRAY(i3[13], a4210data[13])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))

(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧(java.lang.Object(ARRAY(i3[14], a4210data[14])) →* java.lang.Object(ARRAY(i3[15], a4210data[15])))∧(i615[14]* i615[15])∧(java.lang.Object(IntList(o3280[14], i1314[14])) →* java.lang.Object(IntList(o3280[15], i1314[15]))))

(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧(java.lang.Object(ARRAY(i3[15], a4210data[15])) →* java.lang.Object(ARRAY(i3[3], a4210data[3])))∧(o3280[15]* o3274[3]))

(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧(java.lang.Object(ARRAY(i3[16], a4210data[16])) →* java.lang.Object(ARRAY(i3[10], a4210data[10])))∧(0* i1289[10])∧(i477[16]* i477[10]))

(17) -> (10), if ((o3142[17]* o3142[10])∧(i477[17]* i477[10])∧(java.lang.Object(ARRAY(i3[17], a4210data[17])) →* java.lang.Object(ARRAY(i3[10], a4210data[10])))∧(0* i1289[10])∧(i615[17]* i615[10]))

(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧(java.lang.Object(ARRAY(i3[18], a4210data[18])) →* java.lang.Object(ARRAY(i3[11], a4210data[11]))))

(19) -> (11), if ((java.lang.Object(ARRAY(i3[19], a4210data[19])) →* java.lang.Object(ARRAY(i3[11], a4210data[11])))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))

The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

### (14) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

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

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
(1): LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
(2): COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2] + 1, i477[2], o1856[2], i771[2], o1856[2])
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(6): LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(i1238[6] > 0 && i1238[6] <= 1, java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(8): LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(i1238[8] > 1, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
(9): COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(17): LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])

(0) -> (1), if (((o1856[0]* o1856[1])∧(i480[0]* i480[1]))∧(i118[0]* i118[1])∧(i477[0]* i477[1])∧((i771[0]* i771[1])∧(i770[0]* i770[1])∧(i772[0]* i772[1])∧(a3255[0]* a3255[1]))∧((i3[0]* i3[1])∧(a2436data[0]* a2436data[1])))

(1) -> (2), if ((i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0* TRUE)∧(i477[1]* i477[2])∧((o1856[1]* o1856[2])∧(i480[1]* i480[2]))∧((i3[1]* i3[2])∧(a2436data[1]* a2436data[2]))∧((i771[1]* i771[2])∧(i770[1]* i770[2])∧(i772[1]* i772[2])∧(a3255[1]* a3255[2]))∧(i118[1]* i118[2]))

(2) -> (4), if ((o1856[2]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i118[2] + 1* i615[4])∧(i771[2]* i1238[4])∧((i3[2]* i3[4])∧(a2436data[2]* a4210data[4]))∧(i477[2]* i477[4])∧(o1856[2]* o3142[4]))

(2) -> (6), if ((o1856[2]* o3142[6])∧((i3[2]* i3[6])∧(a2436data[2]* a4210data[6]))∧(o1856[2]* o3141[6])∧(i118[2] + 1* i615[6])∧(i771[2]* i1238[6])∧(i477[2]* i477[6]))

(2) -> (8), if ((i771[2]* i1238[8])∧((i3[2]* i3[8])∧(a2436data[2]* a4210data[8]))∧(i477[2]* i477[8])∧(i118[2] + 1* i615[8])∧(o1856[2]* o3142[8])∧(o1856[2]* NULL))

(2) -> (13), if ((i771[2]* 0)∧(o1856[2]* o3142[13])∧(i477[2]* i477[13])∧((i3[2]* i3[13])∧(a2436data[2]* a4210data[13]))∧(o1856[2]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i118[2] + 1* i615[13]))

(2) -> (14), if (((i3[2]* i3[14])∧(a2436data[2]* a4210data[14]))∧(i477[2]* i477[14])∧(o1856[2]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i771[2]* i1238[14])∧(i118[2] + 1* i615[14]))

(2) -> (17), if (((i3[2]* i3[17])∧(a2436data[2]* a4210data[17]))∧(o1856[2]* o3142[17])∧(i771[2]* 0)∧(o1856[2]* NULL)∧(i477[2]* i477[17])∧(i118[2] + 1* i615[17]))

(2) -> (19), if ((o1856[2]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[2]* i477[19])∧(i771[2]* 0)∧((i3[2]* i3[19])∧(a2436data[2]* a4210data[19]))∧(i118[2] + 1* i615[19]))

(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧((i3[3]* i3[4])∧(a4210data[3]* a4210data[4]))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))

(3) -> (6), if ((i615[3]* i615[6])∧(i477[3]* i477[6])∧((i3[3]* i3[6])∧(a4210data[3]* a4210data[6]))∧(o3142[3]* o3142[6])∧(o3274[3]* o3141[6])∧(i1284[3]* i1238[6]))

(3) -> (8), if ((o3142[3]* o3142[8])∧((i3[3]* i3[8])∧(a4210data[3]* a4210data[8]))∧(i1284[3]* i1238[8])∧(o3274[3]* NULL)∧(i477[3]* i477[8])∧(i615[3]* i615[8]))

(3) -> (13), if ((i477[3]* i477[13])∧((i3[3]* i3[13])∧(a4210data[3]* a4210data[13]))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))

(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧((i3[3]* i3[14])∧(a4210data[3]* a4210data[14]))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))

(3) -> (17), if ((i477[3]* i477[17])∧(o3142[3]* o3142[17])∧((i3[3]* i3[17])∧(a4210data[3]* a4210data[17]))∧(o3274[3]* NULL)∧(i615[3]* i615[17])∧(i1284[3]* 0))

(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧((i3[3]* i3[19])∧(a4210data[3]* a4210data[19]))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))

(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧((o3274[4]* o3274[5])∧(i1311[4]* i1311[5]))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧((i3[4]* i3[5])∧(a4210data[4]* a4210data[5])))

(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧((i3[5]* i3[4])∧(a4210data[5]* a4210data[4])))

(5) -> (6), if ((i615[5]* i615[6])∧(i1238[5] + -1* i1238[6])∧(o3274[5]* o3141[6])∧(o3142[5]* o3142[6])∧(i477[5]* i477[6])∧((i3[5]* i3[6])∧(a4210data[5]* a4210data[6])))

(5) -> (8), if ((o3142[5]* o3142[8])∧(i615[5]* i615[8])∧((i3[5]* i3[8])∧(a4210data[5]* a4210data[8]))∧(o3274[5]* NULL)∧(i477[5]* i477[8])∧(i1238[5] + -1* i1238[8]))

(5) -> (13), if ((i1238[5] + -1* 0)∧(i615[5]* i615[13])∧(o3142[5]* o3142[13])∧(o3274[5]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i477[5]* i477[13])∧((i3[5]* i3[13])∧(a4210data[5]* a4210data[13])))

(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧((i3[5]* i3[14])∧(a4210data[5]* a4210data[14])))

(5) -> (17), if ((i1238[5] + -1* 0)∧(i477[5]* i477[17])∧((i3[5]* i3[17])∧(a4210data[5]* a4210data[17]))∧(i615[5]* i615[17])∧(o3274[5]* NULL)∧(o3142[5]* o3142[17]))

(5) -> (19), if ((o3274[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(o3142[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧((i3[5]* i3[19])∧(a4210data[5]* a4210data[19]))∧(i1238[5] + -1* 0)∧(i615[5]* i615[19])∧(i477[5]* i477[19]))

(6) -> (7), if ((i1238[6] > 0 && i1238[6] <= 1* TRUE)∧(i1238[6]* i1238[7])∧((i3[6]* i3[7])∧(a4210data[6]* a4210data[7]))∧(o3141[6]* o3141[7])∧(i477[6]* i477[7])∧(i615[6]* i615[7])∧(o3142[6]* o3142[7]))

(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧((i3[7]* i3[12])∧(a4210data[7]* a4210data[12]))∧(o3142[7]* o3142[12]))

(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧((i3[7]* i3[16])∧(a4210data[7]* a4210data[16]))∧(o3142[7]* o3142[16]))

(7) -> (18), if (((i3[7]* i3[18])∧(a4210data[7]* a4210data[18]))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))

(8) -> (9), if ((i477[8]* i477[9])∧(o3142[8]* o3142[9])∧(i615[8]* i615[9])∧((i3[8]* i3[9])∧(a4210data[8]* a4210data[9]))∧(i1238[8]* i1238[9])∧(i1238[8] > 1* TRUE))

(9) -> (12), if ((i615[9]* i615[12])∧((i3[9]* i3[12])∧(a4210data[9]* a4210data[12]))∧false∧(o3142[9]* o3142[12])∧(i477[9]* i477[12]))

(9) -> (16), if ((i477[9]* i477[16])∧((i3[9]* i3[16])∧(a4210data[9]* a4210data[16]))∧(i615[9]* i615[16])∧(o3142[9]* o3142[16]))

(9) -> (18), if (false∧(i477[9]* i477[18])∧((i3[9]* i3[18])∧(a4210data[9]* a4210data[18]))∧(o3142[9]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[9]* i615[18]))

(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[10]* i3[0])∧(a4210data[10]* a2436data[0])))

(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[11]* i3[0])∧(a4210data[11]* a2436data[0])))

(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧((i3[12]* i3[0])∧(a4210data[12]* a2436data[0])))

(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧((i3[13]* i3[0])∧(a4210data[13]* a2436data[0])))

(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧((i3[14]* i3[15])∧(a4210data[14]* a4210data[15]))∧(i615[14]* i615[15])∧((o3280[14]* o3280[15])∧(i1314[14]* i1314[15])))

(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧((i3[15]* i3[3])∧(a4210data[15]* a4210data[3]))∧(o3280[15]* o3274[3]))

(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧((i3[16]* i3[10])∧(a4210data[16]* a4210data[10]))∧(0* i1289[10])∧(i477[16]* i477[10]))

(17) -> (10), if ((o3142[17]* o3142[10])∧(i477[17]* i477[10])∧((i3[17]* i3[10])∧(a4210data[17]* a4210data[10]))∧(0* i1289[10])∧(i615[17]* i615[10]))

(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧((i3[18]* i3[11])∧(a4210data[18]* a4210data[11])))

(19) -> (11), if (((i3[19]* i3[11])∧(a4210data[19]* a4210data[11]))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))

The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

### (16) 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 LOAD2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → LOAD2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) the following chains were created:
• We consider the chain STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

(1)    (i1289[10]=i477[0]i615[10]=i118[0]o3142[10]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[10]=i3[0]a4210data[10]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))

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

(2)    (LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))

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

(3)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(4)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(5)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(6)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)

• We consider the chain RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

(7)    (i615[11]=i118[0]i1289[11]=i477[0]o3142[11]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[11]=i3[0]a4210data[11]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))

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

(8)    (LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))

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

(9)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(10)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(11)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(12)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)

• We consider the chain LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

(13)    (o3142[12]=java.lang.Object(IntList(o1856[0], i480[0]))∧i1289[12]=i477[0]i615[12]=i118[0]i3[12]=i3[0]a4210data[12]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))

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

(14)    (LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))

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

(15)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(16)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(17)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(18)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)

• We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

(19)    (i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))

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

(20)    (LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))

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

(21)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(22)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(23)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)

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

(24)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)

For Pair LOAD2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118, 0), <(i118, i3)), >(i477, 0)), >(+(i118, 1), 0)), java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) the following chains were created:
• We consider the chain LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))), COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]) which results in the following constraint:

(25)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUEi477[1]=i477[2]o1856[1]=o1856[2]i480[1]=i480[2]i3[1]=i3[2]a2436data[1]=a2436data[2]i771[1]=i771[2]i770[1]=i770[2]i772[1]=i772[2]a3255[1]=a3255[2]i118[1]=i118[2]LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥NonInfC∧LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))∧(UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥))

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

(26)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUELOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥NonInfC∧LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))∧(UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥))

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

(27)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧[(-1)Bound*bni_97] + [(2)bni_97]o1856[1] ≥ 0∧[(-1)bso_98] ≥ 0)

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

(28)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧[(-1)Bound*bni_97] + [(2)bni_97]o1856[1] ≥ 0∧[(-1)bso_98] ≥ 0)

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

(29)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧[(-1)Bound*bni_97] + [(2)bni_97]o1856[1] ≥ 0∧[(-1)bso_98] ≥ 0)

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

(30)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)

For Pair COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → LOAD3607(java.lang.Object(ARRAY(i3, a2436data)), +(i118, 1), i477, o1856, i771, o1856) the following chains were created:
• We consider the chain LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))), COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]) which results in the following constraint:

(31)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUEi477[1]=i477[2]o1856[1]=o1856[2]i480[1]=i480[2]i3[1]=i3[2]a2436data[1]=a2436data[2]i771[1]=i771[2]i770[1]=i770[2]i772[1]=i772[2]a3255[1]=a3255[2]i118[1]=i118[2]COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2])))≥NonInfC∧COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2])))≥LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥))

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

(32)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUECOND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥NonInfC∧COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥LOAD3607(java.lang.Object(ARRAY(i3[1], a2436data[1])), +(i118[1], 1), i477[1], o1856[1], i771[1], o1856[1])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥))

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

(33)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧[(-1)Bound*bni_99] + [(2)bni_99]o1856[1] ≥ 0∧[(-1)bso_100] ≥ 0)

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

(34)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧[(-1)Bound*bni_99] + [(2)bni_99]o1856[1] ≥ 0∧[(-1)bso_100] ≥ 0)

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

(35)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧[(-1)Bound*bni_99] + [(2)bni_99]o1856[1] ≥ 0∧[(-1)bso_100] ≥ 0)

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

(36)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)

For Pair JMP3960'(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274) → LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274) the following chains were created:
• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) which results in the following constraint:

(37)    (i477[3]=i477[4]o3274[3]=java.lang.Object(IntList(o3274[4], i1311[4]))∧i3[3]=i3[4]a4210data[3]=a4210data[4]i615[3]=i615[4]o3142[3]=o3142[4]i1284[3]=i1238[4]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(38)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(39)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(40)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(41)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(42)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) which results in the following constraint:

(43)    (i615[3]=i615[6]i477[3]=i477[6]i3[3]=i3[6]a4210data[3]=a4210data[6]o3142[3]=o3142[6]o3274[3]=o3141[6]i1284[3]=i1238[6]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(44)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(45)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(46)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(47)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(48)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8]) which results in the following constraint:

(49)    (o3142[3]=o3142[8]i3[3]=i3[8]a4210data[3]=a4210data[8]i1284[3]=i1238[8]o3274[3]=NULLi477[3]=i477[8]i615[3]=i615[8]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(50)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], NULL)≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], NULL)≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], NULL)∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(51)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(52)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(53)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(54)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]) which results in the following constraint:

(55)    (i477[3]=i477[13]i3[3]=i3[13]a4210data[3]=a4210data[13]o3274[3]=java.lang.Object(IntList(o3234[13], i1289[13]))∧i1284[3]=0i615[3]=i615[13]o3142[3]=o3142[13]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(56)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(57)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(58)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(59)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(60)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) which results in the following constraint:

(61)    (o3274[3]=java.lang.Object(IntList(o3280[14], i1314[14]))∧i3[3]=i3[14]a4210data[3]=a4210data[14]i1284[3]=i1238[14]o3142[3]=java.lang.Object(IntList(o3280[14], i1314[14]))∧i477[3]=i477[14]i615[3]=i615[14]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(62)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(63)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(64)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(65)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(66)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0) which results in the following constraint:

(67)    (i477[3]=i477[17]o3142[3]=o3142[17]i3[3]=i3[17]a4210data[3]=a4210data[17]o3274[3]=NULLi615[3]=i615[17]i1284[3]=0JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(68)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, NULL)≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, NULL)≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, NULL)∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(69)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(70)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(71)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(72)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]) which results in the following constraint:

(73)    (o3274[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[3]=i477[19]i615[3]=i615[19]i1284[3]=0i3[3]=i3[19]a4210data[3]=a4210data[19]o3142[3]=java.lang.Object(IntList(o3239[19], i1291[19])) ⇒ JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(74)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(75)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(76)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(77)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)

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

(78)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → COND_LOAD3607(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) the following chains were created:
• We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))), COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]) which results in the following constraint:

(79)    (i477[4]=i477[5]i1238[4]=i1238[5]o3274[4]=o3274[5]i1311[4]=i1311[5]o3142[4]=o3142[5]i615[4]=i615[5]>(i1238[4], 1)=TRUEi3[4]=i3[5]a4210data[4]=a4210data[5]LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥))

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

(80)    (>(i1238[4], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥))

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

(81)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[(-1)Bound*bni_103] + [(2)bni_103]o3274[4] + [bni_103]o3142[4] ≥ 0∧[(-1)bso_104] ≥ 0)

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

(82)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[(-1)Bound*bni_103] + [(2)bni_103]o3274[4] + [bni_103]o3142[4] ≥ 0∧[(-1)bso_104] ≥ 0)

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

(83)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[(-1)Bound*bni_103] + [(2)bni_103]o3274[4] + [bni_103]o3142[4] ≥ 0∧[(-1)bso_104] ≥ 0)

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

(84)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧0 ≥ 0∧[(2)bni_103] ≥ 0∧0 ≥ 0∧[bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)

For Pair COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, +(i1238, -1), o3274) the following chains were created:
• We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))), COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]) which results in the following constraint:

(85)    (i477[4]=i477[5]i1238[4]=i1238[5]o3274[4]=o3274[5]i1311[4]=i1311[5]o3142[4]=o3142[5]i615[4]=i615[5]>(i1238[4], 1)=TRUEi3[4]=i3[5]a4210data[4]=a4210data[5]COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5])))≥NonInfC∧COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5])))≥LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥))

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

(86)    (>(i1238[4], 1)=TRUECOND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], +(i1238[4], -1), o3274[4])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥))

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

(87)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(-1)Bound*bni_105] + [(2)bni_105]o3274[4] + [bni_105]o3142[4] ≥ 0∧[(-1)bso_106] + o3274[4] ≥ 0)

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

(88)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(-1)Bound*bni_105] + [(2)bni_105]o3274[4] + [bni_105]o3142[4] ≥ 0∧[(-1)bso_106] + o3274[4] ≥ 0)

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

(89)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(-1)Bound*bni_105] + [(2)bni_105]o3274[4] + [bni_105]o3142[4] ≥ 0∧[(-1)bso_106] + o3274[4] ≥ 0)

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

(90)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧0 ≥ 0∧[(2)bni_105] ≥ 0∧0 ≥ 0∧[bni_105] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_105] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_106] ≥ 0)

For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → COND_LOAD36071(&&(>(i1238, 0), <=(i1238, 1)), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) the following chains were created:
• We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]), COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]) which results in the following constraint:

(91)    (&&(>(i1238[6], 0), <=(i1238[6], 1))=TRUEi1238[6]=i1238[7]i3[6]=i3[7]a4210data[6]=a4210data[7]o3141[6]=o3141[7]i477[6]=i477[7]i615[6]=i615[7]o3142[6]=o3142[7]LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])∧(UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥))

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

(92)    (&&(>(i1238[6], 0), <=(i1238[6], 1))=TRUELOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])∧(UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥))

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

(93)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[(-1)Bound*bni_107] + [bni_107]o3141[6] + [bni_107]o3142[6] ≥ 0∧[(-1)bso_108] + o3141[6] ≥ 0)

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

(94)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[(-1)Bound*bni_107] + [bni_107]o3141[6] + [bni_107]o3142[6] ≥ 0∧[(-1)bso_108] + o3141[6] ≥ 0)

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

(95)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[(-1)Bound*bni_107] + [bni_107]o3141[6] + [bni_107]o3142[6] ≥ 0∧[(-1)bso_108] + o3141[6] ≥ 0)

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

(96)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[bni_107] ≥ 0∧0 ≥ 0∧[bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_107] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)

For Pair COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, o3141) the following chains were created:
• We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]) which results in the following constraint:

(97)    (i615[7]=i615[12]o3141[7]=java.lang.Object(IntList(o3234[12], i1289[12]))∧i477[7]=i477[12]i3[7]=i3[12]a4210data[7]=a4210data[12]o3142[7]=o3142[12]COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))

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

(98)    (COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], java.lang.Object(IntList(o3234[12], i1289[12])))≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], java.lang.Object(IntList(o3234[12], i1289[12])))≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], java.lang.Object(IntList(o3234[12], i1289[12])))∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))

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

(99)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)

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

(100)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)

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

(101)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)

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

(102)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)

• We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0) which results in the following constraint:

(103)    (o3141[7]=NULLi615[7]=i615[16]i477[7]=i477[16]i3[7]=i3[16]a4210data[7]=a4210data[16]o3142[7]=o3142[16]COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))

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

(104)    (COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], NULL)≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], NULL)≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], NULL)∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))

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

(105)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)

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

(106)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)

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

(107)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)

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

(108)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)

• We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18]) which results in the following constraint:

(109)    (i3[7]=i3[18]a4210data[7]=a4210data[18]o3142[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i477[7]=i477[18]o3141[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i615[7]=i615[18]COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))

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

(110)    (COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), i1238[7], java.lang.Object(IntList(o3239[18], i1291[18])))≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), i1238[7], java.lang.Object(IntList(o3239[18], i1291[18])))≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))

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

(111)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)

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

(112)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)

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

(113)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)

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

(114)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)

For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, NULL) → COND_LOAD36072(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238) the following chains were created:
• We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8]), COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL) which results in the following constraint:

(115)    (i477[8]=i477[9]o3142[8]=o3142[9]i615[8]=i615[9]i3[8]=i3[9]a4210data[8]=a4210data[9]i1238[8]=i1238[9]>(i1238[8], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL)≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL)≥COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])∧(UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥))

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

(116)    (>(i1238[8], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL)≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL)≥COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])∧(UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥))

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

(117)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥)∧[bni_111 + (-1)Bound*bni_111] + [bni_111]o3142[8] ≥ 0∧[(-1)bso_112] ≥ 0)

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

(118)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥)∧[bni_111 + (-1)Bound*bni_111] + [bni_111]o3142[8] ≥ 0∧[(-1)bso_112] ≥ 0)

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

(119)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥)∧[bni_111 + (-1)Bound*bni_111] + [bni_111]o3142[8] ≥ 0∧[(-1)bso_112] ≥ 0)

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

(120)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥)∧0 ≥ 0∧[bni_111] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_111 + (-1)Bound*bni_111] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)

For Pair COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238) → LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL) the following chains were created:
• We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8]), COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]) which results in the following constraint:

(121)    (COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥NonInfC∧COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥))

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

(122)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)

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

(123)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)

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

(124)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)

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

(125)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)

• We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8]), COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0) which results in the following constraint:

(126)    (i477[8]=i477[9]o3142[8]=o3142[9]i615[8]=i615[9]i3[8]=i3[9]a4210data[8]=a4210data[9]i1238[8]=i1238[9]>(i1238[8], 1)=TRUEi477[9]=i477[16]i3[9]=i3[16]a4210data[9]=a4210data[16]i615[9]=i615[16]o3142[9]=o3142[16]COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥NonInfC∧COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥))

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

(127)    (>(i1238[8], 1)=TRUECOND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])≥NonInfC∧COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])≥LOAD3637(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], NULL)∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥))

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

(128)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)

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

(129)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)

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

(130)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)

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

(131)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)

• We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8]), COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18]) which results in the following constraint:

(132)    (COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥NonInfC∧COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥))

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

(133)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)

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

(134)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)

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

(135)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)

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

(136)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)

For Pair STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289) the following chains were created:
• We consider the chain STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

(137)    (i1289[10]=i477[0]i615[10]=i118[0]o3142[10]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[10]=i3[0]a4210data[10]=a2436data[0]STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10])≥NonInfC∧STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10])≥LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥))

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

(138)    (STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i477[10], i1289[10])≥NonInfC∧STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i477[10], i1289[10])≥LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥))

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

(139)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧[(-1)bso_116] + [2]i1289[10] ≥ 0)

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

(140)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧[(-1)bso_116] + [2]i1289[10] ≥ 0)

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

(141)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧[(-1)bso_116] + [2]i1289[10] ≥ 0)

We simplified constraint (141) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(142)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0∧[1] ≥ 0)

For Pair RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1289) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289) the following chains were created:
• We consider the chain RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

(143)    (i615[11]=i118[0]i1289[11]=i477[0]o3142[11]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[11]=i3[0]a4210data[11]=a2436data[0]RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11])≥NonInfC∧RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11])≥LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥))

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

(144)    (RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥NonInfC∧RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥))

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

(145)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧[(-1)bso_118] ≥ 0)

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

(146)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧[(-1)bso_118] ≥ 0)

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

(147)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧[(-1)bso_118] ≥ 0)

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

(148)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)

For Pair LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289) the following chains were created:
• We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

(149)    (i615[7]=i615[12]o3141[7]=java.lang.Object(IntList(o3234[12], i1289[12]))∧i477[7]=i477[12]i3[7]=i3[12]a4210data[7]=a4210data[12]o3142[7]=o3142[12]o3142[12]=java.lang.Object(IntList(o1856[0], i480[0]))∧i1289[12]=i477[0]i615[12]=i118[0]i3[12]=i3[0]a4210data[12]=a2436data[0]LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12])))≥LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥))

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

(150)    (LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o1856[0], i480[0])), java.lang.Object(IntList(o3234[12], i1289[12])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o1856[0], i480[0])), java.lang.Object(IntList(o3234[12], i1289[12])))≥LOAD2305(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥))

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

(151)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)

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

(152)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)

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

(153)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)

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

(154)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)

• We consider the chain COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

(155)    (LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12])))≥LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥))

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

(156)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)

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

(157)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)

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

(158)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)

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

(159)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)

For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289) the following chains were created:
• We consider the chain COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

(160)    (i771[2]=0o1856[2]=o3142[13]i477[2]=i477[13]i3[2]=i3[13]a2436data[2]=a4210data[13]o1856[2]=java.lang.Object(IntList(o3234[13], i1289[13]))∧+(i118[2], 1)=i615[13]i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))

We simplified constraint (160) using rules (I), (II), (III), (IV) which results in the following new constraint:

(161)    (LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3234[13], i1289[13])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3234[13], i1289[13])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), java.lang.Object(IntList(o3234[13], i1289[13])), i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))

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

(162)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)

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

(163)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)

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

(164)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)

We simplified constraint (164) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(165)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

(166)    (i477[3]=i477[13]i3[3]=i3[13]a4210data[3]=a4210data[13]o3274[3]=java.lang.Object(IntList(o3234[13], i1289[13]))∧i1284[3]=0i615[3]=i615[13]o3142[3]=o3142[13]i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))

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

(167)    (LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))

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

(168)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)

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

(169)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)

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

(170)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)

We simplified constraint (170) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(171)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)

• We consider the chain COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

(172)    (+(i1238[5], -1)=0i615[5]=i615[13]o3142[5]=o3142[13]o3274[5]=java.lang.Object(IntList(o3234[13], i1289[13]))∧i477[5]=i477[13]i3[5]=i3[13]a4210data[5]=a4210data[13]i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))

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

(173)    (+(i1238[5], -1)=0LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))

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

(174)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧[(-1)bso_122] + [2]o3234[13] ≥ 0)

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

(175)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧[(-1)bso_122] + [2]o3234[13] ≥ 0)

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

(176)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧[(-1)bso_122] + [2]o3234[13] ≥ 0)

We simplified constraint (176) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(177)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)

For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → COND_LOAD36073(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314))) the following chains were created:
• We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))), COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15]) which results in the following constraint:

(178)    (i477[14]=i477[15]i1238[14]=i1238[15]>(i1238[14], 1)=TRUEi3[14]=i3[15]a4210data[14]=a4210data[15]i615[14]=i615[15]o3280[14]=o3280[15]i1314[14]=i1314[15]LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥))

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

(179)    (>(i1238[14], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥))

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

(180)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(-1)Bound*bni_123] + [(4)bni_123]o3280[14] ≥ 0∧[(-1)bso_124] ≥ 0)

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

(181)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(-1)Bound*bni_123] + [(4)bni_123]o3280[14] ≥ 0∧[(-1)bso_124] ≥ 0)

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

(182)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(-1)Bound*bni_123] + [(4)bni_123]o3280[14] ≥ 0∧[(-1)bso_124] ≥ 0)

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

(183)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧0 ≥ 0∧[(4)bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)

For Pair COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960'(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), +(i1238, -1), o3280) the following chains were created:
• We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))), COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15]), JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) which results in the following constraint:

(184)    (i477[14]=i477[15]i1238[14]=i1238[15]>(i1238[14], 1)=TRUEi3[14]=i3[15]a4210data[14]=a4210data[15]i615[14]=i615[15]o3280[14]=o3280[15]i1314[14]=i1314[15]+(i1238[15], -1)=i1284[3]i477[15]=i477[3]i615[15]=i615[3]java.lang.Object(IntList(o3280[15], i1314[15]))=o3142[3]i3[15]=i3[3]a4210data[15]=a4210data[3]o3280[15]=o3274[3]COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15])))≥NonInfC∧COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15])))≥JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])∧(UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥))

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

(185)    (>(i1238[14], 1)=TRUECOND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥JMP3960'(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), +(i1238[14], -1), o3280[14])∧(UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥))

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

(186)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(-1)Bound*bni_125] + [(4)bni_125]o3280[14] ≥ 0∧[(-1)bso_126] + o3280[14] ≥ 0)

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

(187)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(-1)Bound*bni_125] + [(4)bni_125]o3280[14] ≥ 0∧[(-1)bso_126] + o3280[14] ≥ 0)

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

(188)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(-1)Bound*bni_125] + [(4)bni_125]o3280[14] ≥ 0∧[(-1)bso_126] + o3280[14] ≥ 0)

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

(189)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧0 ≥ 0∧[(4)bni_125] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_125] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)

For Pair LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL) → STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0) the following chains were created:
• We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0), STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]) which results in the following constraint:

(190)    (o3141[7]=NULLi615[7]=i615[16]i477[7]=i477[16]i3[7]=i3[16]a4210data[7]=a4210data[16]o3142[7]=o3142[16]i615[16]=i615[10]o3142[16]=o3142[10]i3[16]=i3[10]a4210data[16]=a4210data[10]0=i1289[10]i477[16]=i477[10]LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL)≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL)≥STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥))

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

(191)    (LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], NULL)≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], NULL)≥STORE3886(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], o3142[7], i477[7], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥))

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

(192)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)

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

(193)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)

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

(194)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)

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

(195)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)

• We consider the chain COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0), STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]) which results in the following constraint:

(196)    (i477[9]=i477[16]i3[9]=i3[16]a4210data[9]=a4210data[16]i615[9]=i615[16]o3142[9]=o3142[16]i615[16]=i615[10]o3142[16]=o3142[10]i3[16]=i3[10]a4210data[16]=a4210data[10]0=i1289[10]i477[16]=i477[10]LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL)≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL)≥STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥))

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

(197)    (LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)≥STORE3886(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], o3142[9], i477[9], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥))

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

(198)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)

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

(199)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)

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

(200)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)

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

(201)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)

For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0) the following chains were created:
• We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0), STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]) which results in the following constraint:

(202)    (o3142[17]=o3142[10]i477[17]=i477[10]i3[17]=i3[10]a4210data[17]=a4210data[10]0=i1289[10]i615[17]=i615[10]LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL)≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL)≥STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥))

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

(203)    (LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL)≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL)≥STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥))

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

(204)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥)∧[1 + (-1)bso_130] ≥ 0)

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

(205)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥)∧[1 + (-1)bso_130] ≥ 0)

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

(206)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥)∧[1 + (-1)bso_130] ≥ 0)

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

(207)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_130] ≥ 0)

For Pair LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291) the following chains were created:
• We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

(208)    (i3[7]=i3[18]a4210data[7]=a4210data[18]o3142[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i477[7]=i477[18]o3141[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i615[7]=i615[18]java.lang.Object(IntList(o3239[18], i1291[18]))=o3142[11]i615[18]=i615[11]i477[18]=i477[11]i1291[18]=i1289[11]i3[18]=i3[11]a4210data[18]=a4210data[11]LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥))

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

(209)    (LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥RETURN3818(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥))

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

(210)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)

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

(211)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)

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

(212)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)

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

(213)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)

• We consider the chain COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

(214)    (LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥))

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

(215)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)

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

(216)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)

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

(217)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)

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

(218)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)

For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291) the following chains were created:
• We consider the chain COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

(219)    (o1856[2]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[2]=i477[19]i771[2]=0i3[2]=i3[19]a2436data[2]=a4210data[19]+(i118[2], 1)=i615[19]i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(220)    (LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(221)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)

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

(222)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)

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

(223)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)

We simplified constraint (223) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(224)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

(225)    (o3274[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[3]=i477[19]i615[3]=i615[19]i1284[3]=0i3[3]=i3[19]a4210data[3]=a4210data[19]o3142[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(226)    (LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(227)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)

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

(228)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)

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

(229)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)

We simplified constraint (229) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(230)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)

• We consider the chain COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

(231)    (o3274[5]=java.lang.Object(IntList(o3239[19], i1291[19]))∧o3142[5]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i3[5]=i3[19]a4210data[5]=a4210data[19]+(i1238[5], -1)=0i615[5]=i615[19]i477[5]=i477[19]i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(232)    (+(i1238[5], -1)=0LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(233)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[(-1)bso_134] + [2]o3239[19] ≥ 0)

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

(234)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[(-1)bso_134] + [2]o3239[19] ≥ 0)

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

(235)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[(-1)bso_134] + [2]o3239[19] ≥ 0)

We simplified constraint (235) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(236)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• LOAD2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → LOAD2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
• ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)
• ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)
• ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)
• ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)

• LOAD2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118, 0), <(i118, i3)), >(i477, 0)), >(+(i118, 1), 0)), java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)

• COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → LOAD3607(java.lang.Object(ARRAY(i3, a2436data)), +(i118, 1), i477, o1856, i771, o1856)
• (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)

• JMP3960'(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274) → LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274)
• ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
• ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
• ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
• ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
• ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
• ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
• ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

• LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → COND_LOAD3607(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧0 ≥ 0∧[(2)bni_103] ≥ 0∧0 ≥ 0∧[bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)

• COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, +(i1238, -1), o3274)
• (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧0 ≥ 0∧[(2)bni_105] ≥ 0∧0 ≥ 0∧[bni_105] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_105] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_106] ≥ 0)

• LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → COND_LOAD36071(&&(>(i1238, 0), <=(i1238, 1)), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141)
• (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[bni_107] ≥ 0∧0 ≥ 0∧[bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_107] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)

• COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, o3141)
• ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)
• ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)
• ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)

• LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, NULL) → COND_LOAD36072(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238)
• (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥)∧0 ≥ 0∧[bni_111] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_111 + (-1)Bound*bni_111] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)

• COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238) → LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL)
• ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)
• ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)

• STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
• ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0∧[1] ≥ 0)

• RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1289) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
• ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)

• LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
• ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
• ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)

• LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
• ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)
• ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)

• LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → COND_LOAD36073(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧0 ≥ 0∧[(4)bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)

• COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960'(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), +(i1238, -1), o3280)
• (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧0 ≥ 0∧[(4)bni_125] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_125] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)

• LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL) → STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
• ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)
• ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)

• LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
• ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_130] ≥ 0)

• LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)
• ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
• ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)

• LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)
• ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)
• ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)

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

POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD2305(x1, x2, x3, x4)) = x3
POL(java.lang.Object(x1)) = x1
POL(ARRAY(x1, x2)) = 0
POL(IntList(x1, x2)) = [2]x1
POL(LOAD2305ARR1(x1, x2, x3, x4, x5)) = x3
POL(java.lang.String(x1, x2, x3, x4)) = 0
POL(COND_LOAD2305ARR1(x1, x2, x3, x4, x5, x6)) = x4
POL(&&(x1, x2)) = 0
POL(>(x1, x2)) = 0
POL(0) = 0
POL(<(x1, x2)) = 0
POL(+(x1, x2)) = 0
POL(1) = 0
POL(LOAD3607(x1, x2, x3, x4, x5, x6)) = x6 + x4
POL(JMP3960'(x1, x2, x3, x4, x5, x6)) = x6 + x4
POL(COND_LOAD3607(x1, x2, x3, x4, x5, x6, x7)) = x7 + x5
POL(-1) = 0
POL(COND_LOAD36071(x1, x2, x3, x4, x5, x6, x7)) = x5
POL(<=(x1, x2)) = 0
POL(LOAD3637(x1, x2, x3, x4, x5)) = x4
POL(NULL) = [1]
POL(COND_LOAD36072(x1, x2, x3, x4, x5, x6)) = [1] + x5
POL(STORE3886(x1, x2, x3, x4, x5)) = [2]x5 + x3
POL(RETURN3818(x1, x2, x3, x4, x5)) = x4
POL(COND_LOAD36073(x1, x2, x3, x4, x5, x6)) = [2]x6

The following pairs are in P>:

COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)
LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)

The following pairs are in Pbound:

LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])
LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])
LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])

The following pairs are in P:

LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])
JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])
LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])
LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])

At least the following rules have been oriented under context sensitive arithmetic replacement:

&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1

### (18) 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): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
(1): LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
(2): COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2] + 1, i477[2], o1856[2], i771[2], o1856[2])
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(6): LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(i1238[6] > 0 && i1238[6] <= 1, java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(8): LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(i1238[8] > 1, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])

(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[10]* i3[0])∧(a4210data[10]* a2436data[0])))

(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[11]* i3[0])∧(a4210data[11]* a2436data[0])))

(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧((i3[12]* i3[0])∧(a4210data[12]* a2436data[0])))

(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧((i3[13]* i3[0])∧(a4210data[13]* a2436data[0])))

(0) -> (1), if (((o1856[0]* o1856[1])∧(i480[0]* i480[1]))∧(i118[0]* i118[1])∧(i477[0]* i477[1])∧((i771[0]* i771[1])∧(i770[0]* i770[1])∧(i772[0]* i772[1])∧(a3255[0]* a3255[1]))∧((i3[0]* i3[1])∧(a2436data[0]* a2436data[1])))

(1) -> (2), if ((i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0* TRUE)∧(i477[1]* i477[2])∧((o1856[1]* o1856[2])∧(i480[1]* i480[2]))∧((i3[1]* i3[2])∧(a2436data[1]* a2436data[2]))∧((i771[1]* i771[2])∧(i770[1]* i770[2])∧(i772[1]* i772[2])∧(a3255[1]* a3255[2]))∧(i118[1]* i118[2]))

(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧((i3[15]* i3[3])∧(a4210data[15]* a4210data[3]))∧(o3280[15]* o3274[3]))

(2) -> (4), if ((o1856[2]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i118[2] + 1* i615[4])∧(i771[2]* i1238[4])∧((i3[2]* i3[4])∧(a2436data[2]* a4210data[4]))∧(i477[2]* i477[4])∧(o1856[2]* o3142[4]))

(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧((i3[3]* i3[4])∧(a4210data[3]* a4210data[4]))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))

(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧((i3[5]* i3[4])∧(a4210data[5]* a4210data[4])))

(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧((o3274[4]* o3274[5])∧(i1311[4]* i1311[5]))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧((i3[4]* i3[5])∧(a4210data[4]* a4210data[5])))

(2) -> (6), if ((o1856[2]* o3142[6])∧((i3[2]* i3[6])∧(a2436data[2]* a4210data[6]))∧(o1856[2]* o3141[6])∧(i118[2] + 1* i615[6])∧(i771[2]* i1238[6])∧(i477[2]* i477[6]))

(3) -> (6), if ((i615[3]* i615[6])∧(i477[3]* i477[6])∧((i3[3]* i3[6])∧(a4210data[3]* a4210data[6]))∧(o3142[3]* o3142[6])∧(o3274[3]* o3141[6])∧(i1284[3]* i1238[6]))

(5) -> (6), if ((i615[5]* i615[6])∧(i1238[5] + -1* i1238[6])∧(o3274[5]* o3141[6])∧(o3142[5]* o3142[6])∧(i477[5]* i477[6])∧((i3[5]* i3[6])∧(a4210data[5]* a4210data[6])))

(6) -> (7), if ((i1238[6] > 0 && i1238[6] <= 1* TRUE)∧(i1238[6]* i1238[7])∧((i3[6]* i3[7])∧(a4210data[6]* a4210data[7]))∧(o3141[6]* o3141[7])∧(i477[6]* i477[7])∧(i615[6]* i615[7])∧(o3142[6]* o3142[7]))

(2) -> (8), if ((i771[2]* i1238[8])∧((i3[2]* i3[8])∧(a2436data[2]* a4210data[8]))∧(i477[2]* i477[8])∧(i118[2] + 1* i615[8])∧(o1856[2]* o3142[8])∧(o1856[2]* NULL))

(3) -> (8), if ((o3142[3]* o3142[8])∧((i3[3]* i3[8])∧(a4210data[3]* a4210data[8]))∧(i1284[3]* i1238[8])∧(o3274[3]* NULL)∧(i477[3]* i477[8])∧(i615[3]* i615[8]))

(5) -> (8), if ((o3142[5]* o3142[8])∧(i615[5]* i615[8])∧((i3[5]* i3[8])∧(a4210data[5]* a4210data[8]))∧(o3274[5]* NULL)∧(i477[5]* i477[8])∧(i1238[5] + -1* i1238[8]))

(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧((i3[16]* i3[10])∧(a4210data[16]* a4210data[10]))∧(0* i1289[10])∧(i477[16]* i477[10]))

(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧((i3[18]* i3[11])∧(a4210data[18]* a4210data[11])))

(19) -> (11), if (((i3[19]* i3[11])∧(a4210data[19]* a4210data[11]))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))

(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧((i3[7]* i3[12])∧(a4210data[7]* a4210data[12]))∧(o3142[7]* o3142[12]))

(2) -> (13), if ((i771[2]* 0)∧(o1856[2]* o3142[13])∧(i477[2]* i477[13])∧((i3[2]* i3[13])∧(a2436data[2]* a4210data[13]))∧(o1856[2]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i118[2] + 1* i615[13]))

(3) -> (13), if ((i477[3]* i477[13])∧((i3[3]* i3[13])∧(a4210data[3]* a4210data[13]))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))

(5) -> (13), if ((i1238[5] + -1* 0)∧(i615[5]* i615[13])∧(o3142[5]* o3142[13])∧(o3274[5]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i477[5]* i477[13])∧((i3[5]* i3[13])∧(a4210data[5]* a4210data[13])))

(2) -> (14), if (((i3[2]* i3[14])∧(a2436data[2]* a4210data[14]))∧(i477[2]* i477[14])∧(o1856[2]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i771[2]* i1238[14])∧(i118[2] + 1* i615[14]))

(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧((i3[3]* i3[14])∧(a4210data[3]* a4210data[14]))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))

(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧((i3[5]* i3[14])∧(a4210data[5]* a4210data[14])))

(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧((i3[14]* i3[15])∧(a4210data[14]* a4210data[15]))∧(i615[14]* i615[15])∧((o3280[14]* o3280[15])∧(i1314[14]* i1314[15])))

(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧((i3[7]* i3[16])∧(a4210data[7]* a4210data[16]))∧(o3142[7]* o3142[16]))

(7) -> (18), if (((i3[7]* i3[18])∧(a4210data[7]* a4210data[18]))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))

(2) -> (19), if ((o1856[2]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[2]* i477[19])∧(i771[2]* 0)∧((i3[2]* i3[19])∧(a2436data[2]* a4210data[19]))∧(i118[2] + 1* i615[19]))

(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧((i3[3]* i3[19])∧(a4210data[3]* a4210data[19]))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))

(5) -> (19), if ((o3274[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(o3142[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧((i3[5]* i3[19])∧(a4210data[5]* a4210data[19]))∧(i1238[5] + -1* 0)∧(i615[5]* i615[19])∧(i477[5]* i477[19]))

The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

### (19) IDependencyGraphProof (EQUIVALENT transformation)

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

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

R is empty.

The integer pair graph contains the following rules and edges:
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(6): LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(i1238[6] > 0 && i1238[6] <= 1, java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(2): COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2] + 1, i477[2], o1856[2], i771[2], o1856[2])
(1): LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
(0): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))

(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[10]* i3[0])∧(a4210data[10]* a2436data[0])))

(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[11]* i3[0])∧(a4210data[11]* a2436data[0])))

(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧((i3[12]* i3[0])∧(a4210data[12]* a2436data[0])))

(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧((i3[13]* i3[0])∧(a4210data[13]* a2436data[0])))

(0) -> (1), if (((o1856[0]* o1856[1])∧(i480[0]* i480[1]))∧(i118[0]* i118[1])∧(i477[0]* i477[1])∧((i771[0]* i771[1])∧(i770[0]* i770[1])∧(i772[0]* i772[1])∧(a3255[0]* a3255[1]))∧((i3[0]* i3[1])∧(a2436data[0]* a2436data[1])))

(1) -> (2), if ((i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0* TRUE)∧(i477[1]* i477[2])∧((o1856[1]* o1856[2])∧(i480[1]* i480[2]))∧((i3[1]* i3[2])∧(a2436data[1]* a2436data[2]))∧((i771[1]* i771[2])∧(i770[1]* i770[2])∧(i772[1]* i772[2])∧(a3255[1]* a3255[2]))∧(i118[1]* i118[2]))

(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧((i3[15]* i3[3])∧(a4210data[15]* a4210data[3]))∧(o3280[15]* o3274[3]))

(2) -> (4), if ((o1856[2]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i118[2] + 1* i615[4])∧(i771[2]* i1238[4])∧((i3[2]* i3[4])∧(a2436data[2]* a4210data[4]))∧(i477[2]* i477[4])∧(o1856[2]* o3142[4]))

(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧((i3[3]* i3[4])∧(a4210data[3]* a4210data[4]))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))

(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧((i3[5]* i3[4])∧(a4210data[5]* a4210data[4])))

(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧((o3274[4]* o3274[5])∧(i1311[4]* i1311[5]))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧((i3[4]* i3[5])∧(a4210data[4]* a4210data[5])))

(2) -> (6), if ((o1856[2]* o3142[6])∧((i3[2]* i3[6])∧(a2436data[2]* a4210data[6]))∧(o1856[2]* o3141[6])∧(i118[2] + 1* i615[6])∧(i771[2]* i1238[6])∧(i477[2]* i477[6]))

(3) -> (6), if ((i615[3]* i615[6])∧(i477[3]* i477[6])∧((i3[3]* i3[6])∧(a4210data[3]* a4210data[6]))∧(o3142[3]* o3142[6])∧(o3274[3]* o3141[6])∧(i1284[3]* i1238[6]))

(5) -> (6), if ((i615[5]* i615[6])∧(i1238[5] + -1* i1238[6])∧(o3274[5]* o3141[6])∧(o3142[5]* o3142[6])∧(i477[5]* i477[6])∧((i3[5]* i3[6])∧(a4210data[5]* a4210data[6])))

(6) -> (7), if ((i1238[6] > 0 && i1238[6] <= 1* TRUE)∧(i1238[6]* i1238[7])∧((i3[6]* i3[7])∧(a4210data[6]* a4210data[7]))∧(o3141[6]* o3141[7])∧(i477[6]* i477[7])∧(i615[6]* i615[7])∧(o3142[6]* o3142[7]))

(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧((i3[16]* i3[10])∧(a4210data[16]* a4210data[10]))∧(0* i1289[10])∧(i477[16]* i477[10]))

(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧((i3[18]* i3[11])∧(a4210data[18]* a4210data[11])))

(19) -> (11), if (((i3[19]* i3[11])∧(a4210data[19]* a4210data[11]))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))

(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧((i3[7]* i3[12])∧(a4210data[7]* a4210data[12]))∧(o3142[7]* o3142[12]))

(2) -> (13), if ((i771[2]* 0)∧(o1856[2]* o3142[13])∧(i477[2]* i477[13])∧((i3[2]* i3[13])∧(a2436data[2]* a4210data[13]))∧(o1856[2]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i118[2] + 1* i615[13]))

(3) -> (13), if ((i477[3]* i477[13])∧((i3[3]* i3[13])∧(a4210data[3]* a4210data[13]))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))

(5) -> (13), if ((i1238[5] + -1* 0)∧(i615[5]* i615[13])∧(o3142[5]* o3142[13])∧(o3274[5]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i477[5]* i477[13])∧((i3[5]* i3[13])∧(a4210data[5]* a4210data[13])))

(2) -> (14), if (((i3[2]* i3[14])∧(a2436data[2]* a4210data[14]))∧(i477[2]* i477[14])∧(o1856[2]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i771[2]* i1238[14])∧(i118[2] + 1* i615[14]))

(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧((i3[3]* i3[14])∧(a4210data[3]* a4210data[14]))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))

(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧((i3[5]* i3[14])∧(a4210data[5]* a4210data[14])))

(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧((i3[14]* i3[15])∧(a4210data[14]* a4210data[15]))∧(i615[14]* i615[15])∧((o3280[14]* o3280[15])∧(i1314[14]* i1314[15])))

(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧((i3[7]* i3[16])∧(a4210data[7]* a4210data[16]))∧(o3142[7]* o3142[16]))

(7) -> (18), if (((i3[7]* i3[18])∧(a4210data[7]* a4210data[18]))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))

(2) -> (19), if ((o1856[2]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[2]* i477[19])∧(i771[2]* 0)∧((i3[2]* i3[19])∧(a2436data[2]* a4210data[19]))∧(i118[2] + 1* i615[19]))

(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧((i3[3]* i3[19])∧(a4210data[3]* a4210data[19]))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))

(5) -> (19), if ((o3274[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(o3142[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧((i3[5]* i3[19])∧(a4210data[5]* a4210data[19]))∧(i1238[5] + -1* 0)∧(i615[5]* i615[19])∧(i477[5]* i477[19]))

The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

### (21) 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 LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]) the following chains were created:
• We consider the chain COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

(1)    (o1856[2]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[2]=i477[19]i771[2]=0i3[2]=i3[19]a2436data[2]=a4210data[19]+(i118[2], 1)=i615[19]i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(2)    (LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(3)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)

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

(4)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)

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

(5)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)

We simplified constraint (5) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(6)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

(7)    (o3274[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[3]=i477[19]i615[3]=i615[19]i1284[3]=0i3[3]=i3[19]a4210data[3]=a4210data[19]o3142[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(8)    (LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(9)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)

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

(10)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)

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

(11)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)

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

(12)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

• We consider the chain COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

(13)    (o3274[5]=java.lang.Object(IntList(o3239[19], i1291[19]))∧o3142[5]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i3[5]=i3[19]a4210data[5]=a4210data[19]+(i1238[5], -1)=0i615[5]=i615[19]i477[5]=i477[19]i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(14)    (+(i1238[5], -1)=0LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))

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

(15)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)

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

(16)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)

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

(17)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)

We simplified constraint (17) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(18)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

For Pair JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) the following chains were created:
• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) which results in the following constraint:

(19)    (i477[3]=i477[4]o3274[3]=java.lang.Object(IntList(o3274[4], i1311[4]))∧i3[3]=i3[4]a4210data[3]=a4210data[4]i615[3]=i615[4]o3142[3]=o3142[4]i1284[3]=i1238[4]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(20)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(21)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(22)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(23)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(24)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) which results in the following constraint:

(25)    (i615[3]=i615[6]i477[3]=i477[6]i3[3]=i3[6]a4210data[3]=a4210data[6]o3142[3]=o3142[6]o3274[3]=o3141[6]i1284[3]=i1238[6]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(26)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(27)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(28)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(29)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(30)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]) which results in the following constraint:

(31)    (i477[3]=i477[13]i3[3]=i3[13]a4210data[3]=a4210data[13]o3274[3]=java.lang.Object(IntList(o3234[13], i1289[13]))∧i1284[3]=0i615[3]=i615[13]o3142[3]=o3142[13]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(32)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(33)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(34)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(35)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(36)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) which results in the following constraint:

(37)    (o3274[3]=java.lang.Object(IntList(o3280[14], i1314[14]))∧i3[3]=i3[14]a4210data[3]=a4210data[14]i1284[3]=i1238[14]o3142[3]=java.lang.Object(IntList(o3280[14], i1314[14]))∧i477[3]=i477[14]i615[3]=i615[14]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(38)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(39)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(40)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(41)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)

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

(42)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)

• We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]) which results in the following constraint:

(43)    (o3274[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[3]=i477[19]i615[3]=i615[19]i1284[3]=0i3[3]=i3[19]a4210data[3]=a4210data[19]o3142[3]=java.lang.Object(IntList(o3239[19], i1291[19])) ⇒ JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))

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

(44)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.