### (0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_20 (Apple Inc.) Main-Class: Test3
`public class Test3 {    public static void main(String[] args) {	List l1 = List.mk(args.length);	List l2 = List.mk(args.length);	List l3 = (args.length % 2 == 0) ?	    List.mk(args.length * args.length) : l2;	while (length(l1) + length(l2) + length(l3) * 5 > 0)	    if (length(l1) % 2 == 1)		l1 = l1.getTail();	    else if (length(l2) > length(l3))		l2 = l2.getTail();	    else if (l3 == null)		break;	    else {		l1 = new List(new Object(), l1);		l2 = new List(new Object(), l2);		l3 = l3.getTail();	    }    }    private static int length(List list) {	int len = 0;	while (list != null) {	    list = list.getTail();	    len++;	}	return len;    }}public class List {    public Object head;    private List tail;    public List(Object head, List tail) {	this.head = head;	this.tail = tail;    }    public List getTail() {	return tail;    }    public static List mk(int len) {	List result = null;	while (len-- > 0)	    result = new List(new Object(), result);	return result;    }}`

### (1) JBCToGraph (SOUND transformation)

Constructed TerminationGraph.

### (2) Obligation:

Termination Graph based on JBC Program:
Test3.main([Ljava/lang/String;)V: Graph of 249 nodes with 1 SCC.

List.mk(I)LList;: Graph of 33 nodes with 1 SCC.

Test3.length(LList;)I: Graph of 47 nodes with 1 SCC.

### (3) TerminationGraphToSCCProof (SOUND transformation)

Splitted TerminationGraph to 3 SCCss.

### (5) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Test3.length(LList;)I
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

### (6) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 40 rules for P and 0 rules for R.

P rules:
2055_0_length_NULL(EOS(STATIC_2055), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2058_0_length_NULL(EOS(STATIC_2058), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2058_0_length_NULL(EOS(STATIC_2058), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2061_0_length_Load(EOS(STATIC_2061), java.lang.Object(o1486sub))
2064_0_length_InvokeMethod(EOS(STATIC_2064), java.lang.Object(o1486sub)) → 2067_0_getTail_Load(EOS(STATIC_2067), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2067_0_getTail_Load(EOS(STATIC_2067), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2076_0_getTail_FieldAccess(EOS(STATIC_2076), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2076_0_getTail_FieldAccess(EOS(STATIC_2076), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2084_0_getTail_FieldAccess(EOS(STATIC_2084), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2076_0_getTail_FieldAccess(EOS(STATIC_2076), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2085_0_getTail_FieldAccess(EOS(STATIC_2085), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2084_0_getTail_FieldAccess(EOS(STATIC_2084), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2089_0_getTail_FieldAccess(EOS(STATIC_2089), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2084_0_getTail_FieldAccess(EOS(STATIC_2084), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2090_0_getTail_FieldAccess(EOS(STATIC_2090), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2089_0_getTail_FieldAccess(EOS(STATIC_2089), java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505))) → 2096_0_getTail_FieldAccess(EOS(STATIC_2096), java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505)))
2096_0_getTail_FieldAccess(EOS(STATIC_2096), java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505))) → 2104_0_getTail_Return(EOS(STATIC_2104), java.lang.Object(List(EOC, o1505)), o1505)
2104_0_getTail_Return(EOS(STATIC_2104), java.lang.Object(List(EOC, o1505)), o1505) → 2114_0_length_Store(EOS(STATIC_2114), o1505)
2114_0_length_Store(EOS(STATIC_2114), o1505) → 2124_0_length_Inc(EOS(STATIC_2124), o1505)
2124_0_length_Inc(EOS(STATIC_2124), o1505) → 2135_0_length_JMP(EOS(STATIC_2135), o1505)
2050_0_length_Load(EOS(STATIC_2050), o1469) → 2055_0_length_NULL(EOS(STATIC_2055), o1469, o1469)
2090_0_getTail_FieldAccess(EOS(STATIC_2090), java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508))) → 2098_0_getTail_FieldAccess(EOS(STATIC_2098), java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508)))
2098_0_getTail_FieldAccess(EOS(STATIC_2098), java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508))) → 2105_0_getTail_Return(EOS(STATIC_2105), java.lang.Object(List(EOC, o1508)), o1508)
2105_0_getTail_Return(EOS(STATIC_2105), java.lang.Object(List(EOC, o1508)), o1508) → 2115_0_length_Store(EOS(STATIC_2115), o1508)
2115_0_length_Store(EOS(STATIC_2115), o1508) → 2126_0_length_Inc(EOS(STATIC_2126), o1508)
2126_0_length_Inc(EOS(STATIC_2126), o1508) → 2136_0_length_JMP(EOS(STATIC_2136), o1508)
2085_0_getTail_FieldAccess(EOS(STATIC_2085), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2092_0_getTail_FieldAccess(EOS(STATIC_2092), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2085_0_getTail_FieldAccess(EOS(STATIC_2085), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2093_0_getTail_FieldAccess(EOS(STATIC_2093), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2092_0_getTail_FieldAccess(EOS(STATIC_2092), java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511))) → 2099_0_getTail_FieldAccess(EOS(STATIC_2099), java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511)))
2099_0_getTail_FieldAccess(EOS(STATIC_2099), java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511))) → 2107_0_getTail_Return(EOS(STATIC_2107), java.lang.Object(List(EOC, o1511)), o1511)
2107_0_getTail_Return(EOS(STATIC_2107), java.lang.Object(List(EOC, o1511)), o1511) → 2117_0_length_Store(EOS(STATIC_2117), o1511)
2117_0_length_Store(EOS(STATIC_2117), o1511) → 2129_0_length_Inc(EOS(STATIC_2129), o1511)
2129_0_length_Inc(EOS(STATIC_2129), o1511) → 2139_0_length_JMP(EOS(STATIC_2139), o1511)
2093_0_getTail_FieldAccess(EOS(STATIC_2093), java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514))) → 2100_0_getTail_FieldAccess(EOS(STATIC_2100), java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514)))
2100_0_getTail_FieldAccess(EOS(STATIC_2100), java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514))) → 2110_0_getTail_Return(EOS(STATIC_2110), java.lang.Object(List(EOC, o1514)), o1514)
2110_0_getTail_Return(EOS(STATIC_2110), java.lang.Object(List(EOC, o1514)), o1514) → 2120_0_length_Store(EOS(STATIC_2120), o1514)
2120_0_length_Store(EOS(STATIC_2120), o1514) → 2131_0_length_Inc(EOS(STATIC_2131), o1514)
2131_0_length_Inc(EOS(STATIC_2131), o1514) → 2141_0_length_JMP(EOS(STATIC_2141), o1514)
R rules:

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.

P rules:
2055_0_length_NULL(EOS(STATIC_2055), java.lang.Object(List(EOC, x0)), java.lang.Object(List(EOC, x0))) → 2055_0_length_NULL(EOS(STATIC_2055), x0, x0)
R rules:

Filtered ground terms:

2055_0_length_NULL(x1, x2, x3) → 2055_0_length_NULL(x2, x3)
EOS(x1) → EOS
List(x1, x2) → List(x2)

Filtered duplicate args:

2055_0_length_NULL(x1, x2) → 2055_0_length_NULL(x2)

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.

P rules:
2055_0_length_NULL(java.lang.Object(List(x0))) → 2055_0_length_NULL(x0)
R rules:

Finished conversion. Obtained 1 rules for P and 0 rules for R. System has no predefined symbols.

P rules:
2055_0_LENGTH_NULL(java.lang.Object(List(x0))) → 2055_0_LENGTH_NULL(x0)
R rules:

### (7) Obligation:

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

The following domains are used:
none

R is empty.

The integer pair graph contains the following rules and edges:
(0): 2055_0_LENGTH_NULL(java.lang.Object(List(x0[0]))) → 2055_0_LENGTH_NULL(x0[0])

(0) -> (0), if (x0[0]* java.lang.Object(List(x0[0]')))

The set Q is empty.

### (8) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

### (9) Obligation:

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

2055_0_LENGTH_NULL(java.lang.Object(List(x0[0]))) → 2055_0_LENGTH_NULL(x0[0])

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

### (10) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

• 2055_0_LENGTH_NULL(java.lang.Object(List(x0[0]))) → 2055_0_LENGTH_NULL(x0[0])
The graph contains the following edges 1 > 1

### (12) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: List.mk(I)LList;
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

### (13) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 23 rules for P and 0 rules for R.

P rules:
766_0_mk_Inc(EOS(STATIC_766), i102, i102) → 773_0_mk_LE(EOS(STATIC_773), +(i102, -1), i102)
773_0_mk_LE(EOS(STATIC_773), i105, i109) → 781_0_mk_LE(EOS(STATIC_781), i105, i109)
781_0_mk_LE(EOS(STATIC_781), i105, i109) → 788_0_mk_New(EOS(STATIC_788), i105) | >(i109, 0)
788_0_mk_New(EOS(STATIC_788), i105) → 804_0_mk_Duplicate(EOS(STATIC_804), i105)
804_0_mk_Duplicate(EOS(STATIC_804), i105) → 818_0_mk_New(EOS(STATIC_818), i105)
818_0_mk_New(EOS(STATIC_818), i105) → 835_0_mk_Duplicate(EOS(STATIC_835), i105)
835_0_mk_Duplicate(EOS(STATIC_835), i105) → 853_0_mk_InvokeMethod(EOS(STATIC_853), i105)
974_0_<init>_FieldAccess(EOS(STATIC_974), i105) → 990_0_<init>_Return(EOS(STATIC_990), i105)
990_0_<init>_Return(EOS(STATIC_990), i105) → 998_0_mk_Store(EOS(STATIC_998), i105)
998_0_mk_Store(EOS(STATIC_998), i105) → 1007_0_mk_JMP(EOS(STATIC_1007), i105)
755_0_mk_Load(EOS(STATIC_755), i102) → 766_0_mk_Inc(EOS(STATIC_766), i102, i102)
R rules:

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.

P rules:
766_0_mk_Inc(EOS(STATIC_766), x0, x0) → 766_0_mk_Inc(EOS(STATIC_766), +(x0, -1), +(x0, -1)) | >(x0, 0)
R rules:

Filtered ground terms:

766_0_mk_Inc(x1, x2, x3) → 766_0_mk_Inc(x2, x3)
EOS(x1) → EOS
Cond_766_0_mk_Inc(x1, x2, x3, x4) → Cond_766_0_mk_Inc(x1, x3, x4)

Filtered duplicate args:

766_0_mk_Inc(x1, x2) → 766_0_mk_Inc(x2)
Cond_766_0_mk_Inc(x1, x2, x3) → Cond_766_0_mk_Inc(x1, x3)

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.

P rules:
766_0_mk_Inc(x0) → 766_0_mk_Inc(+(x0, -1)) | >(x0, 0)
R rules:

Finished conversion. Obtained 2 rules for P and 0 rules for R. System has predefined symbols.

P rules:
766_0_MK_INC(x0) → COND_766_0_MK_INC(>(x0, 0), x0)
COND_766_0_MK_INC(TRUE, x0) → 766_0_MK_INC(+(x0, -1))
R rules:

### (14) Obligation:

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

The following domains are used:

Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): 766_0_MK_INC(x0[0]) → COND_766_0_MK_INC(x0[0] > 0, x0[0])
(1): COND_766_0_MK_INC(TRUE, x0[1]) → 766_0_MK_INC(x0[1] + -1)

(0) -> (1), if (x0[0] > 0x0[0]* x0[1])

(1) -> (0), if (x0[1] + -1* x0[0])

The set Q is empty.

### (15) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: false Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpCand1ShapeHeuristic@34180abd Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 0 Max Right Steps: 0

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 766_0_MK_INC(x0) → COND_766_0_MK_INC(>(x0, 0), x0) the following chains were created:
• We consider the chain 766_0_MK_INC(x0[0]) → COND_766_0_MK_INC(>(x0[0], 0), x0[0]), COND_766_0_MK_INC(TRUE, x0[1]) → 766_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

(1)    (>(x0[0], 0)=TRUEx0[0]=x0[1]766_0_MK_INC(x0[0])≥NonInfC∧766_0_MK_INC(x0[0])≥COND_766_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_766_0_MK_INC(>(x0[0], 0), x0[0])), ≥))

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

(2)    (>(x0[0], 0)=TRUE766_0_MK_INC(x0[0])≥NonInfC∧766_0_MK_INC(x0[0])≥COND_766_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_766_0_MK_INC(>(x0[0], 0), x0[0])), ≥))

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

(3)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_766_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)

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

(4)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_766_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)

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

(5)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_766_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)

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

(6)    (x0[0] ≥ 0 ⇒ (UIncreasing(COND_766_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)

For Pair COND_766_0_MK_INC(TRUE, x0) → 766_0_MK_INC(+(x0, -1)) the following chains were created:
• We consider the chain COND_766_0_MK_INC(TRUE, x0[1]) → 766_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

(7)    (COND_766_0_MK_INC(TRUE, x0[1])≥NonInfC∧COND_766_0_MK_INC(TRUE, x0[1])≥766_0_MK_INC(+(x0[1], -1))∧(UIncreasing(766_0_MK_INC(+(x0[1], -1))), ≥))

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

(8)    ((UIncreasing(766_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)

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

(9)    ((UIncreasing(766_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)

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

(10)    ((UIncreasing(766_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)

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

(11)    ((UIncreasing(766_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧0 = 0∧[2 + (-1)bso_11] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• 766_0_MK_INC(x0) → COND_766_0_MK_INC(>(x0, 0), x0)
• (x0[0] ≥ 0 ⇒ (UIncreasing(COND_766_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)

• COND_766_0_MK_INC(TRUE, x0) → 766_0_MK_INC(+(x0, -1))
• ((UIncreasing(766_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧0 = 0∧[2 + (-1)bso_11] ≥ 0)

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

POL(TRUE) = 0
POL(FALSE) = 0
POL(766_0_MK_INC(x1)) = [2]x1
POL(COND_766_0_MK_INC(x1, x2)) = [2]x2
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(+(x1, x2)) = x1 + x2
POL(-1) = [-1]

The following pairs are in P>:

COND_766_0_MK_INC(TRUE, x0[1]) → 766_0_MK_INC(+(x0[1], -1))

The following pairs are in Pbound:

766_0_MK_INC(x0[0]) → COND_766_0_MK_INC(>(x0[0], 0), x0[0])

The following pairs are in P:

766_0_MK_INC(x0[0]) → COND_766_0_MK_INC(>(x0[0], 0), x0[0])

There are no usable rules.

### (17) Obligation:

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

The following domains are used:

Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): 766_0_MK_INC(x0[0]) → COND_766_0_MK_INC(x0[0] > 0, x0[0])

The set Q is empty.

### (18) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs 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

R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_766_0_MK_INC(TRUE, x0[1]) → 766_0_MK_INC(x0[1] + -1)

The set Q is empty.

### (21) IDependencyGraphProof (EQUIVALENT transformation)

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

### (23) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Test3.main([Ljava/lang/String;)V
SCC calls the following helper methods: Test3.length(LList;)I
Performed SCC analyses: UsedFieldsAnalysis

### (24) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 123 rules for P and 71 rules for R.

P rules:
2220_0_main_InvokeMethod(EOS(STATIC_2220), o1633, o1634, o1635, o1633) → 2221_1_main_InvokeMethod(2221_0_length_ConstantStackPush(EOS(STATIC_2221), o1633), o1633, o1634, o1635, o1633)
2221_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), i301), o1655, o1634, o1635, o1655) → 2229_0_length_Return(EOS(STATIC_2229), o1655, o1634, o1635, o1655, i301)
2229_0_length_Return(EOS(STATIC_2229), o1655, o1634, o1635, o1655, i301) → 2230_0_main_Load(EOS(STATIC_2230), o1655, o1634, o1635, i301)
2230_0_main_Load(EOS(STATIC_2230), o1655, o1634, o1635, i301) → 2231_0_main_InvokeMethod(EOS(STATIC_2231), o1655, o1634, o1635, i301, o1634)
2231_0_main_InvokeMethod(EOS(STATIC_2231), o1655, o1634, o1635, i301, o1634) → 2233_1_main_InvokeMethod(2233_0_length_ConstantStackPush(EOS(STATIC_2233), o1634), o1655, o1634, o1635, i301, o1634)
2233_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), i324), o1655, o1666, o1667, i301, o1666) → 2242_0_length_Return(EOS(STATIC_2242), o1655, o1666, o1667, i301, o1666, i324)
2242_0_length_Return(EOS(STATIC_2242), o1655, o1666, o1667, i301, o1666, i324) → 2244_0_main_IntArithmetic(EOS(STATIC_2244), o1655, o1666, o1667, i301, i324)
2244_0_main_IntArithmetic(EOS(STATIC_2244), o1655, o1666, o1667, i301, i324) → 2245_0_main_Load(EOS(STATIC_2245), o1655, o1666, o1667, +(i301, i324)) | &&(>=(i301, 0), >=(i324, 0))
2245_0_main_Load(EOS(STATIC_2245), o1655, o1666, o1667, i325) → 2246_0_main_InvokeMethod(EOS(STATIC_2246), o1655, o1666, o1667, i325, o1667)
2246_0_main_InvokeMethod(EOS(STATIC_2246), o1655, o1666, o1667, i325, o1667) → 2247_1_main_InvokeMethod(2247_0_length_ConstantStackPush(EOS(STATIC_2247), o1667), o1655, o1666, o1667, i325, o1667)
2247_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), i301), o1655, o1679, o1678, i325, o1678) → 2258_0_length_Return(EOS(STATIC_2258), o1655, o1679, o1678, i325, o1678, i301)
2258_0_length_Return(EOS(STATIC_2258), o1655, o1679, o1678, i325, o1678, i301) → 2259_0_main_ConstantStackPush(EOS(STATIC_2259), o1655, o1679, o1678, i325, i301)
2259_0_main_ConstantStackPush(EOS(STATIC_2259), o1655, o1679, o1678, i325, i301) → 2260_0_main_IntArithmetic(EOS(STATIC_2260), o1655, o1679, o1678, i325, i301, 5)
2260_0_main_IntArithmetic(EOS(STATIC_2260), o1655, o1679, o1678, i325, i301, matching1) → 2262_0_main_IntArithmetic(EOS(STATIC_2262), o1655, o1679, o1678, i325, *(i301, 5)) | =(matching1, 5)
2262_0_main_IntArithmetic(EOS(STATIC_2262), o1655, o1679, o1678, i325, i326) → 2263_0_main_LE(EOS(STATIC_2263), o1655, o1679, o1678, +(i325, i326)) | &&(>=(i325, 0), >=(i326, 0))
2263_0_main_LE(EOS(STATIC_2263), o1655, o1679, o1678, i329) → 2266_0_main_LE(EOS(STATIC_2266), o1655, o1679, o1678, i329)
2266_0_main_LE(EOS(STATIC_2266), o1655, o1679, o1678, i329) → 2268_0_main_Load(EOS(STATIC_2268), o1655, o1679, o1678) | >(i329, 0)
2268_0_main_Load(EOS(STATIC_2268), o1655, o1679, o1678) → 2271_0_main_InvokeMethod(EOS(STATIC_2271), o1655, o1679, o1678, o1655)
2271_0_main_InvokeMethod(EOS(STATIC_2271), o1655, o1679, o1678, o1655) → 2272_1_main_InvokeMethod(2272_0_length_ConstantStackPush(EOS(STATIC_2272), o1655), o1655, o1679, o1678, o1655)
2272_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), i301), o1688, o1679, o1678, o1688) → 2279_0_length_Return(EOS(STATIC_2279), o1688, o1679, o1678, o1688, i301)
2279_0_length_Return(EOS(STATIC_2279), o1688, o1679, o1678, o1688, i301) → 2281_0_main_ConstantStackPush(EOS(STATIC_2281), o1688, o1679, o1678, i301)
2281_0_main_ConstantStackPush(EOS(STATIC_2281), o1688, o1679, o1678, i301) → 2282_0_main_IntArithmetic(EOS(STATIC_2282), o1688, o1679, o1678, i301, 2)
2282_0_main_IntArithmetic(EOS(STATIC_2282), o1688, o1679, o1678, i301, matching1) → 2283_0_main_ConstantStackPush(EOS(STATIC_2283), o1688, o1679, o1678, %(i301, 2)) | =(matching1, 2)
2283_0_main_ConstantStackPush(EOS(STATIC_2283), o1688, o1679, o1678, i330) → 2285_0_main_NE(EOS(STATIC_2285), o1688, o1679, o1678, i330, 1)
2285_0_main_NE(EOS(STATIC_2285), o1688, o1679, o1678, matching1, matching2) → 2287_0_main_NE(EOS(STATIC_2287), o1688, o1679, o1678, 0, 1) | &&(=(matching1, 0), =(matching2, 1))
2285_0_main_NE(EOS(STATIC_2285), o1688, o1679, o1678, matching1, matching2) → 2288_0_main_NE(EOS(STATIC_2288), o1688, o1679, o1678, 1, 1) | &&(=(matching1, 1), =(matching2, 1))
2287_0_main_NE(EOS(STATIC_2287), o1688, o1679, o1678, matching1, matching2) → 2289_0_main_Load(EOS(STATIC_2289), o1688, o1679, o1678) | &&(=(matching1, 0), =(matching2, 1))
2289_0_main_Load(EOS(STATIC_2289), o1688, o1679, o1678) → 2292_0_main_InvokeMethod(EOS(STATIC_2292), o1688, o1679, o1678, o1679)
2292_0_main_InvokeMethod(EOS(STATIC_2292), o1688, o1679, o1678, o1679) → 2295_1_main_InvokeMethod(2295_0_length_ConstantStackPush(EOS(STATIC_2295), o1679), o1688, o1679, o1678, o1679)
2295_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), i301), o1688, o1708, o1709, o1708) → 2319_0_length_Return(EOS(STATIC_2319), o1688, o1708, o1709, o1708, i301)
2319_0_length_Return(EOS(STATIC_2319), o1688, o1708, o1709, o1708, i301) → 2323_0_main_Load(EOS(STATIC_2323), o1688, o1708, o1709, i301)
2323_0_main_Load(EOS(STATIC_2323), o1688, o1708, o1709, i301) → 2327_0_main_InvokeMethod(EOS(STATIC_2327), o1688, o1708, o1709, i301, o1709)
2327_0_main_InvokeMethod(EOS(STATIC_2327), o1688, o1708, o1709, i301, o1709) → 2332_1_main_InvokeMethod(2332_0_length_ConstantStackPush(EOS(STATIC_2332), o1709), o1688, o1708, o1709, i301, o1709)
2332_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), i331), o1688, o1726, o1725, i301, o1725) → 2348_0_length_Return(EOS(STATIC_2348), o1688, o1726, o1725, i301, o1725, i331)
2348_0_length_Return(EOS(STATIC_2348), o1688, o1726, o1725, i301, o1725, i331) → 2351_0_main_LE(EOS(STATIC_2351), o1688, o1726, o1725, i301, i331)
2351_0_main_LE(EOS(STATIC_2351), o1688, o1726, o1725, i301, i331) → 2353_0_main_LE(EOS(STATIC_2353), o1688, o1726, o1725, i301, i331)
2351_0_main_LE(EOS(STATIC_2351), o1688, o1726, o1725, i301, i331) → 2355_0_main_LE(EOS(STATIC_2355), o1688, o1726, o1725, i301, i331)
2353_0_main_LE(EOS(STATIC_2353), o1688, o1726, o1725, i301, i331) → 2359_0_main_Load(EOS(STATIC_2359), o1688, o1726, o1725) | <=(i301, i331)
2359_0_main_Load(EOS(STATIC_2359), o1688, o1726, o1725) → 2364_0_main_NONNULL(EOS(STATIC_2364), o1688, o1726, o1725, o1725)
2364_0_main_NONNULL(EOS(STATIC_2364), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(o1730sub)) → 2368_0_main_NONNULL(EOS(STATIC_2368), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(o1730sub))
2368_0_main_NONNULL(EOS(STATIC_2368), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(o1730sub)) → 2374_0_main_New(EOS(STATIC_2374), o1688, o1726, java.lang.Object(o1730sub))
2374_0_main_New(EOS(STATIC_2374), o1688, o1726, java.lang.Object(o1730sub)) → 2381_0_main_Duplicate(EOS(STATIC_2381), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)))
2381_0_main_Duplicate(EOS(STATIC_2381), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL))) → 2387_0_main_New(EOS(STATIC_2387), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
2387_0_main_New(EOS(STATIC_2387), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 2394_0_main_Duplicate(EOS(STATIC_2394), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC))
2394_0_main_Duplicate(EOS(STATIC_2394), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) → 2402_0_main_InvokeMethod(EOS(STATIC_2402), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC))
2402_0_main_InvokeMethod(EOS(STATIC_2402), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC)) → 2409_0_main_Load(EOS(STATIC_2409), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC))
2409_0_main_Load(EOS(STATIC_2409), o1688, o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) → 2414_0_main_InvokeMethod(EOS(STATIC_2414), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688)
2414_0_main_InvokeMethod(EOS(STATIC_2414), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688) → 2420_0_<init>_Load(EOS(STATIC_2420), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688)
2420_0_<init>_Load(EOS(STATIC_2420), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688) → 2431_0_<init>_InvokeMethod(EOS(STATIC_2431), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)))
2431_0_<init>_InvokeMethod(EOS(STATIC_2431), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL))) → 2434_0_<init>_Load(EOS(STATIC_2434), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688)
2434_0_<init>_Load(EOS(STATIC_2434), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688) → 2437_0_<init>_Load(EOS(STATIC_2437), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)))
2437_0_<init>_Load(EOS(STATIC_2437), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL))) → 2439_0_<init>_FieldAccess(EOS(STATIC_2439), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), o1688, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC))
2439_0_<init>_FieldAccess(EOS(STATIC_2439), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), o1688, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) → 2443_0_<init>_Load(EOS(STATIC_2443), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), o1688)
2443_0_<init>_Load(EOS(STATIC_2443), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), o1688) → 2448_0_<init>_Load(EOS(STATIC_2448), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, o1688, java.lang.Object(List(EOC, NULL)))
2448_0_<init>_Load(EOS(STATIC_2448), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, o1688, java.lang.Object(List(EOC, NULL))) → 2452_0_<init>_FieldAccess(EOS(STATIC_2452), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), o1688)
2452_0_<init>_FieldAccess(EOS(STATIC_2452), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688, java.lang.Object(List(EOC, NULL)), o1688) → 2457_0_<init>_Return(EOS(STATIC_2457), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1688)), java.lang.Object(EOC), o1688)
2457_0_<init>_Return(EOS(STATIC_2457), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1688)), java.lang.Object(EOC), o1688) → 2461_0_main_Store(EOS(STATIC_2461), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1688)))
2461_0_main_Store(EOS(STATIC_2461), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1688))) → 2464_0_main_New(EOS(STATIC_2464), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub))
2464_0_main_New(EOS(STATIC_2464), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub)) → 2467_0_main_Duplicate(EOS(STATIC_2467), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)))
2467_0_main_Duplicate(EOS(STATIC_2467), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL))) → 2470_0_main_New(EOS(STATIC_2470), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
2470_0_main_New(EOS(STATIC_2470), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 2474_0_main_Duplicate(EOS(STATIC_2474), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC))
2474_0_main_Duplicate(EOS(STATIC_2474), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) → 2477_0_main_InvokeMethod(EOS(STATIC_2477), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC))
2477_0_main_InvokeMethod(EOS(STATIC_2477), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC)) → 2480_0_main_Load(EOS(STATIC_2480), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC))
2480_0_main_Load(EOS(STATIC_2480), java.lang.Object(List(EOC, o1688)), o1726, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) → 2484_0_main_InvokeMethod(EOS(STATIC_2484), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726)
2484_0_main_InvokeMethod(EOS(STATIC_2484), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726) → 2486_0_<init>_Load(EOS(STATIC_2486), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726)
2486_0_<init>_Load(EOS(STATIC_2486), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726) → 2488_0_<init>_InvokeMethod(EOS(STATIC_2488), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)))
2488_0_<init>_InvokeMethod(EOS(STATIC_2488), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL))) → 2490_0_<init>_Load(EOS(STATIC_2490), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726)
2490_0_<init>_Load(EOS(STATIC_2490), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726) → 2492_0_<init>_Load(EOS(STATIC_2492), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)))
2492_0_<init>_Load(EOS(STATIC_2492), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL))) → 2494_0_<init>_FieldAccess(EOS(STATIC_2494), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), o1726, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC))
2494_0_<init>_FieldAccess(EOS(STATIC_2494), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), o1726, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) → 2497_0_<init>_Load(EOS(STATIC_2497), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), o1726)
2497_0_<init>_Load(EOS(STATIC_2497), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), o1726) → 2499_0_<init>_Load(EOS(STATIC_2499), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, o1726, java.lang.Object(List(EOC, NULL)))
2499_0_<init>_Load(EOS(STATIC_2499), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, o1726, java.lang.Object(List(EOC, NULL))) → 2501_0_<init>_FieldAccess(EOS(STATIC_2501), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), o1726)
2501_0_<init>_FieldAccess(EOS(STATIC_2501), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1726, java.lang.Object(List(EOC, NULL)), o1726) → 2503_0_<init>_Return(EOS(STATIC_2503), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1726)), java.lang.Object(List(EOC, o1726)), java.lang.Object(EOC), o1726)
2503_0_<init>_Return(EOS(STATIC_2503), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1726)), java.lang.Object(List(EOC, o1726)), java.lang.Object(EOC), o1726) → 2505_0_main_Store(EOS(STATIC_2505), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1726)))
2505_0_main_Store(EOS(STATIC_2505), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1726))) → 2506_0_main_Load(EOS(STATIC_2506), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(o1730sub))
2506_0_main_Load(EOS(STATIC_2506), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(o1730sub)) → 2508_0_main_InvokeMethod(EOS(STATIC_2508), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(o1730sub))
2508_0_main_InvokeMethod(EOS(STATIC_2508), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(o1730sub)) → 2509_0_getTail_Load(EOS(STATIC_2509), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(o1730sub), java.lang.Object(o1730sub))
2509_0_getTail_Load(EOS(STATIC_2509), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(o1730sub), java.lang.Object(o1730sub)) → 2513_0_getTail_FieldAccess(EOS(STATIC_2513), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(o1730sub), java.lang.Object(o1730sub))
2513_0_getTail_FieldAccess(EOS(STATIC_2513), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(o1730sub), java.lang.Object(o1730sub)) → 2515_0_getTail_FieldAccess(EOS(STATIC_2515), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(o1730sub), java.lang.Object(o1730sub))
2513_0_getTail_FieldAccess(EOS(STATIC_2513), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(o1730sub))), java.lang.Object(o1730sub), java.lang.Object(o1730sub)) → 2516_0_getTail_FieldAccess(EOS(STATIC_2516), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(o1730sub))), java.lang.Object(o1730sub), java.lang.Object(o1730sub))
2515_0_getTail_FieldAccess(EOS(STATIC_2515), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(List(EOC, o1842)), java.lang.Object(List(EOC, o1842))) → 2518_0_getTail_FieldAccess(EOS(STATIC_2518), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(List(EOC, o1842)), java.lang.Object(List(EOC, o1842)))
2518_0_getTail_FieldAccess(EOS(STATIC_2518), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(List(EOC, o1842)), java.lang.Object(List(EOC, o1842))) → 2522_0_getTail_Return(EOS(STATIC_2522), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(List(EOC, o1842)), o1842)
2522_0_getTail_Return(EOS(STATIC_2522), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), java.lang.Object(List(EOC, o1842)), o1842) → 2527_0_main_Store(EOS(STATIC_2527), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), o1842)
2527_0_main_Store(EOS(STATIC_2527), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), o1842) → 2530_0_main_JMP(EOS(STATIC_2530), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), o1842)
2530_0_main_JMP(EOS(STATIC_2530), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), o1842) → 2534_0_main_Load(EOS(STATIC_2534), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), o1842)
2534_0_main_Load(EOS(STATIC_2534), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), o1842) → 2218_0_main_Load(EOS(STATIC_2218), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1726)), o1842)
2218_0_main_Load(EOS(STATIC_2218), o1633, o1634, o1635) → 2220_0_main_InvokeMethod(EOS(STATIC_2220), o1633, o1634, o1635, o1633)
2516_0_getTail_FieldAccess(EOS(STATIC_2516), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), java.lang.Object(List(EOC, o1845)), java.lang.Object(List(EOC, o1845))) → 2519_0_getTail_FieldAccess(EOS(STATIC_2519), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), java.lang.Object(List(EOC, o1845)), java.lang.Object(List(EOC, o1845)))
2519_0_getTail_FieldAccess(EOS(STATIC_2519), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), java.lang.Object(List(EOC, o1845)), java.lang.Object(List(EOC, o1845))) → 2525_0_getTail_Return(EOS(STATIC_2525), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), java.lang.Object(List(EOC, o1845)), o1845)
2525_0_getTail_Return(EOS(STATIC_2525), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), java.lang.Object(List(EOC, o1845)), o1845) → 2528_0_main_Store(EOS(STATIC_2528), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845)
2528_0_main_Store(EOS(STATIC_2528), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845) → 2532_0_main_JMP(EOS(STATIC_2532), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845)
2532_0_main_JMP(EOS(STATIC_2532), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845) → 2537_0_main_Load(EOS(STATIC_2537), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845)
2537_0_main_Load(EOS(STATIC_2537), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845) → 2218_0_main_Load(EOS(STATIC_2218), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845)
2355_0_main_LE(EOS(STATIC_2355), o1688, o1726, o1725, i301, i331) → 2361_0_main_Load(EOS(STATIC_2361), o1688, o1726, o1725) | >(i301, i331)
2361_0_main_Load(EOS(STATIC_2361), o1688, o1726, o1725) → 2366_0_main_InvokeMethod(EOS(STATIC_2366), o1688, o1725, o1726)
2366_0_main_InvokeMethod(EOS(STATIC_2366), o1688, o1725, java.lang.Object(o1731sub)) → 2370_0_main_InvokeMethod(EOS(STATIC_2370), o1688, o1725, java.lang.Object(o1731sub))
2370_0_main_InvokeMethod(EOS(STATIC_2370), o1688, o1725, java.lang.Object(o1731sub)) → 2377_0_getTail_Load(EOS(STATIC_2377), o1688, o1725, java.lang.Object(o1731sub), java.lang.Object(o1731sub))
2377_0_getTail_Load(EOS(STATIC_2377), o1688, o1725, java.lang.Object(o1731sub), java.lang.Object(o1731sub)) → 2392_0_getTail_FieldAccess(EOS(STATIC_2392), o1688, o1725, java.lang.Object(o1731sub), java.lang.Object(o1731sub))
2392_0_getTail_FieldAccess(EOS(STATIC_2392), o1688, o1725, java.lang.Object(o1731sub), java.lang.Object(o1731sub)) → 2395_0_getTail_FieldAccess(EOS(STATIC_2395), o1688, o1725, java.lang.Object(o1731sub), java.lang.Object(o1731sub))
2392_0_getTail_FieldAccess(EOS(STATIC_2392), o1688, java.lang.Object(o1731sub), java.lang.Object(o1731sub), java.lang.Object(o1731sub)) → 2396_0_getTail_FieldAccess(EOS(STATIC_2396), o1688, java.lang.Object(o1731sub), java.lang.Object(o1731sub), java.lang.Object(o1731sub))
2395_0_getTail_FieldAccess(EOS(STATIC_2395), o1688, o1725, java.lang.Object(List(EOC, o1746)), java.lang.Object(List(EOC, o1746))) → 2404_0_getTail_FieldAccess(EOS(STATIC_2404), o1688, o1725, java.lang.Object(List(EOC, o1746)), java.lang.Object(List(EOC, o1746)))
2404_0_getTail_FieldAccess(EOS(STATIC_2404), o1688, o1725, java.lang.Object(List(EOC, o1746)), java.lang.Object(List(EOC, o1746))) → 2410_0_getTail_Return(EOS(STATIC_2410), o1688, o1725, java.lang.Object(List(EOC, o1746)), o1746)
2410_0_getTail_Return(EOS(STATIC_2410), o1688, o1725, java.lang.Object(List(EOC, o1746)), o1746) → 2416_0_main_Store(EOS(STATIC_2416), o1688, o1725, o1746)
2416_0_main_Store(EOS(STATIC_2416), o1688, o1725, o1746) → 2421_0_main_JMP(EOS(STATIC_2421), o1688, o1746, o1725)
2421_0_main_JMP(EOS(STATIC_2421), o1688, o1746, o1725) → 2426_0_main_Load(EOS(STATIC_2426), o1688, o1746, o1725)
2396_0_getTail_FieldAccess(EOS(STATIC_2396), o1688, java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749))) → 2405_0_getTail_FieldAccess(EOS(STATIC_2405), o1688, java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)))
2405_0_getTail_FieldAccess(EOS(STATIC_2405), o1688, java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749))) → 2413_0_getTail_Return(EOS(STATIC_2413), o1688, java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)), o1749)
2413_0_getTail_Return(EOS(STATIC_2413), o1688, java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)), o1749) → 2417_0_main_Store(EOS(STATIC_2417), o1688, java.lang.Object(List(EOC, o1749)), o1749)
2417_0_main_Store(EOS(STATIC_2417), o1688, java.lang.Object(List(EOC, o1749)), o1749) → 2422_0_main_JMP(EOS(STATIC_2422), o1688, o1749, java.lang.Object(List(EOC, o1749)))
2422_0_main_JMP(EOS(STATIC_2422), o1688, o1749, java.lang.Object(List(EOC, o1749))) → 2429_0_main_Load(EOS(STATIC_2429), o1688, o1749, java.lang.Object(List(EOC, o1749)))
2288_0_main_NE(EOS(STATIC_2288), o1688, o1679, o1678, matching1, matching2) → 2291_0_main_Load(EOS(STATIC_2291), o1688, o1679, o1678) | &&(=(matching1, 1), =(matching2, 1))
2291_0_main_Load(EOS(STATIC_2291), o1688, o1679, o1678) → 2294_0_main_InvokeMethod(EOS(STATIC_2294), o1679, o1678, o1688)
2294_0_main_InvokeMethod(EOS(STATIC_2294), o1679, o1678, java.lang.Object(o1691sub)) → 2296_0_main_InvokeMethod(EOS(STATIC_2296), o1679, o1678, java.lang.Object(o1691sub))
2296_0_main_InvokeMethod(EOS(STATIC_2296), o1679, o1678, java.lang.Object(o1691sub)) → 2300_0_getTail_Load(EOS(STATIC_2300), o1679, o1678, java.lang.Object(o1691sub), java.lang.Object(o1691sub))
2300_0_getTail_Load(EOS(STATIC_2300), o1679, o1678, java.lang.Object(o1691sub), java.lang.Object(o1691sub)) → 2307_0_getTail_FieldAccess(EOS(STATIC_2307), o1679, o1678, java.lang.Object(o1691sub), java.lang.Object(o1691sub))
2307_0_getTail_FieldAccess(EOS(STATIC_2307), o1679, o1678, java.lang.Object(List(EOC, o1702)), java.lang.Object(List(EOC, o1702))) → 2311_0_getTail_FieldAccess(EOS(STATIC_2311), o1679, o1678, java.lang.Object(List(EOC, o1702)), java.lang.Object(List(EOC, o1702)))
2311_0_getTail_FieldAccess(EOS(STATIC_2311), o1679, o1678, java.lang.Object(List(EOC, o1702)), java.lang.Object(List(EOC, o1702))) → 2317_0_getTail_Return(EOS(STATIC_2317), o1679, o1678, java.lang.Object(List(EOC, o1702)), o1702)
2317_0_getTail_Return(EOS(STATIC_2317), o1679, o1678, java.lang.Object(List(EOC, o1702)), o1702) → 2321_0_main_Store(EOS(STATIC_2321), o1679, o1678, o1702)
2321_0_main_Store(EOS(STATIC_2321), o1679, o1678, o1702) → 2324_0_main_JMP(EOS(STATIC_2324), o1702, o1679, o1678)
2324_0_main_JMP(EOS(STATIC_2324), o1702, o1679, o1678) → 2329_0_main_Load(EOS(STATIC_2329), o1702, o1679, o1678)
R rules:
2221_0_length_ConstantStackPush(EOS(STATIC_2221), o1633) → 2223_0_length_ConstantStackPush(EOS(STATIC_2223), o1633)
2223_0_length_ConstantStackPush(EOS(STATIC_2223), o1633) → 2225_0_length_ConstantStackPush(EOS(STATIC_2225), o1633)
2225_0_length_ConstantStackPush(EOS(STATIC_2225), o1633) → 1677_0_length_ConstantStackPush(EOS(STATIC_1677), o1633)
2233_0_length_ConstantStackPush(EOS(STATIC_2233), o1634) → 2234_0_length_ConstantStackPush(EOS(STATIC_2234), o1634)
2234_0_length_ConstantStackPush(EOS(STATIC_2234), o1634) → 2236_0_length_ConstantStackPush(EOS(STATIC_2236), o1634)
2236_0_length_ConstantStackPush(EOS(STATIC_2236), o1634) → 2238_0_length_ConstantStackPush(EOS(STATIC_2238), o1634)
2238_0_length_ConstantStackPush(EOS(STATIC_2238), o1634) → 1677_0_length_ConstantStackPush(EOS(STATIC_1677), o1634)
2247_0_length_ConstantStackPush(EOS(STATIC_2247), o1667) → 2248_0_length_ConstantStackPush(EOS(STATIC_2248), o1667)
2248_0_length_ConstantStackPush(EOS(STATIC_2248), o1667) → 2251_0_length_ConstantStackPush(EOS(STATIC_2251), o1667)
2251_0_length_ConstantStackPush(EOS(STATIC_2251), o1667) → 2253_0_length_ConstantStackPush(EOS(STATIC_2253), o1667)
2253_0_length_ConstantStackPush(EOS(STATIC_2253), o1667) → 1677_0_length_ConstantStackPush(EOS(STATIC_1677), o1667)
2272_0_length_ConstantStackPush(EOS(STATIC_2272), o1655) → 2274_0_length_ConstantStackPush(EOS(STATIC_2274), o1655)
2274_0_length_ConstantStackPush(EOS(STATIC_2274), o1655) → 2276_0_length_ConstantStackPush(EOS(STATIC_2276), o1655)
2276_0_length_ConstantStackPush(EOS(STATIC_2276), o1655) → 1677_0_length_ConstantStackPush(EOS(STATIC_1677), o1655)
2295_0_length_ConstantStackPush(EOS(STATIC_2295), o1679) → 2299_0_length_ConstantStackPush(EOS(STATIC_2299), o1679)
2299_0_length_ConstantStackPush(EOS(STATIC_2299), o1679) → 2305_0_length_ConstantStackPush(EOS(STATIC_2305), o1679)
2305_0_length_ConstantStackPush(EOS(STATIC_2305), o1679) → 2309_0_length_ConstantStackPush(EOS(STATIC_2309), o1679)
2309_0_length_ConstantStackPush(EOS(STATIC_2309), o1679) → 1677_0_length_ConstantStackPush(EOS(STATIC_1677), o1679)
2332_0_length_ConstantStackPush(EOS(STATIC_2332), o1709) → 2333_0_length_ConstantStackPush(EOS(STATIC_2333), o1709)
2333_0_length_ConstantStackPush(EOS(STATIC_2333), o1709) → 2338_0_length_ConstantStackPush(EOS(STATIC_2338), o1709)
2338_0_length_ConstantStackPush(EOS(STATIC_2338), o1709) → 2340_0_length_ConstantStackPush(EOS(STATIC_2340), o1709)
2340_0_length_ConstantStackPush(EOS(STATIC_2340), o1709) → 1677_0_length_ConstantStackPush(EOS(STATIC_1677), o1709)
1677_0_length_ConstantStackPush(EOS(STATIC_1677), o1030) → 1678_0_length_Store(EOS(STATIC_1678), o1030, 0)
1678_0_length_Store(EOS(STATIC_1678), o1030, matching1) → 1680_0_length_Load(EOS(STATIC_1680), o1030, 0) | =(matching1, 0)
2050_0_length_Load(EOS(STATIC_2050), o1469, i301) → 2055_0_length_NULL(EOS(STATIC_2055), o1469, i301, o1469)
2055_0_length_NULL(EOS(STATIC_2055), java.lang.Object(o1486sub), i301, java.lang.Object(o1486sub)) → 2058_0_length_NULL(EOS(STATIC_2058), java.lang.Object(o1486sub), i301, java.lang.Object(o1486sub))
2055_0_length_NULL(EOS(STATIC_2055), NULL, i301, NULL) → 2059_0_length_NULL(EOS(STATIC_2059), NULL, i301, NULL)
2058_0_length_NULL(EOS(STATIC_2058), java.lang.Object(o1486sub), i301, java.lang.Object(o1486sub)) → 2061_0_length_Load(EOS(STATIC_2061), java.lang.Object(o1486sub), i301)
2059_0_length_NULL(EOS(STATIC_2059), NULL, i301, NULL) → 2063_0_length_Load(EOS(STATIC_2063), i301)
2061_0_length_Load(EOS(STATIC_2061), java.lang.Object(o1486sub), i301) → 2064_0_length_InvokeMethod(EOS(STATIC_2064), i301, java.lang.Object(o1486sub))
2064_0_length_InvokeMethod(EOS(STATIC_2064), i301, java.lang.Object(o1486sub)) → 2067_0_getTail_Load(EOS(STATIC_2067), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2067_0_getTail_Load(EOS(STATIC_2067), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2076_0_getTail_FieldAccess(EOS(STATIC_2076), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2076_0_getTail_FieldAccess(EOS(STATIC_2076), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2084_0_getTail_FieldAccess(EOS(STATIC_2084), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2076_0_getTail_FieldAccess(EOS(STATIC_2076), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2085_0_getTail_FieldAccess(EOS(STATIC_2085), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2084_0_getTail_FieldAccess(EOS(STATIC_2084), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2089_0_getTail_FieldAccess(EOS(STATIC_2089), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2084_0_getTail_FieldAccess(EOS(STATIC_2084), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2090_0_getTail_FieldAccess(EOS(STATIC_2090), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2085_0_getTail_FieldAccess(EOS(STATIC_2085), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2092_0_getTail_FieldAccess(EOS(STATIC_2092), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2085_0_getTail_FieldAccess(EOS(STATIC_2085), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2093_0_getTail_FieldAccess(EOS(STATIC_2093), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2089_0_getTail_FieldAccess(EOS(STATIC_2089), i301, java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505))) → 2096_0_getTail_FieldAccess(EOS(STATIC_2096), i301, java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505)))
2090_0_getTail_FieldAccess(EOS(STATIC_2090), i301, java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508))) → 2098_0_getTail_FieldAccess(EOS(STATIC_2098), i301, java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508)))
2092_0_getTail_FieldAccess(EOS(STATIC_2092), i301, java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511))) → 2099_0_getTail_FieldAccess(EOS(STATIC_2099), i301, java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511)))
2093_0_getTail_FieldAccess(EOS(STATIC_2093), i301, java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514))) → 2100_0_getTail_FieldAccess(EOS(STATIC_2100), i301, java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514)))
2096_0_getTail_FieldAccess(EOS(STATIC_2096), i301, java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505))) → 2104_0_getTail_Return(EOS(STATIC_2104), i301, java.lang.Object(List(EOC, o1505)), o1505)
2098_0_getTail_FieldAccess(EOS(STATIC_2098), i301, java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508))) → 2105_0_getTail_Return(EOS(STATIC_2105), i301, java.lang.Object(List(EOC, o1508)), o1508)
2099_0_getTail_FieldAccess(EOS(STATIC_2099), i301, java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511))) → 2107_0_getTail_Return(EOS(STATIC_2107), i301, java.lang.Object(List(EOC, o1511)), o1511)
2100_0_getTail_FieldAccess(EOS(STATIC_2100), i301, java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514))) → 2110_0_getTail_Return(EOS(STATIC_2110), i301, java.lang.Object(List(EOC, o1514)), o1514)
2104_0_getTail_Return(EOS(STATIC_2104), i301, java.lang.Object(List(EOC, o1505)), o1505) → 2114_0_length_Store(EOS(STATIC_2114), i301, o1505)
2105_0_getTail_Return(EOS(STATIC_2105), i301, java.lang.Object(List(EOC, o1508)), o1508) → 2115_0_length_Store(EOS(STATIC_2115), i301, o1508)
2107_0_getTail_Return(EOS(STATIC_2107), i301, java.lang.Object(List(EOC, o1511)), o1511) → 2117_0_length_Store(EOS(STATIC_2117), i301, o1511)
2110_0_getTail_Return(EOS(STATIC_2110), i301, java.lang.Object(List(EOC, o1514)), o1514) → 2120_0_length_Store(EOS(STATIC_2120), i301, o1514)
2114_0_length_Store(EOS(STATIC_2114), i301, o1505) → 2124_0_length_Inc(EOS(STATIC_2124), o1505, i301)
2115_0_length_Store(EOS(STATIC_2115), i301, o1508) → 2126_0_length_Inc(EOS(STATIC_2126), o1508, i301)
2117_0_length_Store(EOS(STATIC_2117), i301, o1511) → 2129_0_length_Inc(EOS(STATIC_2129), o1511, i301)
2120_0_length_Store(EOS(STATIC_2120), i301, o1514) → 2131_0_length_Inc(EOS(STATIC_2131), o1514, i301)
2124_0_length_Inc(EOS(STATIC_2124), o1505, i301) → 2135_0_length_JMP(EOS(STATIC_2135), o1505, +(i301, 1)) | >=(i301, 0)
2126_0_length_Inc(EOS(STATIC_2126), o1508, i301) → 2136_0_length_JMP(EOS(STATIC_2136), o1508, +(i301, 1)) | >=(i301, 0)
2129_0_length_Inc(EOS(STATIC_2129), o1511, i301) → 2139_0_length_JMP(EOS(STATIC_2139), o1511, +(i301, 1)) | >=(i301, 0)
2131_0_length_Inc(EOS(STATIC_2131), o1514, i301) → 2141_0_length_JMP(EOS(STATIC_2141), o1514, +(i301, 1)) | >=(i301, 0)
2135_0_length_JMP(EOS(STATIC_2135), o1505, i309) → 2147_0_length_Load(EOS(STATIC_2147), o1505, i309)
2136_0_length_JMP(EOS(STATIC_2136), o1508, i311) → 2150_0_length_Load(EOS(STATIC_2150), o1508, i311)
2139_0_length_JMP(EOS(STATIC_2139), o1511, i312) → 2153_0_length_Load(EOS(STATIC_2153), o1511, i312)
2141_0_length_JMP(EOS(STATIC_2141), o1514, i315) → 2155_0_length_Load(EOS(STATIC_2155), o1514, i315)

Combined rules. Obtained 10 conditional rules for P and 8 conditional rules for R.

P rules:
2221_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), x0), x1, x2, x3, x1) → 2233_1_main_InvokeMethod(2233_0_length_ConstantStackPush(EOS(STATIC_2233), x2), x1, x2, x3, x0, x2)
2233_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), x0), x1, x2, x3, x4, x2) → 2247_1_main_InvokeMethod(2247_0_length_ConstantStackPush(EOS(STATIC_2247), x3), x1, x2, x3, +(x4, x0), x3) | &&(>(+(x4, 1), 0), >(+(x0, 1), 0))
2247_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), x0), x1, x2, x3, x4, x3) → 2272_1_main_InvokeMethod(2272_0_length_ConstantStackPush(EOS(STATIC_2272), x1), x1, x2, x3, x1) | &&(&&(>(+(x4, 1), 0), <=(0, *(x0, 5))), <(0, +(x4, *(x0, 5))))
2272_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), x0), x1, x2, x3, x1) → 2295_1_main_InvokeMethod(2295_0_length_ConstantStackPush(EOS(STATIC_2295), x2), x1, x2, x3, x2) | =(0, %(x0, 2))
2295_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), x0), x1, x2, x3, x2) → 2332_1_main_InvokeMethod(2332_0_length_ConstantStackPush(EOS(STATIC_2332), x3), x1, x2, x3, x0, x3)
2332_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), x0), x1, x2, java.lang.Object(List(EOC, x3)), x4, java.lang.Object(List(EOC, x3))) → 2221_1_main_InvokeMethod(2221_0_length_ConstantStackPush(EOS(STATIC_2221), java.lang.Object(List(EOC, x1))), java.lang.Object(List(EOC, x1)), java.lang.Object(List(EOC, x2)), x3, java.lang.Object(List(EOC, x1))) | <=(x4, x0)
2332_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), x0), x1, java.lang.Object(List(EOC, x2)), java.lang.Object(List(EOC, x2)), x3, java.lang.Object(List(EOC, x2))) → 2221_1_main_InvokeMethod(2221_0_length_ConstantStackPush(EOS(STATIC_2221), java.lang.Object(List(EOC, x1))), java.lang.Object(List(EOC, x1)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x2)))), x2, java.lang.Object(List(EOC, x1))) | <=(x3, x0)
2332_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), x0), x1, java.lang.Object(List(EOC, x2)), x3, x4, x3) → 2221_1_main_InvokeMethod(2221_0_length_ConstantStackPush(EOS(STATIC_2221), x1), x1, x2, x3, x1) | >(x4, x0)
2332_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), x0), x1, java.lang.Object(List(EOC, x2)), java.lang.Object(List(EOC, x2)), x3, java.lang.Object(List(EOC, x2))) → 2221_1_main_InvokeMethod(2221_0_length_ConstantStackPush(EOS(STATIC_2221), x1), x1, x2, java.lang.Object(List(EOC, x2)), x1) | >(x3, x0)
2272_1_main_InvokeMethod(2066_0_length_Return(EOS(STATIC_2066), x0), java.lang.Object(List(EOC, x1)), x2, x3, java.lang.Object(List(EOC, x1))) → 2221_1_main_InvokeMethod(2221_0_length_ConstantStackPush(EOS(STATIC_2221), x1), x1, x2, x3, x1) | =(1, %(x0, 2))
R rules:
2221_0_length_ConstantStackPush(EOS(STATIC_2221), x0) → 2055_0_length_NULL(EOS(STATIC_2055), x0, 0, x0)
2233_0_length_ConstantStackPush(EOS(STATIC_2233), x0) → 2055_0_length_NULL(EOS(STATIC_2055), x0, 0, x0)
2247_0_length_ConstantStackPush(EOS(STATIC_2247), x0) → 2055_0_length_NULL(EOS(STATIC_2055), x0, 0, x0)
2272_0_length_ConstantStackPush(EOS(STATIC_2272), x0) → 2055_0_length_NULL(EOS(STATIC_2055), x0, 0, x0)
2295_0_length_ConstantStackPush(EOS(STATIC_2295), x0) → 2055_0_length_NULL(EOS(STATIC_2055), x0, 0, x0)
2332_0_length_ConstantStackPush(EOS(STATIC_2332), x0) → 2055_0_length_NULL(EOS(STATIC_2055), x0, 0, x0)
2055_0_length_NULL(EOS(STATIC_2055), NULL, x0, NULL) → 2066_0_length_Return(EOS(STATIC_2066), x0)
2055_0_length_NULL(EOS(STATIC_2055), java.lang.Object(List(EOC, x0)), x1, java.lang.Object(List(EOC, x0))) → 2055_0_length_NULL(EOS(STATIC_2055), x0, +(x1, 1), x0) | >(+(x1, 1), 0)

Filtered ground terms:

2221_0_length_ConstantStackPush(x1, x2) → 2221_0_length_ConstantStackPush(x2)
List(x1, x2) → List(x2)
2066_0_length_Return(x1, x2) → 2066_0_length_Return(x2)
2332_0_length_ConstantStackPush(x1, x2) → 2332_0_length_ConstantStackPush(x2)
2295_0_length_ConstantStackPush(x1, x2) → 2295_0_length_ConstantStackPush(x2)
2272_0_length_ConstantStackPush(x1, x2) → 2272_0_length_ConstantStackPush(x2)
2247_0_length_ConstantStackPush(x1, x2) → 2247_0_length_ConstantStackPush(x2)
2233_0_length_ConstantStackPush(x1, x2) → 2233_0_length_ConstantStackPush(x2)
2055_0_length_NULL(x1, x2, x3, x4) → 2055_0_length_NULL(x2, x3, x4)
Cond_2055_0_length_NULL(x1, x2, x3, x4, x5) → Cond_2055_0_length_NULL(x1, x3, x4, x5)

Filtered duplicate args:

2221_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 2221_1_main_InvokeMethod(x1, x3, x4, x5)
2233_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 2233_1_main_InvokeMethod(x1, x2, x4, x5, x6)
Cond_2233_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_2233_1_main_InvokeMethod(x1, x2, x3, x5, x6, x7)
2247_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 2247_1_main_InvokeMethod(x1, x2, x3, x5, x6)
Cond_2247_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_2247_1_main_InvokeMethod(x1, x2, x3, x4, x6, x7)
2272_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 2272_1_main_InvokeMethod(x1, x3, x4, x5)
Cond_2272_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_2272_1_main_InvokeMethod(x1, x2, x4, x5, x6)
2295_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 2295_1_main_InvokeMethod(x1, x2, x4, x5)
2332_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 2332_1_main_InvokeMethod(x1, x2, x3, x5, x6)
Cond_2332_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_2332_1_main_InvokeMethod(x1, x2, x3, x4, x6, x7)
Cond_2332_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7) → Cond_2332_1_main_InvokeMethod1(x1, x2, x3, x6, x7)
Cond_2332_1_main_InvokeMethod2(x1, x2, x3, x4, x5, x6, x7) → Cond_2332_1_main_InvokeMethod2(x1, x2, x3, x4, x6, x7)
Cond_2332_1_main_InvokeMethod3(x1, x2, x3, x4, x5, x6, x7) → Cond_2332_1_main_InvokeMethod3(x1, x2, x3, x6, x7)
Cond_2272_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6) → Cond_2272_1_main_InvokeMethod1(x1, x2, x4, x5, x6)
2055_0_length_NULL(x1, x2, x3) → 2055_0_length_NULL(x2, x3)
Cond_2055_0_length_NULL(x1, x2, x3, x4) → Cond_2055_0_length_NULL(x1, x3, x4)

Filtered unneeded arguments:

Cond_2247_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_2247_1_main_InvokeMethod(x1, x3, x4, x6)
Cond_2272_1_main_InvokeMethod(x1, x2, x3, x4, x5) → Cond_2272_1_main_InvokeMethod(x1, x3, x4, x5)
Cond_2332_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_2332_1_main_InvokeMethod(x1, x3, x4, x6)
Cond_2332_1_main_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_2332_1_main_InvokeMethod1(x1, x3, x5)
Cond_2332_1_main_InvokeMethod2(x1, x2, x3, x4, x5, x6) → Cond_2332_1_main_InvokeMethod2(x1, x3, x4, x6)
Cond_2332_1_main_InvokeMethod3(x1, x2, x3, x4, x5) → Cond_2332_1_main_InvokeMethod3(x1, x3, x5)
Cond_2272_1_main_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_2272_1_main_InvokeMethod1(x1, x3, x4, x5)

Combined rules. Obtained 10 conditional rules for P and 8 conditional rules for R.

P rules:
2221_1_main_InvokeMethod(2066_0_length_Return(x0), x2, x3, x1) → 2233_1_main_InvokeMethod(2233_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
2233_1_main_InvokeMethod(2066_0_length_Return(x0), x1, x3, x4, x2) → 2247_1_main_InvokeMethod(2247_0_length_ConstantStackPush(x3), x1, x2, +(x4, x0), x3) | &&(>(x4, -1), >(x0, -1))
2247_1_main_InvokeMethod(2066_0_length_Return(x0), x1, x2, x4, x3) → 2272_1_main_InvokeMethod(2272_0_length_ConstantStackPush(x1), x2, x3, x1) | &&(&&(>(x4, -1), <=(0, *(x0, 5))), <(0, +(x4, *(x0, 5))))
2272_1_main_InvokeMethod(2066_0_length_Return(x0), x2, x3, x1) → 2295_1_main_InvokeMethod(2295_0_length_ConstantStackPush(x2), x1, x3, x2) | =(0, %(x0, 2))
2295_1_main_InvokeMethod(2066_0_length_Return(x0), x1, x3, x2) → 2332_1_main_InvokeMethod(2332_0_length_ConstantStackPush(x3), x1, x2, x0, x3)
2332_1_main_InvokeMethod(2066_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → 2221_1_main_InvokeMethod(2221_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(x2)), x3, java.lang.Object(List(x1))) | <=(x4, x0)
2332_1_main_InvokeMethod(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2221_1_main_InvokeMethod(2221_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(java.lang.Object(List(x2)))), x2, java.lang.Object(List(x1))) | <=(x3, x0)
2332_1_main_InvokeMethod(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → 2221_1_main_InvokeMethod(2221_0_length_ConstantStackPush(x1), x2, x3, x1) | >(x4, x0)
2332_1_main_InvokeMethod(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2221_1_main_InvokeMethod(2221_0_length_ConstantStackPush(x1), x2, java.lang.Object(List(x2)), x1) | >(x3, x0)
2272_1_main_InvokeMethod(2066_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → 2221_1_main_InvokeMethod(2221_0_length_ConstantStackPush(x1), x2, x3, x1) | =(1, %(x0, 2))
R rules:
2221_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2233_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2247_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2272_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2295_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2332_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2055_0_length_NULL(x0, NULL) → 2066_0_length_Return(x0)
2055_0_length_NULL(x1, java.lang.Object(List(x0))) → 2055_0_length_NULL(+(x1, 1), x0) | >(x1, -1)

Performed bisimulation on rules. Used the following equivalence classes: {[2233_0_length_ConstantStackPush_1, 2247_0_length_ConstantStackPush_1, 2272_0_length_ConstantStackPush_1, 2295_0_length_ConstantStackPush_1, 2332_0_length_ConstantStackPush_1]=2233_0_length_ConstantStackPush_1}

Finished conversion. Obtained 18 rules for P and 5 rules for R. System has predefined symbols.

P rules:
2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x2, x3, x1) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x3, x4, x2) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4, -1), >(x0, -1)), 2066_0_length_Return(x0), x1, x3, x4, x2)
COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x1, x3, x4, x2) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3), x1, x2, +(x4, x0), x3)
2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x2, x4, x3) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4, -1), <=(0, *(x0, 5))), <(0, +(x4, *(x0, 5)))), 2066_0_length_Return(x0), x1, x2, x4, x3)
COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x1, x2, x4, x3) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1), x2, x3, x1)
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x2, x3, x1) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0, 2)), 2066_0_length_Return(x0), x2, x3, x1)
COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x2, x3, x1) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2), x1, x3, x2)
2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x3, x2) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3), x1, x2, x0, x3)
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4, x0), 2066_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3)))
COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(x2)), x3, java.lang.Object(List(x1)))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3, x0), 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2)))
COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(java.lang.Object(List(x2)))), x2, java.lang.Object(List(x1)))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → COND_2332_1_MAIN_INVOKEMETHOD2(>(x4, x0), 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3)
COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1), x2, x3, x1)
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2332_1_MAIN_INVOKEMETHOD3(>(x3, x0), 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2)))
COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1), x2, java.lang.Object(List(x2)), x1)
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0, 2)), 2066_0_length_Return(x0), x2, x3, java.lang.Object(List(x1)))
COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1), x2, x3, x1)
R rules:
2221_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2233_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2055_0_length_NULL(x0, NULL) → 2066_0_length_Return(x0)
2055_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2055_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2055_0_length_NULL(+(x1, 1), x0)

### (25) Obligation:

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

The following domains are used:

Integer, Boolean

The ITRS R consists of the following rules:
2221_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2233_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2055_0_length_NULL(x0, NULL) → 2066_0_length_Return(x0)
2055_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2055_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2055_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(0): 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
(1): 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(x4[1] > -1 && x0[1] > -1, 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(2): COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(3): 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(4): COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(5): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(6): COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(7): 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(8): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(x4[8] <= x0[8], 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
(9): COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
(10): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(x3[10] <= x0[10], 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))
(11): COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))
(12): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]) → COND_2332_1_MAIN_INVOKEMETHOD2(x4[12] > x0[12], 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])
(13): COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
(14): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2332_1_MAIN_INVOKEMETHOD3(x3[14] > x0[14], 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))
(15): COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])
(16): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(1 = x0[16] % 2, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
(17): COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])

(0) -> (1), if (2233_0_length_ConstantStackPush(x2[0]) →* 2066_0_length_Return(x0[1])∧x1[0]* x1[1]x3[0]* x3[1]x0[0]* x4[1]x2[0]* x2[1])

(1) -> (2), if (x4[1] > -1 && x0[1] > -12066_0_length_Return(x0[1]) →* 2066_0_length_Return(x0[2])∧x1[1]* x1[2]x3[1]* x3[2]x4[1]* x4[2]x2[1]* x2[2])

(2) -> (3), if (2233_0_length_ConstantStackPush(x3[2]) →* 2066_0_length_Return(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x4[2] + x0[2]* x4[3]x3[2]* x3[3])

(3) -> (4), if (x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 52066_0_length_Return(x0[3]) →* 2066_0_length_Return(x0[4])∧x1[3]* x1[4]x2[3]* x2[4]x4[3]* x4[4]x3[3]* x3[4])

(4) -> (5), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[5])∧x2[4]* x2[5]x3[4]* x3[5]x1[4]* x1[5])

(4) -> (16), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[16])∧x2[4]* x2[16]x3[4]* x3[16]x1[4]* java.lang.Object(List(x1[16])))

(5) -> (6), if (0 = x0[5] % 22066_0_length_Return(x0[5]) →* 2066_0_length_Return(x0[6])∧x2[5]* x2[6]x3[5]* x3[6]x1[5]* x1[6])

(6) -> (7), if (2233_0_length_ConstantStackPush(x2[6]) →* 2066_0_length_Return(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x2[6]* x2[7])

(7) -> (8), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[8])∧x1[7]* x1[8]x2[7]* x2[8]x0[7]* x4[8]x3[7]* java.lang.Object(List(x3[8])))

(7) -> (10), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[10])∧x1[7]* x1[10]x2[7]* java.lang.Object(List(x2[10]))∧x0[7]* x3[10]x3[7]* java.lang.Object(List(x2[10])))

(7) -> (12), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[12])∧x1[7]* x1[12]x2[7]* java.lang.Object(List(x2[12]))∧x0[7]* x4[12]x3[7]* x3[12])

(7) -> (14), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[14])∧x1[7]* x1[14]x2[7]* java.lang.Object(List(x2[14]))∧x0[7]* x3[14]x3[7]* java.lang.Object(List(x2[14])))

(8) -> (9), if (x4[8] <= x0[8]2066_0_length_Return(x0[8]) →* 2066_0_length_Return(x0[9])∧x1[8]* x1[9]x2[8]* x2[9]x4[8]* x4[9]java.lang.Object(List(x3[8])) →* java.lang.Object(List(x3[9])))

(9) -> (0), if (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))) →* 2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9])) →* x2[0]x3[9]* x3[0]java.lang.Object(List(x1[9])) →* x1[0])

(10) -> (11), if (x3[10] <= x0[10]2066_0_length_Return(x0[10]) →* 2066_0_length_Return(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x2[10])) →* java.lang.Object(List(x2[11]))∧x3[10]* x3[11])

(11) -> (0), if (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))) →* 2066_0_length_Return(x0[0])∧java.lang.Object(List(java.lang.Object(List(x2[11])))) →* x2[0]x2[11]* x3[0]java.lang.Object(List(x1[11])) →* x1[0])

(12) -> (13), if (x4[12] > x0[12]2066_0_length_Return(x0[12]) →* 2066_0_length_Return(x0[13])∧x1[12]* x1[13]java.lang.Object(List(x2[12])) →* java.lang.Object(List(x2[13]))∧x4[12]* x4[13]x3[12]* x3[13])

(13) -> (0), if (2221_0_length_ConstantStackPush(x1[13]) →* 2066_0_length_Return(x0[0])∧x2[13]* x2[0]x3[13]* x3[0]x1[13]* x1[0])

(14) -> (15), if (x3[14] > x0[14]2066_0_length_Return(x0[14]) →* 2066_0_length_Return(x0[15])∧x1[14]* x1[15]java.lang.Object(List(x2[14])) →* java.lang.Object(List(x2[15]))∧x3[14]* x3[15])

(15) -> (0), if (2221_0_length_ConstantStackPush(x1[15]) →* 2066_0_length_Return(x0[0])∧x2[15]* x2[0]java.lang.Object(List(x2[15])) →* x3[0]x1[15]* x1[0])

(16) -> (17), if (1 = x0[16] % 22066_0_length_Return(x0[16]) →* 2066_0_length_Return(x0[17])∧x2[16]* x2[17]x3[16]* x3[17]java.lang.Object(List(x1[16])) →* java.lang.Object(List(x1[17])))

(17) -> (0), if (2221_0_length_ConstantStackPush(x1[17]) →* 2066_0_length_Return(x0[0])∧x2[17]* x2[0]x3[17]* x3[0]x1[17]* x1[0])

The set Q consists of the following terms:
2221_0_length_ConstantStackPush(x0)
2233_0_length_ConstantStackPush(x0)
2055_0_length_NULL(x0, NULL)
2055_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_2055_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

### (26) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@23c3622c Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

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 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x2, x3, x1) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2), x1, x3, x0, x2) the following chains were created:
• We consider the chain COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(1)    (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9]))=x2[0]x3[9]=x3[0]java.lang.Object(List(x1[9]))=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(2)    (1=x02055_0_length_NULL(x0, x1[9])=2066_0_length_Return(x0[0])∧1=x12055_0_length_NULL(x1, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(x1[9])), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x0, x1[9])=2066_0_length_Return(x0[0]) which results in the following new constraints:

(3)    (2066_0_length_Return(x2)=2066_0_length_Return(x0[0])∧1=x21=x12055_0_length_NULL(x1, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(NULL)), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(4)    (Cond_2055_0_length_NULL(>(x4, -1), x4, java.lang.Object(List(x3)))=2066_0_length_Return(x0[0])∧1=x41=x12055_0_length_NULL(x1, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(5)    (1=x12055_0_length_NULL(x1, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(6)    (>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_2055_0_length_NULL(x10, x4, x11)=2066_0_length_Return(x0[0])∧1=x41=x12055_0_length_NULL(x1, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x1, x2[9])=2066_0_length_Return(x0[1]) which results in the following new constraints:

(7)    (2066_0_length_Return(x5)=2066_0_length_Return(x0[1])∧1=x52221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(8)    (Cond_2055_0_length_NULL(>(x7, -1), x7, java.lang.Object(List(x6)))=2066_0_length_Return(x0[1])∧1=x72221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x6))))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(java.lang.Object(List(x6)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(9)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (8) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(10)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x6)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x6))))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(java.lang.Object(List(x6)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(11)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x1, x2[9])=2066_0_length_Return(x0[1]) which results in the following new constraints:

(12)    (2066_0_length_Return(x12)=2066_0_length_Return(x0[1])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_2055_0_length_NULL(x10, x4, x11)=2066_0_length_Return(x0[0])∧1=x41=x122221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(13)    (Cond_2055_0_length_NULL(>(x14, -1), x14, java.lang.Object(List(x13)))=2066_0_length_Return(x0[1])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_2055_0_length_NULL(x10, x4, x11)=2066_0_length_Return(x0[0])∧1=x41=x142221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x13)))), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x13)))), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x13))))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(java.lang.Object(List(x13)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(14)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x3)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(15)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x3)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x13)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x13)))), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x13)))), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x13))))), java.lang.Object(List(java.lang.Object(List(x3)))), x3[9], x0[0], java.lang.Object(List(java.lang.Object(List(x13)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(16)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(17)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(18)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(19)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

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

(20)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(21)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(22)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(23)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

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

(24)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(25)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(26)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(27)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(28)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(29)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(30)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

• We consider the chain COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(31)    (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(java.lang.Object(List(x2[11]))))=x2[0]x2[11]=x3[0]java.lang.Object(List(x1[11]))=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(32)    (1=x172055_0_length_NULL(x17, x1[11])=2066_0_length_Return(x0[0])∧2=x182055_0_length_NULL(x18, x2[11])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2[11]))))), java.lang.Object(List(x1[11])), x2[11], x0[0], java.lang.Object(List(java.lang.Object(List(x2[11])))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (32) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x17, x1[11])=2066_0_length_Return(x0[0]) which results in the following new constraints:

(33)    (2066_0_length_Return(x19)=2066_0_length_Return(x0[0])∧1=x192=x182055_0_length_NULL(x18, x2[11])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2[11]))))), java.lang.Object(List(NULL)), x2[11], x0[0], java.lang.Object(List(java.lang.Object(List(x2[11])))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(34)    (Cond_2055_0_length_NULL(>(x21, -1), x21, java.lang.Object(List(x20)))=2066_0_length_Return(x0[0])∧1=x212=x182055_0_length_NULL(x18, x2[11])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(java.lang.Object(List(x20)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(java.lang.Object(List(x20)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2[11]))))), java.lang.Object(List(java.lang.Object(List(x20)))), x2[11], x0[0], java.lang.Object(List(java.lang.Object(List(x2[11])))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(35)    (2=x182055_0_length_NULL(x18, x2[11])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2[11]))))), java.lang.Object(List(NULL)), x2[11], 1, java.lang.Object(List(java.lang.Object(List(x2[11])))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(36)    (>(x21, -1)=x27java.lang.Object(List(x20))=x28Cond_2055_0_length_NULL(x27, x21, x28)=2066_0_length_Return(x0[0])∧1=x212=x182055_0_length_NULL(x18, x2[11])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(java.lang.Object(List(x20)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(java.lang.Object(List(x20)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2[11]))))), java.lang.Object(List(java.lang.Object(List(x20)))), x2[11], x0[0], java.lang.Object(List(java.lang.Object(List(x2[11])))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (35) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x18, x2[11])=2066_0_length_Return(x0[1]) which results in the following new constraints:

(37)    (2066_0_length_Return(x22)=2066_0_length_Return(x0[1])∧2=x222221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(NULL))))), java.lang.Object(List(NULL)), NULL, 1, java.lang.Object(List(java.lang.Object(List(NULL)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(38)    (Cond_2055_0_length_NULL(>(x24, -1), x24, java.lang.Object(List(x23)))=2066_0_length_Return(x0[1])∧2=x242221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x23)))))), java.lang.Object(List(x23)), java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x23)))))), java.lang.Object(List(x23)), java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x23))))))), java.lang.Object(List(NULL)), java.lang.Object(List(x23)), 1, java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x23)))))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(39)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(NULL))))), java.lang.Object(List(NULL)), NULL, 1, java.lang.Object(List(java.lang.Object(List(NULL)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (38) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(40)    (Cond_2055_0_length_NULL(TRUE, 2, java.lang.Object(List(x23)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x23)))))), java.lang.Object(List(x23)), java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x23)))))), java.lang.Object(List(x23)), java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x23))))))), java.lang.Object(List(NULL)), java.lang.Object(List(x23)), 1, java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x23)))))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(41)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

We simplified constraint (36) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x18, x2[11])=2066_0_length_Return(x0[1]) which results in the following new constraints:

(42)    (2066_0_length_Return(x29)=2066_0_length_Return(x0[1])∧>(x21, -1)=x27java.lang.Object(List(x20))=x28Cond_2055_0_length_NULL(x27, x21, x28)=2066_0_length_Return(x0[0])∧1=x212=x292221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(java.lang.Object(List(x20)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(java.lang.Object(List(x20)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(NULL))))), java.lang.Object(List(java.lang.Object(List(x20)))), NULL, x0[0], java.lang.Object(List(java.lang.Object(List(NULL)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(43)    (Cond_2055_0_length_NULL(>(x31, -1), x31, java.lang.Object(List(x30)))=2066_0_length_Return(x0[1])∧>(x21, -1)=x27java.lang.Object(List(x20))=x28Cond_2055_0_length_NULL(x27, x21, x28)=2066_0_length_Return(x0[0])∧1=x212=x312221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x30)))))), java.lang.Object(List(x30)), java.lang.Object(List(java.lang.Object(List(x20)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x30)))))), java.lang.Object(List(x30)), java.lang.Object(List(java.lang.Object(List(x20)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x30))))))), java.lang.Object(List(java.lang.Object(List(x20)))), java.lang.Object(List(x30)), x0[0], java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x30)))))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(44)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x20)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(java.lang.Object(List(x20)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(java.lang.Object(List(x20)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(NULL))))), java.lang.Object(List(java.lang.Object(List(x20)))), NULL, x0[0], java.lang.Object(List(java.lang.Object(List(NULL)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (43) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(45)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x20)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 2, java.lang.Object(List(x30)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x30)))))), java.lang.Object(List(x30)), java.lang.Object(List(java.lang.Object(List(x20)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x30)))))), java.lang.Object(List(x30)), java.lang.Object(List(java.lang.Object(List(x20)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x30))))))), java.lang.Object(List(java.lang.Object(List(x20)))), java.lang.Object(List(x30)), x0[0], java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x30)))))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(46)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(47)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(48)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(49)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

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

(50)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(51)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(52)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(53)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

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

(54)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(55)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(56)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(57)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(58)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(59)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

• We consider the chain COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(60)    (2221_0_length_ConstantStackPush(x1[13])=2066_0_length_Return(x0[0])∧x2[13]=x2[0]x3[13]=x3[0]x1[13]=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(61)    (0=x342055_0_length_NULL(x34, x1[13])=2066_0_length_Return(x0[0])∧0=x352055_0_length_NULL(x35, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[13], x1[13])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[13], x1[13])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[13], x3[13], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (61) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x34, x1[13])=2066_0_length_Return(x0[0]) which results in the following new constraints:

(62)    (2066_0_length_Return(x36)=2066_0_length_Return(x0[0])∧0=x360=x352055_0_length_NULL(x35, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[13], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[13], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, x3[13], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(63)    (Cond_2055_0_length_NULL(>(x38, -1), x38, java.lang.Object(List(x37)))=2066_0_length_Return(x0[0])∧0=x380=x352055_0_length_NULL(x35, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x37)), x3[13], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(64)    (0=x352055_0_length_NULL(x35, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], x3[13], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], x3[13], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, x3[13], 0, x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(65)    (>(x38, -1)=x44java.lang.Object(List(x37))=x45Cond_2055_0_length_NULL(x44, x38, x45)=2066_0_length_Return(x0[0])∧0=x380=x352055_0_length_NULL(x35, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x37)), x3[13], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (64) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x35, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

(66)    (2066_0_length_Return(x39)=2066_0_length_Return(x0[1])∧0=x392221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[13], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[13], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, x3[13], 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(67)    (Cond_2055_0_length_NULL(>(x41, -1), x41, java.lang.Object(List(x40)))=2066_0_length_Return(x0[1])∧0=x412221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x40))), NULL, x3[13], 0, java.lang.Object(List(x40)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(68)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[13], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[13], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, x3[13], 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(69)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x40)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x40))), NULL, x3[13], 0, java.lang.Object(List(x40)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(70)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

We simplified constraint (65) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x35, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

(71)    (2066_0_length_Return(x46)=2066_0_length_Return(x0[1])∧>(x38, -1)=x44java.lang.Object(List(x37))=x45Cond_2055_0_length_NULL(x44, x38, x45)=2066_0_length_Return(x0[0])∧0=x380=x462221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x37)), x3[13], x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(72)    (Cond_2055_0_length_NULL(>(x48, -1), x48, java.lang.Object(List(x47)))=2066_0_length_Return(x0[1])∧>(x38, -1)=x44java.lang.Object(List(x37))=x45Cond_2055_0_length_NULL(x44, x38, x45)=2066_0_length_Return(x0[0])∧0=x380=x482221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x47))), java.lang.Object(List(x37)), x3[13], x0[0], java.lang.Object(List(x47)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(73)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x37)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x37)), x3[13], x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (72) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(74)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x37)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x47)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x47))), java.lang.Object(List(x37)), x3[13], x0[0], java.lang.Object(List(x47)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(75)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(76)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(77)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(78)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

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

(79)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(80)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(81)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(82)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

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

(83)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(84)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(85)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(86)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(87)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(88)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(89)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

• We consider the chain COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(90)    (2221_0_length_ConstantStackPush(x1[15])=2066_0_length_Return(x0[0])∧x2[15]=x2[0]java.lang.Object(List(x2[15]))=x3[0]x1[15]=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(91)    (0=x512055_0_length_NULL(x51, x1[15])=2066_0_length_Return(x0[0])∧0=x522055_0_length_NULL(x52, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), x1[15])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), x1[15])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[15], java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (91) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x51, x1[15])=2066_0_length_Return(x0[0]) which results in the following new constraints:

(92)    (2066_0_length_Return(x53)=2066_0_length_Return(x0[0])∧0=x530=x522055_0_length_NULL(x52, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(93)    (Cond_2055_0_length_NULL(>(x55, -1), x55, java.lang.Object(List(x54)))=2066_0_length_Return(x0[0])∧0=x550=x522055_0_length_NULL(x52, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x54)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x54)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x54)), java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(94)    (0=x522055_0_length_NULL(x52, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], java.lang.Object(List(x2[0])), NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], java.lang.Object(List(x2[0])), NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, java.lang.Object(List(x2[0])), 0, x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(95)    (>(x55, -1)=x61java.lang.Object(List(x54))=x62Cond_2055_0_length_NULL(x61, x55, x62)=2066_0_length_Return(x0[0])∧0=x550=x522055_0_length_NULL(x52, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x54)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x54)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x54)), java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (94) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x52, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

(96)    (2066_0_length_Return(x56)=2066_0_length_Return(x0[1])∧0=x562221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(NULL)), 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(97)    (Cond_2055_0_length_NULL(>(x58, -1), x58, java.lang.Object(List(x57)))=2066_0_length_Return(x0[1])∧0=x582221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x57)), java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x57)), java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x57))), NULL, java.lang.Object(List(java.lang.Object(List(x57)))), 0, java.lang.Object(List(x57)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(98)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(NULL)), 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(99)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x57)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x57)), java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x57)), java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x57))), NULL, java.lang.Object(List(java.lang.Object(List(x57)))), 0, java.lang.Object(List(x57)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(100)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

We simplified constraint (95) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x52, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

(101)    (2066_0_length_Return(x63)=2066_0_length_Return(x0[1])∧>(x55, -1)=x61java.lang.Object(List(x54))=x62Cond_2055_0_length_NULL(x61, x55, x62)=2066_0_length_Return(x0[0])∧0=x550=x632221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x54)), java.lang.Object(List(NULL)), x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(102)    (Cond_2055_0_length_NULL(>(x65, -1), x65, java.lang.Object(List(x64)))=2066_0_length_Return(x0[1])∧>(x55, -1)=x61java.lang.Object(List(x54))=x62Cond_2055_0_length_NULL(x61, x55, x62)=2066_0_length_Return(x0[0])∧0=x550=x652221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x64)), java.lang.Object(List(java.lang.Object(List(x64)))), java.lang.Object(List(x54)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x64)), java.lang.Object(List(java.lang.Object(List(x64)))), java.lang.Object(List(x54)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x64))), java.lang.Object(List(x54)), java.lang.Object(List(java.lang.Object(List(x64)))), x0[0], java.lang.Object(List(x64)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(103)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x54)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x54)), java.lang.Object(List(NULL)), x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (102) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(104)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x54)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x64)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x64)), java.lang.Object(List(java.lang.Object(List(x64)))), java.lang.Object(List(x54)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x64)), java.lang.Object(List(java.lang.Object(List(x64)))), java.lang.Object(List(x54)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x64))), java.lang.Object(List(x54)), java.lang.Object(List(java.lang.Object(List(x64)))), x0[0], java.lang.Object(List(x64)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(105)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(106)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(107)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(108)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

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

(109)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(110)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(111)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(112)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

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

(113)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(114)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(115)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(116)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(117)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(118)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

• We consider the chain COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(119)    (2221_0_length_ConstantStackPush(x1[17])=2066_0_length_Return(x0[0])∧x2[17]=x2[0]x3[17]=x3[0]x1[17]=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(120)    (0=x682055_0_length_NULL(x68, x1[17])=2066_0_length_Return(x0[0])∧0=x692055_0_length_NULL(x69, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[17], x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (120) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x68, x1[17])=2066_0_length_Return(x0[0]) which results in the following new constraints:

(121)    (2066_0_length_Return(x70)=2066_0_length_Return(x0[0])∧0=x700=x692055_0_length_NULL(x69, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(122)    (Cond_2055_0_length_NULL(>(x72, -1), x72, java.lang.Object(List(x71)))=2066_0_length_Return(x0[0])∧0=x720=x692055_0_length_NULL(x69, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x71)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x71)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x71)), x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(123)    (0=x692055_0_length_NULL(x69, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, x3[17], 0, x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(124)    (>(x72, -1)=x78java.lang.Object(List(x71))=x79Cond_2055_0_length_NULL(x78, x72, x79)=2066_0_length_Return(x0[0])∧0=x720=x692055_0_length_NULL(x69, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x71)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x71)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x71)), x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (123) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x69, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

(125)    (2066_0_length_Return(x73)=2066_0_length_Return(x0[1])∧0=x732221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(126)    (Cond_2055_0_length_NULL(>(x75, -1), x75, java.lang.Object(List(x74)))=2066_0_length_Return(x0[1])∧0=x752221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x74)), x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x74)), x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x74))), NULL, x3[17], 0, java.lang.Object(List(x74)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(127)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(128)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x74)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x74)), x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x74)), x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x74))), NULL, x3[17], 0, java.lang.Object(List(x74)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(129)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

We simplified constraint (124) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x69, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

(130)    (2066_0_length_Return(x80)=2066_0_length_Return(x0[1])∧>(x72, -1)=x78java.lang.Object(List(x71))=x79Cond_2055_0_length_NULL(x78, x72, x79)=2066_0_length_Return(x0[0])∧0=x720=x802221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x71)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x71)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x71)), x3[17], x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(131)    (Cond_2055_0_length_NULL(>(x82, -1), x82, java.lang.Object(List(x81)))=2066_0_length_Return(x0[1])∧>(x72, -1)=x78java.lang.Object(List(x71))=x79Cond_2055_0_length_NULL(x78, x72, x79)=2066_0_length_Return(x0[0])∧0=x720=x822221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x81)), x3[17], java.lang.Object(List(x71)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x81)), x3[17], java.lang.Object(List(x71)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x81))), java.lang.Object(List(x71)), x3[17], x0[0], java.lang.Object(List(x81)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(132)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x71)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x71)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x71)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x71)), x3[17], x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

We simplified constraint (131) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(133)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x71)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x81)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x81)), x3[17], java.lang.Object(List(x71)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x81)), x3[17], java.lang.Object(List(x71)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x81))), java.lang.Object(List(x71)), x3[17], x0[0], java.lang.Object(List(x81)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(134)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(135)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(136)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(137)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

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

(138)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(139)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(140)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(141)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)

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

(142)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(143)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(144)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(145)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(146)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(147)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

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

(148)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

For Pair 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x3, x4, x2) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4, -1), >(x0, -1)), 2066_0_length_Return(x0), x1, x3, x4, x2) the following chains were created:
• We consider the chain 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) which results in the following constraint:

(149)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2066_0_length_Return(x0[1])=2066_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))

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

(150)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))

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

(151)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] + [bni_108]x2[1] + [bni_108]x3[1] ≥ 0∧[(-1)bso_109] ≥ 0)

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

(152)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] + [bni_108]x2[1] + [bni_108]x3[1] ≥ 0∧[(-1)bso_109] ≥ 0)

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

(153)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] + [bni_108]x2[1] + [bni_108]x3[1] ≥ 0∧[(-1)bso_109] ≥ 0)

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

(154)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[bni_108] ≥ 0∧0 ≥ 0∧[bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)

For Pair COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x1, x3, x4, x2) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3), x1, x2, +(x4, x0), x3) the following chains were created:
• We consider the chain 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]), 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) which results in the following constraint:

(155)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2066_0_length_Return(x0[1])=2066_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2233_0_length_ConstantStackPush(x3[2])=2066_0_length_Return(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]+(x4[2], x0[2])=x4[3]x3[2]=x3[3]COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥NonInfC∧COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])∧(UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))

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

(156)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2055_0_length_NULL(0, x3[2])=2066_0_length_Return(x0[3]) ⇒ COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥NonInfC∧COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[1], x2[1], +(x4[1], x0[1]), x3[2])∧(UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))

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

(157)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x2[1] + [bni_110]x3[2] ≥ 0∧[(-1)bso_111] ≥ 0)

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

(158)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x2[1] + [bni_110]x3[2] ≥ 0∧[(-1)bso_111] ≥ 0)

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

(159)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x2[1] + [bni_110]x3[2] ≥ 0∧[(-1)bso_111] ≥ 0)

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

(160)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧[bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)

For Pair 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x2, x4, x3) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4, -1), <=(0, *(x0, 5))), <(0, +(x4, *(x0, 5)))), 2066_0_length_Return(x0), x1, x2, x4, x3) the following chains were created:
• We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) which results in the following constraint:

(161)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))

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

(162)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))

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

(163)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[3] + [bni_112]x4[3] + [bni_112]x2[3] ≥ 0∧[(-1)bso_113] ≥ 0)

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

(164)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[3] + [bni_112]x4[3] + [bni_112]x2[3] ≥ 0∧[(-1)bso_113] ≥ 0)

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

(165)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[3] + [bni_112]x4[3] + [bni_112]x2[3] ≥ 0∧[(-1)bso_113] ≥ 0)

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

(166)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_112] ≥ 0∧[bni_112] ≥ 0∧[bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)

For Pair COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x1, x2, x4, x3) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1), x2, x3, x1) the following chains were created:
• We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) which results in the following constraint:

(167)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2233_0_length_ConstantStackPush(x1[4])=2066_0_length_Return(x0[5])∧x2[4]=x2[5]x3[4]=x3[5]x1[4]=x1[5]COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))

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

(168)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2055_0_length_NULL(0, x1[4])=2066_0_length_Return(x0[5]) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[3], x3[3], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))

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

(169)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x3[3] + [bni_114]x4[3] + [bni_114]x2[3] ≥ 0∧[(-1)bso_115] + x4[3] ≥ 0)

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

(170)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x3[3] + [bni_114]x4[3] + [bni_114]x2[3] ≥ 0∧[(-1)bso_115] + x4[3] ≥ 0)

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

(171)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x3[3] + [bni_114]x4[3] + [bni_114]x2[3] ≥ 0∧[(-1)bso_115] + x4[3] ≥ 0)

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

(172)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_114] ≥ 0∧[bni_114] ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

• We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) which results in the following constraint:

(173)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2233_0_length_ConstantStackPush(x1[4])=2066_0_length_Return(x0[16])∧x2[4]=x2[16]x3[4]=x3[16]x1[4]=java.lang.Object(List(x1[16])) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))

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

(174)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2055_0_length_NULL(1, x1[16])=2066_0_length_Return(x0[16]) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), java.lang.Object(List(x1[16])), x2[3], x4[3], x3[3])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), java.lang.Object(List(x1[16])), x2[3], x4[3], x3[3])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x1[16]))), x2[3], x3[3], java.lang.Object(List(x1[16])))∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))

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

(175)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x3[3] + [bni_114]x4[3] + [bni_114]x2[3] ≥ 0∧[(-1)bso_115] + x4[3] ≥ 0)

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

(176)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x3[3] + [bni_114]x4[3] + [bni_114]x2[3] ≥ 0∧[(-1)bso_115] + x4[3] ≥ 0)

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

(177)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x3[3] + [bni_114]x4[3] + [bni_114]x2[3] ≥ 0∧[(-1)bso_115] + x4[3] ≥ 0)

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

(178)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_114] ≥ 0∧[bni_114] ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

For Pair 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x2, x3, x1) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0, 2)), 2066_0_length_Return(x0), x2, x3, x1) the following chains were created:
• We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) which results in the following constraint:

(179)    (=(0, %(x0[5], 2))=TRUE2066_0_length_Return(x0[5])=2066_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))

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

(180)    (=(0, %(x0[5], 2))=TRUE2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))

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

(181)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x3[5] + [bni_116]x2[5] ≥ 0∧[(-1)bso_117] ≥ 0)

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

(182)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x3[5] + [bni_116]x2[5] ≥ 0∧[(-1)bso_117] ≥ 0)

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

(183)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x3[5] + [bni_116]x2[5] ≥ 0∧[(-1)bso_117] ≥ 0)

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

(184)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧0 ≥ 0∧[bni_116] ≥ 0∧[bni_116] ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)

For Pair COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x2, x3, x1) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2), x1, x3, x2) the following chains were created:
• We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

(185)    (=(0, %(x0[5], 2))=TRUE2066_0_length_Return(x0[5])=2066_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]2233_0_length_ConstantStackPush(x2[6])=2066_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])∧(UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))

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

(186)    (=(0, %(x0[5], 2))=TRUE2055_0_length_NULL(0, x2[6])=2066_0_length_Return(x0[7]) ⇒ COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[5], x3[5], x2[6])∧(UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))

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

(187)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] + [bni_118]x3[5] + [bni_118]x2[6] ≥ 0∧[(-1)bso_119] ≥ 0)

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

(188)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] + [bni_118]x3[5] + [bni_118]x2[6] ≥ 0∧[(-1)bso_119] ≥ 0)

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

(189)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_118 + (-1)Bound*bni_118] + [bni_118]x3[5] + [bni_118]x2[6] ≥ 0∧[(-1)bso_119] ≥ 0)

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

(190)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[bni_118] ≥ 0∧[bni_118] ≥ 0∧0 ≥ 0∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)

For Pair 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x3, x2) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3), x1, x2, x0, x3) the following chains were created:
• We consider the chain COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

(191)    (2233_0_length_ConstantStackPush(x2[6])=2066_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))

We simplified constraint (191) using rules (III), (VII), (REWRITING) which results in the following new constraint:

(192)    (0=x852055_0_length_NULL(x85, x2[6])=2066_0_length_Return(x0[7]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], x3[6], x2[6])≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], x3[6], x2[6])≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[6]), x1[6], x2[6], x0[7], x3[6])∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))

We simplified constraint (192) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x85, x2[6])=2066_0_length_Return(x0[7]) which results in the following new constraints:

(193)    (2066_0_length_Return(x86)=2066_0_length_Return(x0[7])∧0=x862295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], x3[6], NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], x3[6], NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[6]), x1[6], NULL, x0[7], x3[6])∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))

(194)    (Cond_2055_0_length_NULL(>(x88, -1), x88, java.lang.Object(List(x87)))=2066_0_length_Return(x0[7])∧0=x882295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], x3[6], java.lang.Object(List(x87)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], x3[6], java.lang.Object(List(x87)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[6]), x1[6], java.lang.Object(List(x87)), x0[7], x3[6])∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))

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

(195)    (2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], x3[6], NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], x3[6], NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[6]), x1[6], NULL, 0, x3[6])∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))

We simplified constraint (194) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(196)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x87)))=2066_0_length_Return(x0[7]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], x3[6], java.lang.Object(List(x87)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], x3[6], java.lang.Object(List(x87)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[6]), x1[6], java.lang.Object(List(x87)), x0[7], x3[6])∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))

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

(197)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)

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

(198)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)

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

(199)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)

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

(200)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)

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

(201)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_120] = 0∧[(-1)bso_121] ≥ 0)

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

(202)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_121] ≥ 0)

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

(203)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_120] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)

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

(204)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)

For Pair 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4, x0), 2066_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))) which results in the following constraint:

(205)    (<=(x4[8], x0[8])=TRUE2066_0_length_Return(x0[8])=2066_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9])) ⇒ 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥))

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

(206)    (<=(x4[8], x0[8])=TRUE2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥))

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

(207)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(-1)Bound*bni_122] + [bni_122]x3[8] + [bni_122]x2[8] ≥ 0∧[(-1)bso_123] ≥ 0)

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

(208)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(-1)Bound*bni_122] + [bni_122]x3[8] + [bni_122]x2[8] ≥ 0∧[(-1)bso_123] ≥ 0)

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

(209)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(-1)Bound*bni_122] + [bni_122]x3[8] + [bni_122]x2[8] ≥ 0∧[(-1)bso_123] ≥ 0)

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

(210)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[bni_122] ≥ 0∧0 ≥ 0∧[bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_123] ≥ 0)

For Pair COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(x2)), x3, java.lang.Object(List(x1))) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(211)    (<=(x4[8], x0[8])=TRUE2066_0_length_Return(x0[8])=2066_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9]))∧2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9]))=x2[0]x3[9]=x3[0]java.lang.Object(List(x1[9]))=x1[0]COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

We simplified constraint (211) using rules (I), (II), (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

(212)    (<=(x4[8], x0[8])=TRUE1=x912055_0_length_NULL(x91, x1[9])=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(x1[9])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

We simplified constraint (212) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x91, x1[9])=2066_0_length_Return(x0[0]) which results in the following new constraints:

(213)    (2066_0_length_Return(x92)=2066_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x92COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

(214)    (Cond_2055_0_length_NULL(>(x94, -1), x94, java.lang.Object(List(x93)))=2066_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x94COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x93)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x93)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x93))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x93)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

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

(215)    (<=(x4[8], x0[8])=TRUECOND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

We simplified constraint (214) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(216)    (<=(x4[8], x0[8])=TRUECond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x93)))=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x93)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x93)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x93))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x93)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

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

(217)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_124] + [bni_124]x3[8] + [bni_124]x2[8] ≥ 0∧[(-1)bso_125] ≥ 0)

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

(218)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_124] + [bni_124]x3[8] + [bni_124]x2[8] ≥ 0∧[(-1)bso_125] ≥ 0)

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

(219)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_124] + [bni_124]x3[8] + [bni_124]x2[8] ≥ 0∧[(-1)bso_125] ≥ 0)

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

(220)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_124] + [bni_124]x3[8] + [bni_124]x2[8] ≥ 0∧[(-1)bso_125] ≥ 0)

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

(221)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_124] + [bni_124]x3[8] + [bni_124]x2[8] ≥ 0∧[(-1)bso_125] ≥ 0)

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

(222)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_124] + [bni_124]x3[8] + [bni_124]x2[8] ≥ 0∧[(-1)bso_125] ≥ 0)

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

(223)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_124] ≥ 0∧0 ≥ 0∧[bni_124] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)

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

(224)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_124] ≥ 0∧0 ≥ 0∧[bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)

For Pair 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3, x0), 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))), COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11]))) which results in the following constraint:

(225)    (<=(x3[10], x0[10])=TRUE2066_0_length_Return(x0[10])=2066_0_length_Return(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x2[10]))=java.lang.Object(List(x2[11]))∧x3[10]=x3[11]2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥))

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

(226)    (<=(x3[10], x0[10])=TRUE2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥))

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

(227)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[bni_126 + (-1)Bound*bni_126] + [(2)bni_126]x2[10] ≥ 0∧[(-1)bso_127] ≥ 0)

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

(228)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[bni_126 + (-1)Bound*bni_126] + [(2)bni_126]x2[10] ≥ 0∧[(-1)bso_127] ≥ 0)

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

(229)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[bni_126 + (-1)Bound*bni_126] + [(2)bni_126]x2[10] ≥ 0∧[(-1)bso_127] ≥ 0)

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

(230)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[(2)bni_126] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_126 + (-1)Bound*bni_126] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)

For Pair COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(java.lang.Object(List(x2)))), x2, java.lang.Object(List(x1))) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))), COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(231)    (<=(x3[10], x0[10])=TRUE2066_0_length_Return(x0[10])=2066_0_length_Return(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x2[10]))=java.lang.Object(List(x2[11]))∧x3[10]=x3[11]2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(java.lang.Object(List(x2[11]))))=x2[0]x2[11]=x3[0]java.lang.Object(List(x1[11]))=x1[0]COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

We simplified constraint (231) using rules (I), (II), (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

(232)    (<=(x3[10], x0[10])=TRUE1=x972055_0_length_NULL(x97, x1[11])=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[10])))), x2[10], java.lang.Object(List(x1[11])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

We simplified constraint (232) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x97, x1[11])=2066_0_length_Return(x0[0]) which results in the following new constraints:

(233)    (2066_0_length_Return(x98)=2066_0_length_Return(x0[0])∧<=(x3[10], x0[10])=TRUE1=x98COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x2[10])))), x2[10], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

(234)    (Cond_2055_0_length_NULL(>(x100, -1), x100, java.lang.Object(List(x99)))=2066_0_length_Return(x0[0])∧<=(x3[10], x0[10])=TRUE1=x100COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), java.lang.Object(List(x99)), java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), java.lang.Object(List(x99)), java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x99))))), java.lang.Object(List(java.lang.Object(List(x2[10])))), x2[10], java.lang.Object(List(java.lang.Object(List(x99)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

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

(235)    (<=(x3[10], x0[10])=TRUECOND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x2[10])))), x2[10], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

We simplified constraint (234) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(236)    (<=(x3[10], x0[10])=TRUECond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x99)))=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), java.lang.Object(List(x99)), java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), java.lang.Object(List(x99)), java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x99))))), java.lang.Object(List(java.lang.Object(List(x2[10])))), x2[10], java.lang.Object(List(java.lang.Object(List(x99)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

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

(237)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[bni_128 + (-1)Bound*bni_128] + [(2)bni_128]x2[10] ≥ 0∧[(-1)bso_129] ≥ 0)

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

(238)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[bni_128 + (-1)Bound*bni_128] + [(2)bni_128]x2[10] ≥ 0∧[(-1)bso_129] ≥ 0)

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

(239)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[bni_128 + (-1)Bound*bni_128] + [(2)bni_128]x2[10] ≥ 0∧[(-1)bso_129] ≥ 0)

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

(240)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[bni_128 + (-1)Bound*bni_128] + [(2)bni_128]x2[10] ≥ 0∧[(-1)bso_129] ≥ 0)

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

(241)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[bni_128 + (-1)Bound*bni_128] + [(2)bni_128]x2[10] ≥ 0∧[(-1)bso_129] ≥ 0)

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

(242)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[bni_128 + (-1)Bound*bni_128] + [(2)bni_128]x2[10] ≥ 0∧[(-1)bso_129] ≥ 0)

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

(243)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[(2)bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)

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

(244)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[(2)bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)

For Pair 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → COND_2332_1_MAIN_INVOKEMETHOD2(>(x4, x0), 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]) → COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]), COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]) which results in the following constraint:

(245)    (>(x4[12], x0[12])=TRUE2066_0_length_Return(x0[12])=2066_0_length_Return(x0[13])∧x1[12]=x1[13]java.lang.Object(List(x2[12]))=java.lang.Object(List(x2[13]))∧x4[12]=x4[13]x3[12]=x3[13]2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])≥COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥))

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

(246)    (>(x4[12], x0[12])=TRUE2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])≥COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥))

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

(247)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥)∧[(-1)Bound*bni_130] + [bni_130]x3[12] + [bni_130]x2[12] ≥ 0∧[(-1)bso_131] ≥ 0)

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

(248)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥)∧[(-1)Bound*bni_130] + [bni_130]x3[12] + [bni_130]x2[12] ≥ 0∧[(-1)bso_131] ≥ 0)

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

(249)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥)∧[(-1)Bound*bni_130] + [bni_130]x3[12] + [bni_130]x2[12] ≥ 0∧[(-1)bso_131] ≥ 0)

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

(250)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥)∧[bni_130] ≥ 0∧0 ≥ 0∧[bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 0)

For Pair COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1), x2, x3, x1) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]) → COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]), COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(251)    (>(x4[12], x0[12])=TRUE2066_0_length_Return(x0[12])=2066_0_length_Return(x0[13])∧x1[12]=x1[13]java.lang.Object(List(x2[12]))=java.lang.Object(List(x2[13]))∧x4[12]=x4[13]x3[12]=x3[13]2221_0_length_ConstantStackPush(x1[13])=2066_0_length_Return(x0[0])∧x2[13]=x2[0]x3[13]=x3[0]x1[13]=x1[0]COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13])≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13])≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))

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

(252)    (>(x4[12], x0[12])=TRUE0=x1032055_0_length_NULL(x103, x1[13])=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[12]), x1[13], java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[12]), x1[13], java.lang.Object(List(x2[12])), x4[12], x3[12])≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[12], x3[12], x1[13])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))

We simplified constraint (252) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x103, x1[13])=2066_0_length_Return(x0[0]) which results in the following new constraints:

(253)    (2066_0_length_Return(x104)=2066_0_length_Return(x0[0])∧>(x4[12], x0[12])=TRUE0=x104COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[12]), NULL, java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[12]), NULL, java.lang.Object(List(x2[12])), x4[12], x3[12])≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(NULL), x2[12], x3[12], NULL)∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))

(254)    (Cond_2055_0_length_NULL(>(x106, -1), x106, java.lang.Object(List(x105)))=2066_0_length_Return(x0[0])∧>(x4[12], x0[12])=TRUE0=x106COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[12]), java.lang.Object(List(x105)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[12]), java.lang.Object(List(x105)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x105))), x2[12], x3[12], java.lang.Object(List(x105)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))

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

(255)    (>(x4[12], x0[12])=TRUECOND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[12]), NULL, java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[12]), NULL, java.lang.Object(List(x2[12])), x4[12], x3[12])≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(NULL), x2[12], x3[12], NULL)∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))

We simplified constraint (254) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(256)    (>(x4[12], x0[12])=TRUECond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x105)))=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[12]), java.lang.Object(List(x105)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[12]), java.lang.Object(List(x105)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x105))), x2[12], x3[12], java.lang.Object(List(x105)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))

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

(257)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)Bound*bni_132] + [bni_132]x3[12] + [bni_132]x2[12] ≥ 0∧[1 + (-1)bso_133] ≥ 0)

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

(258)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)Bound*bni_132] + [bni_132]x3[12] + [bni_132]x2[12] ≥ 0∧[1 + (-1)bso_133] ≥ 0)

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

(259)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)Bound*bni_132] + [bni_132]x3[12] + [bni_132]x2[12] ≥ 0∧[1 + (-1)bso_133] ≥ 0)

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

(260)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)Bound*bni_132] + [bni_132]x3[12] + [bni_132]x2[12] ≥ 0∧[1 + (-1)bso_133] ≥ 0)

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

(261)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)Bound*bni_132] + [bni_132]x3[12] + [bni_132]x2[12] ≥ 0∧[1 + (-1)bso_133] ≥ 0)

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

(262)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)Bound*bni_132] + [bni_132]x3[12] + [bni_132]x2[12] ≥ 0∧[1 + (-1)bso_133] ≥ 0)

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

(263)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_132] ≥ 0∧0 ≥ 0∧[bni_132] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_133] ≥ 0)

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

(264)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_132] ≥ 0∧0 ≥ 0∧[bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_133] ≥ 0)

For Pair 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2332_1_MAIN_INVOKEMETHOD3(>(x3, x0), 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))), COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15]) which results in the following constraint:

(265)    (>(x3[14], x0[14])=TRUE2066_0_length_Return(x0[14])=2066_0_length_Return(x0[15])∧x1[14]=x1[15]java.lang.Object(List(x2[14]))=java.lang.Object(List(x2[15]))∧x3[14]=x3[15]2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥))

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

(266)    (>(x3[14], x0[14])=TRUE2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥))

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

(267)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥)∧[bni_134 + (-1)Bound*bni_134] + [(2)bni_134]x2[14] ≥ 0∧[(-1)bso_135] ≥ 0)

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

(268)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥)∧[bni_134 + (-1)Bound*bni_134] + [(2)bni_134]x2[14] ≥ 0∧[(-1)bso_135] ≥ 0)

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

(269)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥)∧[bni_134 + (-1)Bound*bni_134] + [(2)bni_134]x2[14] ≥ 0∧[(-1)bso_135] ≥ 0)

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

(270)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥)∧[(2)bni_134] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_134 + (-1)Bound*bni_134] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_135] ≥ 0)

For Pair COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1), x2, java.lang.Object(List(x2)), x1) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))), COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(271)    (>(x3[14], x0[14])=TRUE2066_0_length_Return(x0[14])=2066_0_length_Return(x0[15])∧x1[14]=x1[15]java.lang.Object(List(x2[14]))=java.lang.Object(List(x2[15]))∧x3[14]=x3[15]2221_0_length_ConstantStackPush(x1[15])=2066_0_length_Return(x0[0])∧x2[15]=x2[0]java.lang.Object(List(x2[15]))=x3[0]x1[15]=x1[0]COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥))

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

(272)    (>(x3[14], x0[14])=TRUE0=x1092055_0_length_NULL(x109, x1[15])=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[14]), x1[15], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[14]), x1[15], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[14], java.lang.Object(List(x2[14])), x1[15])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥))

We simplified constraint (272) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x109, x1[15])=2066_0_length_Return(x0[0]) which results in the following new constraints:

(273)    (2066_0_length_Return(x110)=2066_0_length_Return(x0[0])∧>(x3[14], x0[14])=TRUE0=x110COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[14]), NULL, java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[14]), NULL, java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(NULL), x2[14], java.lang.Object(List(x2[14])), NULL)∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥))

(274)    (Cond_2055_0_length_NULL(>(x112, -1), x112, java.lang.Object(List(x111)))=2066_0_length_Return(x0[0])∧>(x3[14], x0[14])=TRUE0=x112COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[14]), java.lang.Object(List(x111)), java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[14]), java.lang.Object(List(x111)), java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x111))), x2[14], java.lang.Object(List(x2[14])), java.lang.Object(List(x111)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥))

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

(275)    (>(x3[14], x0[14])=TRUECOND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[14]), NULL, java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[14]), NULL, java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(NULL), x2[14], java.lang.Object(List(x2[14])), NULL)∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥))

We simplified constraint (274) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(276)    (>(x3[14], x0[14])=TRUECond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x111)))=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[14]), java.lang.Object(List(x111)), java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[14]), java.lang.Object(List(x111)), java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x111))), x2[14], java.lang.Object(List(x2[14])), java.lang.Object(List(x111)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥))

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

(277)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[bni_136 + (-1)Bound*bni_136] + [(2)bni_136]x2[14] ≥ 0∧[1 + (-1)bso_137] ≥ 0)

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

(278)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[bni_136 + (-1)Bound*bni_136] + [(2)bni_136]x2[14] ≥ 0∧[1 + (-1)bso_137] ≥ 0)

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

(279)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[bni_136 + (-1)Bound*bni_136] + [(2)bni_136]x2[14] ≥ 0∧[1 + (-1)bso_137] ≥ 0)

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

(280)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[bni_136 + (-1)Bound*bni_136] + [(2)bni_136]x2[14] ≥ 0∧[1 + (-1)bso_137] ≥ 0)

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

(281)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[bni_136 + (-1)Bound*bni_136] + [(2)bni_136]x2[14] ≥ 0∧[1 + (-1)bso_137] ≥ 0)

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

(282)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[bni_136 + (-1)Bound*bni_136] + [(2)bni_136]x2[14] ≥ 0∧[1 + (-1)bso_137] ≥ 0)

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

(283)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(2)bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_136 + (-1)Bound*bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_137] ≥ 0)

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

(284)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(2)bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_136 + (-1)Bound*bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_137] ≥ 0)

For Pair 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0, 2)), 2066_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) the following chains were created:
• We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))), COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]) which results in the following constraint:

(285)    (=(1, %(x0[16], 2))=TRUE2066_0_length_Return(x0[16])=2066_0_length_Return(x0[17])∧x2[16]=x2[17]x3[16]=x3[17]java.lang.Object(List(x1[16]))=java.lang.Object(List(x1[17])) ⇒ 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥))

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

(286)    (=(1, %(x0[16], 2))=TRUE2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥))

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

(287)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(-1)bni_138 + (-1)Bound*bni_138] + [bni_138]x3[16] + [bni_138]x2[16] ≥ 0∧[(-1)bso_139] ≥ 0)

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

(288)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(-1)bni_138 + (-1)Bound*bni_138] + [bni_138]x3[16] + [bni_138]x2[16] ≥ 0∧[(-1)bso_139] ≥ 0)

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

(289)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(-1)bni_138 + (-1)Bound*bni_138] + [bni_138]x3[16] + [bni_138]x2[16] ≥ 0∧[(-1)bso_139] ≥ 0)

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

(290)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧0 ≥ 0∧[bni_138] ≥ 0∧[bni_138] ≥ 0∧0 ≥ 0∧[(-1)bni_138 + (-1)Bound*bni_138] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_139] ≥ 0)

For Pair COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1), x2, x3, x1) the following chains were created:
• We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))), COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(291)    (=(1, %(x0[16], 2))=TRUE2066_0_length_Return(x0[16])=2066_0_length_Return(x0[17])∧x2[16]=x2[17]x3[16]=x3[17]java.lang.Object(List(x1[16]))=java.lang.Object(List(x1[17]))∧2221_0_length_ConstantStackPush(x1[17])=2066_0_length_Return(x0[0])∧x2[17]=x2[0]x3[17]=x3[0]x1[17]=x1[0]COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17])))≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥))

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

(292)    (=(1, %(x0[16], 2))=TRUE2055_0_length_NULL(0, x1[17])=2066_0_length_Return(x0[0]) ⇒ COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[17])))≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[17])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[16], x3[16], x1[17])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥))

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

(293)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(-1)bni_140 + (-1)Bound*bni_140] + [bni_140]x3[16] + [bni_140]x2[16] ≥ 0∧[(-1)bso_141] ≥ 0)

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

(294)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(-1)bni_140 + (-1)Bound*bni_140] + [bni_140]x3[16] + [bni_140]x2[16] ≥ 0∧[(-1)bso_141] ≥ 0)

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

(295)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(-1)bni_140 + (-1)Bound*bni_140] + [bni_140]x3[16] + [bni_140]x2[16] ≥ 0∧[(-1)bso_141] ≥ 0)

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

(296)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧0 ≥ 0∧[bni_140] ≥ 0∧[bni_140] ≥ 0∧0 ≥ 0∧[(-1)bni_140 + (-1)Bound*bni_140] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_141] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x2, x3, x1) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

• 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x3, x4, x2) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4, -1), >(x0, -1)), 2066_0_length_Return(x0), x1, x3, x4, x2)
• (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[bni_108] ≥ 0∧0 ≥ 0∧[bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)

• COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x1, x3, x4, x2) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3), x1, x2, +(x4, x0), x3)
• (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧[bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)

• 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x2, x4, x3) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4, -1), <=(0, *(x0, 5))), <(0, +(x4, *(x0, 5)))), 2066_0_length_Return(x0), x1, x2, x4, x3)
• (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_112] ≥ 0∧[bni_112] ≥ 0∧[bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)

• COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x1, x2, x4, x3) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1), x2, x3, x1)
• (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_114] ≥ 0∧[bni_114] ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_114] ≥ 0∧[bni_114] ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

• 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x2, x3, x1) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0, 2)), 2066_0_length_Return(x0), x2, x3, x1)
• (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧0 ≥ 0∧[bni_116] ≥ 0∧[bni_116] ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)

• COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x2, x3, x1) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2), x1, x3, x2)
• (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[bni_118] ≥ 0∧[bni_118] ≥ 0∧0 ≥ 0∧[(-1)bni_118 + (-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)

• 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x3, x2) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3), x1, x2, x0, x3)
• ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_120] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)
• ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)

• 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4, x0), 2066_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[bni_122] ≥ 0∧0 ≥ 0∧[bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_123] ≥ 0)

• COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(x2)), x3, java.lang.Object(List(x1)))
• (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_124] ≥ 0∧0 ≥ 0∧[bni_124] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_124] ≥ 0∧0 ≥ 0∧[bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_124] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)

• 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3, x0), 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[(2)bni_126] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_126 + (-1)Bound*bni_126] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)

• COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(java.lang.Object(List(x2)))), x2, java.lang.Object(List(x1)))
• (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[(2)bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[(2)bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)

• 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → COND_2332_1_MAIN_INVOKEMETHOD2(>(x4, x0), 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3)
• (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥)∧[bni_130] ≥ 0∧0 ≥ 0∧[bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 0)

• COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1), x2, x3, x1)
• (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_132] ≥ 0∧0 ≥ 0∧[bni_132] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_133] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_132] ≥ 0∧0 ≥ 0∧[bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_133] ≥ 0)

• 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2332_1_MAIN_INVOKEMETHOD3(>(x3, x0), 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥)∧[(2)bni_134] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_134 + (-1)Bound*bni_134] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_135] ≥ 0)

• COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1), x2, java.lang.Object(List(x2)), x1)
• (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(2)bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_136 + (-1)Bound*bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_137] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(2)bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_136 + (-1)Bound*bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_137] ≥ 0)

• 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0, 2)), 2066_0_length_Return(x0), x2, x3, java.lang.Object(List(x1)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧0 ≥ 0∧[bni_138] ≥ 0∧[bni_138] ≥ 0∧0 ≥ 0∧[(-1)bni_138 + (-1)Bound*bni_138] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_139] ≥ 0)

• COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1), x2, x3, x1)
• (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧0 ≥ 0∧[bni_140] ≥ 0∧[bni_140] ≥ 0∧0 ≥ 0∧[(-1)bni_140 + (-1)Bound*bni_140] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_141] ≥ 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 non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0
POL(FALSE) = 0
POL(2221_0_length_ConstantStackPush(x1)) = 0
POL(2055_0_length_NULL(x1, x2)) = 0
POL(0) = 0
POL(2233_0_length_ConstantStackPush(x1)) = 0
POL(NULL) = 0
POL(2066_0_length_Return(x1)) = 0
POL(java.lang.Object(x1)) = x1
POL(List(x1)) = [1] + x1
POL(Cond_2055_0_length_NULL(x1, x2, x3)) = 0
POL(>(x1, x2)) = 0
POL(-1) = 0
POL(+(x1, x2)) = 0
POL(1) = 0
POL(2221_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + x2 + [-1]x1
POL(2233_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x3 + [-1]x1
POL(COND_2233_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + [-1]x2
POL(&&(x1, x2)) = 0
POL(2247_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x4 + x3 + [-1]x1
POL(COND_2247_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x5 + x4 + [-1]x2 + [2]x1
POL(<=(x1, x2)) = 0
POL(*(x1, x2)) = 0
POL(5) = 0
POL(<(x1, x2)) = 0
POL(2272_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + x2 + [-1]x1
POL(COND_2272_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x4 + x3 + [-1]x2
POL(=(x1, x2)) = 0
POL(2) = 0
POL(2295_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + [-1]x1
POL(2332_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x3 + [-1]x1
POL(COND_2332_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + [-1]x2
POL(COND_2332_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + [-1]x2
POL(COND_2332_1_MAIN_INVOKEMETHOD2(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + [-1]x2
POL(COND_2332_1_MAIN_INVOKEMETHOD3(x1, x2, x3, x4, x5, x6)) = [-1] + [2]x6 + [-1]x2
POL(COND_2272_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5)) = [-1] + x4 + x3 + [-1]x2

The following pairs are in P>:

COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])

The following pairs are in Pbound:

2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))
COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]) → COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])
COND_2332_1_MAIN_INVOKEMETHOD2(TRUE, 2066_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))
COND_2332_1_MAIN_INVOKEMETHOD3(TRUE, 2066_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])

The following pairs are in P:

2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))
COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]) → COND_2332_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2332_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])

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

2055_0_length_NULL(0, x0)12233_0_length_ConstantStackPush(x0)1
2055_0_length_NULL(x0, NULL)12066_0_length_Return(x0)1
2055_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_2055_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
2055_0_length_NULL(+(x1, 1), x0)1Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1
&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1
2055_0_length_NULL(0, x0)12221_0_length_ConstantStackPush(x0)1

### (27) Obligation:

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

The following domains are used:

Integer, Boolean

The ITRS R consists of the following rules:
2221_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2233_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2055_0_length_NULL(x0, NULL) → 2066_0_length_Return(x0)
2055_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2055_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2055_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(0): 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
(1): 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(x4[1] > -1 && x0[1] > -1, 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(2): COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(3): 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(4): COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(5): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(6): COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(7): 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(8): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(x4[8] <= x0[8], 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
(9): COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
(10): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(x3[10] <= x0[10], 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))
(11): COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))
(12): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]) → COND_2332_1_MAIN_INVOKEMETHOD2(x4[12] > x0[12], 2066_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])
(14): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2332_1_MAIN_INVOKEMETHOD3(x3[14] > x0[14], 2066_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))
(16): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(1 = x0[16] % 2, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
(17): COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])

(9) -> (0), if (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))) →* 2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9])) →* x2[0]x3[9]* x3[0]java.lang.Object(List(x1[9])) →* x1[0])

(11) -> (0), if (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))) →* 2066_0_length_Return(x0[0])∧java.lang.Object(List(java.lang.Object(List(x2[11])))) →* x2[0]x2[11]* x3[0]java.lang.Object(List(x1[11])) →* x1[0])

(17) -> (0), if (2221_0_length_ConstantStackPush(x1[17]) →* 2066_0_length_Return(x0[0])∧x2[17]* x2[0]x3[17]* x3[0]x1[17]* x1[0])

(0) -> (1), if (2233_0_length_ConstantStackPush(x2[0]) →* 2066_0_length_Return(x0[1])∧x1[0]* x1[1]x3[0]* x3[1]x0[0]* x4[1]x2[0]* x2[1])

(1) -> (2), if (x4[1] > -1 && x0[1] > -12066_0_length_Return(x0[1]) →* 2066_0_length_Return(x0[2])∧x1[1]* x1[2]x3[1]* x3[2]x4[1]* x4[2]x2[1]* x2[2])

(2) -> (3), if (2233_0_length_ConstantStackPush(x3[2]) →* 2066_0_length_Return(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x4[2] + x0[2]* x4[3]x3[2]* x3[3])

(3) -> (4), if (x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 52066_0_length_Return(x0[3]) →* 2066_0_length_Return(x0[4])∧x1[3]* x1[4]x2[3]* x2[4]x4[3]* x4[4]x3[3]* x3[4])

(4) -> (5), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[5])∧x2[4]* x2[5]x3[4]* x3[5]x1[4]* x1[5])

(5) -> (6), if (0 = x0[5] % 22066_0_length_Return(x0[5]) →* 2066_0_length_Return(x0[6])∧x2[5]* x2[6]x3[5]* x3[6]x1[5]* x1[6])

(6) -> (7), if (2233_0_length_ConstantStackPush(x2[6]) →* 2066_0_length_Return(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x2[6]* x2[7])

(7) -> (8), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[8])∧x1[7]* x1[8]x2[7]* x2[8]x0[7]* x4[8]x3[7]* java.lang.Object(List(x3[8])))

(8) -> (9), if (x4[8] <= x0[8]2066_0_length_Return(x0[8]) →* 2066_0_length_Return(x0[9])∧x1[8]* x1[9]x2[8]* x2[9]x4[8]* x4[9]java.lang.Object(List(x3[8])) →* java.lang.Object(List(x3[9])))

(7) -> (10), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[10])∧x1[7]* x1[10]x2[7]* java.lang.Object(List(x2[10]))∧x0[7]* x3[10]x3[7]* java.lang.Object(List(x2[10])))

(10) -> (11), if (x3[10] <= x0[10]2066_0_length_Return(x0[10]) →* 2066_0_length_Return(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x2[10])) →* java.lang.Object(List(x2[11]))∧x3[10]* x3[11])

(7) -> (12), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[12])∧x1[7]* x1[12]x2[7]* java.lang.Object(List(x2[12]))∧x0[7]* x4[12]x3[7]* x3[12])

(7) -> (14), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[14])∧x1[7]* x1[14]x2[7]* java.lang.Object(List(x2[14]))∧x0[7]* x3[14]x3[7]* java.lang.Object(List(x2[14])))

(4) -> (16), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[16])∧x2[4]* x2[16]x3[4]* x3[16]x1[4]* java.lang.Object(List(x1[16])))

(16) -> (17), if (1 = x0[16] % 22066_0_length_Return(x0[16]) →* 2066_0_length_Return(x0[17])∧x2[16]* x2[17]x3[16]* x3[17]java.lang.Object(List(x1[16])) →* java.lang.Object(List(x1[17])))

The set Q consists of the following terms:
2221_0_length_ConstantStackPush(x0)
2233_0_length_ConstantStackPush(x0)
2055_0_length_NULL(x0, NULL)
2055_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_2055_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

### (28) IDependencyGraphProof (EQUIVALENT transformation)

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

### (29) Obligation:

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

The following domains are used:

Integer, Boolean

The ITRS R consists of the following rules:
2221_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2233_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2055_0_length_NULL(x0, NULL) → 2066_0_length_Return(x0)
2055_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2055_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2055_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(17): COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])
(16): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(1 = x0[16] % 2, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
(11): COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))
(10): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(x3[10] <= x0[10], 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))
(9): COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
(8): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(x4[8] <= x0[8], 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
(7): 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(6): COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(5): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(4): COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(3): 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(2): COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(1): 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(x4[1] > -1 && x0[1] > -1, 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(0): 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

(9) -> (0), if (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))) →* 2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9])) →* x2[0]x3[9]* x3[0]java.lang.Object(List(x1[9])) →* x1[0])

(11) -> (0), if (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))) →* 2066_0_length_Return(x0[0])∧java.lang.Object(List(java.lang.Object(List(x2[11])))) →* x2[0]x2[11]* x3[0]java.lang.Object(List(x1[11])) →* x1[0])

(17) -> (0), if (2221_0_length_ConstantStackPush(x1[17]) →* 2066_0_length_Return(x0[0])∧x2[17]* x2[0]x3[17]* x3[0]x1[17]* x1[0])

(0) -> (1), if (2233_0_length_ConstantStackPush(x2[0]) →* 2066_0_length_Return(x0[1])∧x1[0]* x1[1]x3[0]* x3[1]x0[0]* x4[1]x2[0]* x2[1])

(1) -> (2), if (x4[1] > -1 && x0[1] > -12066_0_length_Return(x0[1]) →* 2066_0_length_Return(x0[2])∧x1[1]* x1[2]x3[1]* x3[2]x4[1]* x4[2]x2[1]* x2[2])

(2) -> (3), if (2233_0_length_ConstantStackPush(x3[2]) →* 2066_0_length_Return(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x4[2] + x0[2]* x4[3]x3[2]* x3[3])

(3) -> (4), if (x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 52066_0_length_Return(x0[3]) →* 2066_0_length_Return(x0[4])∧x1[3]* x1[4]x2[3]* x2[4]x4[3]* x4[4]x3[3]* x3[4])

(4) -> (5), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[5])∧x2[4]* x2[5]x3[4]* x3[5]x1[4]* x1[5])

(5) -> (6), if (0 = x0[5] % 22066_0_length_Return(x0[5]) →* 2066_0_length_Return(x0[6])∧x2[5]* x2[6]x3[5]* x3[6]x1[5]* x1[6])

(6) -> (7), if (2233_0_length_ConstantStackPush(x2[6]) →* 2066_0_length_Return(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x2[6]* x2[7])

(7) -> (8), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[8])∧x1[7]* x1[8]x2[7]* x2[8]x0[7]* x4[8]x3[7]* java.lang.Object(List(x3[8])))

(8) -> (9), if (x4[8] <= x0[8]2066_0_length_Return(x0[8]) →* 2066_0_length_Return(x0[9])∧x1[8]* x1[9]x2[8]* x2[9]x4[8]* x4[9]java.lang.Object(List(x3[8])) →* java.lang.Object(List(x3[9])))

(7) -> (10), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[10])∧x1[7]* x1[10]x2[7]* java.lang.Object(List(x2[10]))∧x0[7]* x3[10]x3[7]* java.lang.Object(List(x2[10])))

(10) -> (11), if (x3[10] <= x0[10]2066_0_length_Return(x0[10]) →* 2066_0_length_Return(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x2[10])) →* java.lang.Object(List(x2[11]))∧x3[10]* x3[11])

(4) -> (16), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[16])∧x2[4]* x2[16]x3[4]* x3[16]x1[4]* java.lang.Object(List(x1[16])))

(16) -> (17), if (1 = x0[16] % 22066_0_length_Return(x0[16]) →* 2066_0_length_Return(x0[17])∧x2[16]* x2[17]x3[16]* x3[17]java.lang.Object(List(x1[16])) →* java.lang.Object(List(x1[17])))

The set Q consists of the following terms:
2221_0_length_ConstantStackPush(x0)
2233_0_length_ConstantStackPush(x0)
2055_0_length_NULL(x0, NULL)
2055_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_2055_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

### (30) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@23c3622c Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

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

For Pair COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]) the following chains were created:
• We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))), COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(1)    (=(1, %(x0[16], 2))=TRUE2066_0_length_Return(x0[16])=2066_0_length_Return(x0[17])∧x2[16]=x2[17]x3[16]=x3[17]java.lang.Object(List(x1[16]))=java.lang.Object(List(x1[17]))∧2221_0_length_ConstantStackPush(x1[17])=2066_0_length_Return(x0[0])∧x2[17]=x2[0]x3[17]=x3[0]x1[17]=x1[0]COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17])))≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥))

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

(2)    (=(1, %(x0[16], 2))=TRUE2055_0_length_NULL(0, x1[17])=2066_0_length_Return(x0[0]) ⇒ COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[17])))≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[17])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[16], x3[16], x1[17])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥))

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

(3)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(-1)bni_92 + (-1)Bound*bni_92] + [bni_92]x3[16] + [(-1)bni_92]x2[16] ≥ 0∧[(-1)bso_93] ≥ 0)

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

(4)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(-1)bni_92 + (-1)Bound*bni_92] + [bni_92]x3[16] + [(-1)bni_92]x2[16] ≥ 0∧[(-1)bso_93] ≥ 0)

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

(5)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(-1)bni_92 + (-1)Bound*bni_92] + [bni_92]x3[16] + [(-1)bni_92]x2[16] ≥ 0∧[(-1)bso_93] ≥ 0)

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

(6)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧0 ≥ 0∧[bni_92] ≥ 0∧[(-1)bni_92] ≥ 0∧0 ≥ 0∧[(-1)bni_92 + (-1)Bound*bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)

For Pair 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) the following chains were created:
• We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))), COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]) which results in the following constraint:

(7)    (=(1, %(x0[16], 2))=TRUE2066_0_length_Return(x0[16])=2066_0_length_Return(x0[17])∧x2[16]=x2[17]x3[16]=x3[17]java.lang.Object(List(x1[16]))=java.lang.Object(List(x1[17])) ⇒ 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥))

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

(8)    (=(1, %(x0[16], 2))=TRUE2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥))

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

(9)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [bni_94]x3[16] + [(-1)bni_94]x2[16] ≥ 0∧[(-1)bso_95] ≥ 0)

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

(10)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [bni_94]x3[16] + [(-1)bni_94]x2[16] ≥ 0∧[(-1)bso_95] ≥ 0)

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

(11)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [bni_94]x3[16] + [(-1)bni_94]x2[16] ≥ 0∧[(-1)bso_95] ≥ 0)

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

(12)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧0 ≥ 0∧[bni_94] ≥ 0∧[(-1)bni_94] ≥ 0∧0 ≥ 0∧[(-1)bni_94 + (-1)Bound*bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)

For Pair COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11]))) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))), COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(13)    (<=(x3[10], x0[10])=TRUE2066_0_length_Return(x0[10])=2066_0_length_Return(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x2[10]))=java.lang.Object(List(x2[11]))∧x3[10]=x3[11]2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(java.lang.Object(List(x2[11]))))=x2[0]x2[11]=x3[0]java.lang.Object(List(x1[11]))=x1[0]COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

We simplified constraint (13) using rules (I), (II), (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

(14)    (<=(x3[10], x0[10])=TRUE1=x02055_0_length_NULL(x0, x1[11])=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[10])))), x2[10], java.lang.Object(List(x1[11])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x0, x1[11])=2066_0_length_Return(x0[0]) which results in the following new constraints:

(15)    (2066_0_length_Return(x1)=2066_0_length_Return(x0[0])∧<=(x3[10], x0[10])=TRUE1=x1COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x2[10])))), x2[10], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

(16)    (Cond_2055_0_length_NULL(>(x3, -1), x3, java.lang.Object(List(x2)))=2066_0_length_Return(x0[0])∧<=(x3[10], x0[10])=TRUE1=x3COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2))))), java.lang.Object(List(java.lang.Object(List(x2[10])))), x2[10], java.lang.Object(List(java.lang.Object(List(x2)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

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

(17)    (<=(x3[10], x0[10])=TRUECOND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x2[10])))), x2[10], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

We simplified constraint (16) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(18)    (<=(x3[10], x0[10])=TRUECond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x2)))=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[10]), java.lang.Object(List(x2)), java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2))))), java.lang.Object(List(java.lang.Object(List(x2[10])))), x2[10], java.lang.Object(List(java.lang.Object(List(x2)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥))

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

(19)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧[2 + (-1)bso_97] ≥ 0)

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

(20)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧[2 + (-1)bso_97] ≥ 0)

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

(21)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧[2 + (-1)bso_97] ≥ 0)

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

(22)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧[2 + (-1)bso_97] ≥ 0)

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

(23)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧[2 + (-1)bso_97] ≥ 0)

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

(24)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧[2 + (-1)bso_97] ≥ 0)

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

(25)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_97] ≥ 0)

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

(26)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_97] ≥ 0)

For Pair 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))), COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11]))) which results in the following constraint:

(27)    (<=(x3[10], x0[10])=TRUE2066_0_length_Return(x0[10])=2066_0_length_Return(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x2[10]))=java.lang.Object(List(x2[11]))∧x3[10]=x3[11]2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥))

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

(28)    (<=(x3[10], x0[10])=TRUE2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥))

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

(29)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧[(-1)bso_99] ≥ 0)

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

(30)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧[(-1)bso_99] ≥ 0)

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

(31)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧[(-1)bso_99] ≥ 0)

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

(32)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)

For Pair COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(33)    (<=(x4[8], x0[8])=TRUE2066_0_length_Return(x0[8])=2066_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9]))∧2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9]))=x2[0]x3[9]=x3[0]java.lang.Object(List(x1[9]))=x1[0]COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

We simplified constraint (33) using rules (I), (II), (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

(34)    (<=(x4[8], x0[8])=TRUE1=x62055_0_length_NULL(x6, x1[9])=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(x1[9])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

We simplified constraint (34) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x6, x1[9])=2066_0_length_Return(x0[0]) which results in the following new constraints:

(35)    (2066_0_length_Return(x7)=2066_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x7COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

(36)    (Cond_2055_0_length_NULL(>(x9, -1), x9, java.lang.Object(List(x8)))=2066_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x9COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x8)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x8)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x8))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x8)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

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

(37)    (<=(x4[8], x0[8])=TRUECOND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

We simplified constraint (36) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

(38)    (<=(x4[8], x0[8])=TRUECond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x8)))=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x8)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x8)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x8))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x8)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))

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

(39)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)

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

(40)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)

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

(41)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)

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

(42)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)

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

(43)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)

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

(44)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)

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

(45)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧[(-1)bni_100] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)

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

(46)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧[(-1)bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)

For Pair 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) the following chains were created:
• We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))) which results in the following constraint:

(47)    (<=(x4[8], x0[8])=TRUE2066_0_length_Return(x0[8])=2066_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9])) ⇒ 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥))

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

(48)    (<=(x4[8], x0[8])=TRUE2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2332_1_MAIN_INVO