### (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:
2047_0_length_NULL(EOS(STATIC_2047), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2051_0_length_NULL(EOS(STATIC_2051), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2051_0_length_NULL(EOS(STATIC_2051), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2053_0_length_Load(EOS(STATIC_2053), java.lang.Object(o1486sub))
2057_0_length_InvokeMethod(EOS(STATIC_2057), java.lang.Object(o1486sub)) → 2059_0_getTail_Load(EOS(STATIC_2059), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2059_0_getTail_Load(EOS(STATIC_2059), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2067_0_getTail_FieldAccess(EOS(STATIC_2067), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2067_0_getTail_FieldAccess(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))
2067_0_getTail_FieldAccess(EOS(STATIC_2067), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2077_0_getTail_FieldAccess(EOS(STATIC_2077), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2076_0_getTail_FieldAccess(EOS(STATIC_2076), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2081_0_getTail_FieldAccess(EOS(STATIC_2081), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2076_0_getTail_FieldAccess(EOS(STATIC_2076), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2082_0_getTail_FieldAccess(EOS(STATIC_2082), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2081_0_getTail_FieldAccess(EOS(STATIC_2081), java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505))) → 2088_0_getTail_FieldAccess(EOS(STATIC_2088), java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505)))
2088_0_getTail_FieldAccess(EOS(STATIC_2088), java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505))) → 2095_0_getTail_Return(EOS(STATIC_2095), java.lang.Object(List(EOC, o1505)), o1505)
2095_0_getTail_Return(EOS(STATIC_2095), java.lang.Object(List(EOC, o1505)), o1505) → 2106_0_length_Store(EOS(STATIC_2106), o1505)
2106_0_length_Store(EOS(STATIC_2106), o1505) → 2116_0_length_Inc(EOS(STATIC_2116), o1505)
2116_0_length_Inc(EOS(STATIC_2116), o1505) → 2127_0_length_JMP(EOS(STATIC_2127), o1505)
2043_0_length_Load(EOS(STATIC_2043), o1469) → 2047_0_length_NULL(EOS(STATIC_2047), o1469, o1469)
2082_0_getTail_FieldAccess(EOS(STATIC_2082), java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508))) → 2089_0_getTail_FieldAccess(EOS(STATIC_2089), java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508)))
2089_0_getTail_FieldAccess(EOS(STATIC_2089), java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508))) → 2097_0_getTail_Return(EOS(STATIC_2097), java.lang.Object(List(EOC, o1508)), o1508)
2097_0_getTail_Return(EOS(STATIC_2097), java.lang.Object(List(EOC, o1508)), o1508) → 2107_0_length_Store(EOS(STATIC_2107), o1508)
2107_0_length_Store(EOS(STATIC_2107), o1508) → 2118_0_length_Inc(EOS(STATIC_2118), o1508)
2118_0_length_Inc(EOS(STATIC_2118), o1508) → 2128_0_length_JMP(EOS(STATIC_2128), o1508)
2077_0_getTail_FieldAccess(EOS(STATIC_2077), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2083_0_getTail_FieldAccess(EOS(STATIC_2083), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2077_0_getTail_FieldAccess(EOS(STATIC_2077), java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2084_0_getTail_FieldAccess(EOS(STATIC_2084), java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2083_0_getTail_FieldAccess(EOS(STATIC_2083), java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511))) → 2091_0_getTail_FieldAccess(EOS(STATIC_2091), java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511)))
2091_0_getTail_FieldAccess(EOS(STATIC_2091), java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511))) → 2099_0_getTail_Return(EOS(STATIC_2099), java.lang.Object(List(EOC, o1511)), o1511)
2099_0_getTail_Return(EOS(STATIC_2099), java.lang.Object(List(EOC, o1511)), o1511) → 2110_0_length_Store(EOS(STATIC_2110), o1511)
2110_0_length_Store(EOS(STATIC_2110), o1511) → 2120_0_length_Inc(EOS(STATIC_2120), o1511)
2120_0_length_Inc(EOS(STATIC_2120), o1511) → 2131_0_length_JMP(EOS(STATIC_2131), o1511)
2084_0_getTail_FieldAccess(EOS(STATIC_2084), java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514))) → 2092_0_getTail_FieldAccess(EOS(STATIC_2092), java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514)))
2092_0_getTail_FieldAccess(EOS(STATIC_2092), java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514))) → 2102_0_getTail_Return(EOS(STATIC_2102), java.lang.Object(List(EOC, o1514)), o1514)
2102_0_getTail_Return(EOS(STATIC_2102), java.lang.Object(List(EOC, o1514)), o1514) → 2112_0_length_Store(EOS(STATIC_2112), o1514)
2112_0_length_Store(EOS(STATIC_2112), o1514) → 2123_0_length_Inc(EOS(STATIC_2123), o1514)
2123_0_length_Inc(EOS(STATIC_2123), o1514) → 2133_0_length_JMP(EOS(STATIC_2133), o1514)
R rules:

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

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

Filtered ground terms:

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

Filtered duplicate args:

2047_0_length_NULL(x1, x2) → 2047_0_length_NULL(x2)

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

P rules:
2047_0_length_NULL(java.lang.Object(List(x0))) → 2047_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:
2047_0_LENGTH_NULL(java.lang.Object(List(x0))) → 2047_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): 2047_0_LENGTH_NULL(java.lang.Object(List(x0[0]))) → 2047_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:

2047_0_LENGTH_NULL(java.lang.Object(List(x0[0]))) → 2047_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:

• 2047_0_LENGTH_NULL(java.lang.Object(List(x0[0]))) → 2047_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:
756_0_mk_Inc(EOS(STATIC_756), i101, i101) → 766_0_mk_LE(EOS(STATIC_766), +(i101, -1), i101)
766_0_mk_LE(EOS(STATIC_766), i105, i109) → 777_0_mk_LE(EOS(STATIC_777), i105, i109)
777_0_mk_LE(EOS(STATIC_777), i105, i109) → 783_0_mk_New(EOS(STATIC_783), i105) | >(i109, 0)
783_0_mk_New(EOS(STATIC_783), i105) → 794_0_mk_Duplicate(EOS(STATIC_794), i105)
794_0_mk_Duplicate(EOS(STATIC_794), i105) → 809_0_mk_New(EOS(STATIC_809), i105)
809_0_mk_New(EOS(STATIC_809), i105) → 826_0_mk_Duplicate(EOS(STATIC_826), i105)
826_0_mk_Duplicate(EOS(STATIC_826), i105) → 844_0_mk_InvokeMethod(EOS(STATIC_844), i105)
957_0_<init>_FieldAccess(EOS(STATIC_957), i105) → 972_0_<init>_Return(EOS(STATIC_972), i105)
972_0_<init>_Return(EOS(STATIC_972), i105) → 982_0_mk_Store(EOS(STATIC_982), i105)
982_0_mk_Store(EOS(STATIC_982), i105) → 992_0_mk_JMP(EOS(STATIC_992), i105)
745_0_mk_Load(EOS(STATIC_745), i101) → 756_0_mk_Inc(EOS(STATIC_756), i101, i101)
R rules:

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

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

Filtered ground terms:

756_0_mk_Inc(x1, x2, x3) → 756_0_mk_Inc(x2, x3)
EOS(x1) → EOS
Cond_756_0_mk_Inc(x1, x2, x3, x4) → Cond_756_0_mk_Inc(x1, x3, x4)

Filtered duplicate args:

756_0_mk_Inc(x1, x2) → 756_0_mk_Inc(x2)
Cond_756_0_mk_Inc(x1, x2, x3) → Cond_756_0_mk_Inc(x1, x3)

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

P rules:
756_0_mk_Inc(x0) → 756_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:
756_0_MK_INC(x0) → COND_756_0_MK_INC(>(x0, 0), x0)
COND_756_0_MK_INC(TRUE, x0) → 756_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): 756_0_MK_INC(x0[0]) → COND_756_0_MK_INC(x0[0] > 0, x0[0])
(1): COND_756_0_MK_INC(TRUE, x0[1]) → 756_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@56e49dfd 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 756_0_MK_INC(x0) → COND_756_0_MK_INC(>(x0, 0), x0) the following chains were created:
• We consider the chain 756_0_MK_INC(x0[0]) → COND_756_0_MK_INC(>(x0[0], 0), x0[0]), COND_756_0_MK_INC(TRUE, x0[1]) → 756_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

(1)    (>(x0[0], 0)=TRUEx0[0]=x0[1]756_0_MK_INC(x0[0])≥NonInfC∧756_0_MK_INC(x0[0])≥COND_756_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_756_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)=TRUE756_0_MK_INC(x0[0])≥NonInfC∧756_0_MK_INC(x0[0])≥COND_756_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_756_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_756_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_756_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_756_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_756_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_756_0_MK_INC(TRUE, x0) → 756_0_MK_INC(+(x0, -1)) the following chains were created:
• We consider the chain COND_756_0_MK_INC(TRUE, x0[1]) → 756_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

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

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

(8)    ((UIncreasing(756_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(756_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(756_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(756_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.
• 756_0_MK_INC(x0) → COND_756_0_MK_INC(>(x0, 0), x0)
• (x0[0] ≥ 0 ⇒ (UIncreasing(COND_756_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_756_0_MK_INC(TRUE, x0) → 756_0_MK_INC(+(x0, -1))
• ((UIncreasing(756_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(756_0_MK_INC(x1)) = [2]x1
POL(COND_756_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_756_0_MK_INC(TRUE, x0[1]) → 756_0_MK_INC(+(x0[1], -1))

The following pairs are in Pbound:

756_0_MK_INC(x0[0]) → COND_756_0_MK_INC(>(x0[0], 0), x0[0])

The following pairs are in P:

756_0_MK_INC(x0[0]) → COND_756_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): 756_0_MK_INC(x0[0]) → COND_756_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_756_0_MK_INC(TRUE, x0[1]) → 756_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:
2213_0_main_InvokeMethod(EOS(STATIC_2213), o1633, o1634, o1635, o1633) → 2215_1_main_InvokeMethod(2215_0_length_ConstantStackPush(EOS(STATIC_2215), o1633), o1633, o1634, o1635, o1633)
2215_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), i301), o1655, o1634, o1635, o1655) → 2222_0_length_Return(EOS(STATIC_2222), o1655, o1634, o1635, o1655, i301)
2222_0_length_Return(EOS(STATIC_2222), o1655, o1634, o1635, o1655, i301) → 2223_0_main_Load(EOS(STATIC_2223), o1655, o1634, o1635, i301)
2223_0_main_Load(EOS(STATIC_2223), o1655, o1634, o1635, i301) → 2224_0_main_InvokeMethod(EOS(STATIC_2224), o1655, o1634, o1635, i301, o1634)
2224_0_main_InvokeMethod(EOS(STATIC_2224), o1655, o1634, o1635, i301, o1634) → 2225_1_main_InvokeMethod(2225_0_length_ConstantStackPush(EOS(STATIC_2225), o1634), o1655, o1634, o1635, i301, o1634)
2225_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), i324), o1655, o1666, o1667, i301, o1666) → 2235_0_length_Return(EOS(STATIC_2235), o1655, o1666, o1667, i301, o1666, i324)
2235_0_length_Return(EOS(STATIC_2235), o1655, o1666, o1667, i301, o1666, i324) → 2236_0_main_IntArithmetic(EOS(STATIC_2236), o1655, o1666, o1667, i301, i324)
2236_0_main_IntArithmetic(EOS(STATIC_2236), o1655, o1666, o1667, i301, i324) → 2238_0_main_Load(EOS(STATIC_2238), o1655, o1666, o1667, +(i301, i324)) | &&(>=(i301, 0), >=(i324, 0))
2238_0_main_Load(EOS(STATIC_2238), o1655, o1666, o1667, i325) → 2239_0_main_InvokeMethod(EOS(STATIC_2239), o1655, o1666, o1667, i325, o1667)
2239_0_main_InvokeMethod(EOS(STATIC_2239), o1655, o1666, o1667, i325, o1667) → 2240_1_main_InvokeMethod(2240_0_length_ConstantStackPush(EOS(STATIC_2240), o1667), o1655, o1666, o1667, i325, o1667)
2240_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), i301), o1655, o1679, o1678, i325, o1678) → 2249_0_length_Return(EOS(STATIC_2249), o1655, o1679, o1678, i325, o1678, i301)
2249_0_length_Return(EOS(STATIC_2249), o1655, o1679, o1678, i325, o1678, i301) → 2251_0_main_ConstantStackPush(EOS(STATIC_2251), o1655, o1679, o1678, i325, i301)
2251_0_main_ConstantStackPush(EOS(STATIC_2251), o1655, o1679, o1678, i325, i301) → 2252_0_main_IntArithmetic(EOS(STATIC_2252), o1655, o1679, o1678, i325, i301, 5)
2252_0_main_IntArithmetic(EOS(STATIC_2252), o1655, o1679, o1678, i325, i301, matching1) → 2254_0_main_IntArithmetic(EOS(STATIC_2254), o1655, o1679, o1678, i325, *(i301, 5)) | =(matching1, 5)
2254_0_main_IntArithmetic(EOS(STATIC_2254), o1655, o1679, o1678, i325, i326) → 2255_0_main_LE(EOS(STATIC_2255), o1655, o1679, o1678, +(i325, i326)) | &&(>=(i325, 0), >=(i326, 0))
2255_0_main_LE(EOS(STATIC_2255), o1655, o1679, o1678, i329) → 2257_0_main_LE(EOS(STATIC_2257), o1655, o1679, o1678, i329)
2257_0_main_LE(EOS(STATIC_2257), o1655, o1679, o1678, i329) → 2260_0_main_Load(EOS(STATIC_2260), o1655, o1679, o1678) | >(i329, 0)
2260_0_main_Load(EOS(STATIC_2260), o1655, o1679, o1678) → 2262_0_main_InvokeMethod(EOS(STATIC_2262), o1655, o1679, o1678, o1655)
2262_0_main_InvokeMethod(EOS(STATIC_2262), o1655, o1679, o1678, o1655) → 2264_1_main_InvokeMethod(2264_0_length_ConstantStackPush(EOS(STATIC_2264), o1655), o1655, o1679, o1678, o1655)
2264_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), i301), o1688, o1679, o1678, o1688) → 2271_0_length_Return(EOS(STATIC_2271), o1688, o1679, o1678, o1688, i301)
2271_0_length_Return(EOS(STATIC_2271), o1688, o1679, o1678, o1688, i301) → 2273_0_main_ConstantStackPush(EOS(STATIC_2273), o1688, o1679, o1678, i301)
2273_0_main_ConstantStackPush(EOS(STATIC_2273), o1688, o1679, o1678, i301) → 2274_0_main_IntArithmetic(EOS(STATIC_2274), o1688, o1679, o1678, i301, 2)
2274_0_main_IntArithmetic(EOS(STATIC_2274), o1688, o1679, o1678, i301, matching1) → 2275_0_main_ConstantStackPush(EOS(STATIC_2275), o1688, o1679, o1678, %(i301, 2)) | =(matching1, 2)
2275_0_main_ConstantStackPush(EOS(STATIC_2275), o1688, o1679, o1678, i330) → 2277_0_main_NE(EOS(STATIC_2277), o1688, o1679, o1678, i330, 1)
2277_0_main_NE(EOS(STATIC_2277), o1688, o1679, o1678, matching1, matching2) → 2278_0_main_NE(EOS(STATIC_2278), o1688, o1679, o1678, 0, 1) | &&(=(matching1, 0), =(matching2, 1))
2277_0_main_NE(EOS(STATIC_2277), o1688, o1679, o1678, matching1, matching2) → 2280_0_main_NE(EOS(STATIC_2280), o1688, o1679, o1678, 1, 1) | &&(=(matching1, 1), =(matching2, 1))
2278_0_main_NE(EOS(STATIC_2278), o1688, o1679, o1678, matching1, matching2) → 2281_0_main_Load(EOS(STATIC_2281), o1688, o1679, o1678) | &&(=(matching1, 0), =(matching2, 1))
2281_0_main_Load(EOS(STATIC_2281), o1688, o1679, o1678) → 2283_0_main_InvokeMethod(EOS(STATIC_2283), o1688, o1679, o1678, o1679)
2283_0_main_InvokeMethod(EOS(STATIC_2283), o1688, o1679, o1678, o1679) → 2286_1_main_InvokeMethod(2286_0_length_ConstantStackPush(EOS(STATIC_2286), o1679), o1688, o1679, o1678, o1679)
2286_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), i301), o1688, o1708, o1709, o1708) → 2311_0_length_Return(EOS(STATIC_2311), o1688, o1708, o1709, o1708, i301)
2311_0_length_Return(EOS(STATIC_2311), o1688, o1708, o1709, o1708, i301) → 2313_0_main_Load(EOS(STATIC_2313), o1688, o1708, o1709, i301)
2313_0_main_Load(EOS(STATIC_2313), o1688, o1708, o1709, i301) → 2318_0_main_InvokeMethod(EOS(STATIC_2318), o1688, o1708, o1709, i301, o1709)
2318_0_main_InvokeMethod(EOS(STATIC_2318), o1688, o1708, o1709, i301, o1709) → 2323_1_main_InvokeMethod(2323_0_length_ConstantStackPush(EOS(STATIC_2323), o1709), o1688, o1708, o1709, i301, o1709)
2323_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), i331), o1688, o1725, o1724, i301, o1724) → 2340_0_length_Return(EOS(STATIC_2340), o1688, o1725, o1724, i301, o1724, i331)
2340_0_length_Return(EOS(STATIC_2340), o1688, o1725, o1724, i301, o1724, i331) → 2342_0_main_LE(EOS(STATIC_2342), o1688, o1725, o1724, i301, i331)
2342_0_main_LE(EOS(STATIC_2342), o1688, o1725, o1724, i301, i331) → 2345_0_main_LE(EOS(STATIC_2345), o1688, o1725, o1724, i301, i331)
2342_0_main_LE(EOS(STATIC_2342), o1688, o1725, o1724, i301, i331) → 2346_0_main_LE(EOS(STATIC_2346), o1688, o1725, o1724, i301, i331)
2345_0_main_LE(EOS(STATIC_2345), o1688, o1725, o1724, i301, i331) → 2351_0_main_Load(EOS(STATIC_2351), o1688, o1725, o1724) | <=(i301, i331)
2351_0_main_Load(EOS(STATIC_2351), o1688, o1725, o1724) → 2355_0_main_NONNULL(EOS(STATIC_2355), o1688, o1725, o1724, o1724)
2355_0_main_NONNULL(EOS(STATIC_2355), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(o1730sub)) → 2360_0_main_NONNULL(EOS(STATIC_2360), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(o1730sub))
2360_0_main_NONNULL(EOS(STATIC_2360), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(o1730sub)) → 2367_0_main_New(EOS(STATIC_2367), o1688, o1725, java.lang.Object(o1730sub))
2367_0_main_New(EOS(STATIC_2367), o1688, o1725, java.lang.Object(o1730sub)) → 2374_0_main_Duplicate(EOS(STATIC_2374), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)))
2374_0_main_Duplicate(EOS(STATIC_2374), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL))) → 2380_0_main_New(EOS(STATIC_2380), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
2380_0_main_New(EOS(STATIC_2380), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 2386_0_main_Duplicate(EOS(STATIC_2386), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC))
2386_0_main_Duplicate(EOS(STATIC_2386), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) → 2394_0_main_InvokeMethod(EOS(STATIC_2394), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC))
2394_0_main_InvokeMethod(EOS(STATIC_2394), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC)) → 2401_0_main_Load(EOS(STATIC_2401), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC))
2401_0_main_Load(EOS(STATIC_2401), o1688, o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) → 2407_0_main_InvokeMethod(EOS(STATIC_2407), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688)
2407_0_main_InvokeMethod(EOS(STATIC_2407), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1688) → 2413_0_<init>_Load(EOS(STATIC_2413), o1725, 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)
2413_0_<init>_Load(EOS(STATIC_2413), o1725, 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) → 2422_0_<init>_InvokeMethod(EOS(STATIC_2422), o1725, 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)))
2422_0_<init>_InvokeMethod(EOS(STATIC_2422), o1725, 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))) → 2426_0_<init>_Load(EOS(STATIC_2426), o1725, 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)
2426_0_<init>_Load(EOS(STATIC_2426), o1725, 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) → 2429_0_<init>_Load(EOS(STATIC_2429), o1725, 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)))
2429_0_<init>_Load(EOS(STATIC_2429), o1725, 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))) → 2430_0_<init>_FieldAccess(EOS(STATIC_2430), o1725, 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))
2430_0_<init>_FieldAccess(EOS(STATIC_2430), o1725, 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)) → 2433_0_<init>_Load(EOS(STATIC_2433), o1725, 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)
2433_0_<init>_Load(EOS(STATIC_2433), o1725, 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) → 2437_0_<init>_Load(EOS(STATIC_2437), o1725, 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)))
2437_0_<init>_Load(EOS(STATIC_2437), o1725, 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))) → 2440_0_<init>_FieldAccess(EOS(STATIC_2440), o1725, 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)
2440_0_<init>_FieldAccess(EOS(STATIC_2440), o1725, 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) → 2445_0_<init>_Return(EOS(STATIC_2445), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1688)), java.lang.Object(EOC), o1688)
2445_0_<init>_Return(EOS(STATIC_2445), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1688)), java.lang.Object(EOC), o1688) → 2448_0_main_Store(EOS(STATIC_2448), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1688)))
2448_0_main_Store(EOS(STATIC_2448), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1688))) → 2452_0_main_New(EOS(STATIC_2452), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub))
2452_0_main_New(EOS(STATIC_2452), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub)) → 2455_0_main_Duplicate(EOS(STATIC_2455), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)))
2455_0_main_Duplicate(EOS(STATIC_2455), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL))) → 2458_0_main_New(EOS(STATIC_2458), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
2458_0_main_New(EOS(STATIC_2458), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 2461_0_main_Duplicate(EOS(STATIC_2461), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC))
2461_0_main_Duplicate(EOS(STATIC_2461), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) → 2465_0_main_InvokeMethod(EOS(STATIC_2465), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC))
2465_0_main_InvokeMethod(EOS(STATIC_2465), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC)) → 2468_0_main_Load(EOS(STATIC_2468), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC))
2468_0_main_Load(EOS(STATIC_2468), java.lang.Object(List(EOC, o1688)), o1725, java.lang.Object(o1730sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) → 2471_0_main_InvokeMethod(EOS(STATIC_2471), 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), o1725)
2471_0_main_InvokeMethod(EOS(STATIC_2471), 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), o1725) → 2473_0_<init>_Load(EOS(STATIC_2473), 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), o1725, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1725)
2473_0_<init>_Load(EOS(STATIC_2473), 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), o1725, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1725) → 2475_0_<init>_InvokeMethod(EOS(STATIC_2475), 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), o1725, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1725, java.lang.Object(List(EOC, NULL)))
2475_0_<init>_InvokeMethod(EOS(STATIC_2475), 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), o1725, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1725, java.lang.Object(List(EOC, NULL))) → 2477_0_<init>_Load(EOS(STATIC_2477), 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), o1725, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1725)
2477_0_<init>_Load(EOS(STATIC_2477), 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), o1725, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1725) → 2479_0_<init>_Load(EOS(STATIC_2479), 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), o1725, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1725, java.lang.Object(List(EOC, NULL)))
2479_0_<init>_Load(EOS(STATIC_2479), 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), o1725, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o1725, java.lang.Object(List(EOC, NULL))) → 2481_0_<init>_FieldAccess(EOS(STATIC_2481), 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), o1725, java.lang.Object(List(EOC, NULL)), o1725, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC))
2481_0_<init>_FieldAccess(EOS(STATIC_2481), 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), o1725, java.lang.Object(List(EOC, NULL)), o1725, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) → 2483_0_<init>_Load(EOS(STATIC_2483), 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), o1725, java.lang.Object(List(EOC, NULL)), o1725)
2483_0_<init>_Load(EOS(STATIC_2483), 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), o1725, java.lang.Object(List(EOC, NULL)), o1725) → 2485_0_<init>_Load(EOS(STATIC_2485), 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), o1725, o1725, java.lang.Object(List(EOC, NULL)))
2485_0_<init>_Load(EOS(STATIC_2485), 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), o1725, o1725, java.lang.Object(List(EOC, NULL))) → 2487_0_<init>_FieldAccess(EOS(STATIC_2487), 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), o1725, java.lang.Object(List(EOC, NULL)), o1725)
2487_0_<init>_FieldAccess(EOS(STATIC_2487), 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), o1725, java.lang.Object(List(EOC, NULL)), o1725) → 2490_0_<init>_Return(EOS(STATIC_2490), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1725)), java.lang.Object(List(EOC, o1725)), java.lang.Object(EOC), o1725)
2490_0_<init>_Return(EOS(STATIC_2490), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1725)), java.lang.Object(List(EOC, o1725)), java.lang.Object(EOC), o1725) → 2491_0_main_Store(EOS(STATIC_2491), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1725)))
2491_0_main_Store(EOS(STATIC_2491), java.lang.Object(List(EOC, o1688)), java.lang.Object(o1730sub), java.lang.Object(List(EOC, o1725))) → 2493_0_main_Load(EOS(STATIC_2493), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(o1730sub))
2493_0_main_Load(EOS(STATIC_2493), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(o1730sub)) → 2494_0_main_InvokeMethod(EOS(STATIC_2494), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(o1730sub))
2494_0_main_InvokeMethod(EOS(STATIC_2494), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(o1730sub)) → 2496_0_getTail_Load(EOS(STATIC_2496), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(o1730sub), java.lang.Object(o1730sub))
2496_0_getTail_Load(EOS(STATIC_2496), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(o1730sub), java.lang.Object(o1730sub)) → 2499_0_getTail_FieldAccess(EOS(STATIC_2499), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(o1730sub), java.lang.Object(o1730sub))
2499_0_getTail_FieldAccess(EOS(STATIC_2499), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(o1730sub), java.lang.Object(o1730sub)) → 2501_0_getTail_FieldAccess(EOS(STATIC_2501), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(o1730sub), java.lang.Object(o1730sub))
2499_0_getTail_FieldAccess(EOS(STATIC_2499), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(o1730sub))), java.lang.Object(o1730sub), java.lang.Object(o1730sub)) → 2502_0_getTail_FieldAccess(EOS(STATIC_2502), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(o1730sub))), java.lang.Object(o1730sub), java.lang.Object(o1730sub))
2501_0_getTail_FieldAccess(EOS(STATIC_2501), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(List(EOC, o1842)), java.lang.Object(List(EOC, o1842))) → 2504_0_getTail_FieldAccess(EOS(STATIC_2504), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(List(EOC, o1842)), java.lang.Object(List(EOC, o1842)))
2504_0_getTail_FieldAccess(EOS(STATIC_2504), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(List(EOC, o1842)), java.lang.Object(List(EOC, o1842))) → 2508_0_getTail_Return(EOS(STATIC_2508), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(List(EOC, o1842)), o1842)
2508_0_getTail_Return(EOS(STATIC_2508), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), java.lang.Object(List(EOC, o1842)), o1842) → 2512_0_main_Store(EOS(STATIC_2512), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), o1842)
2512_0_main_Store(EOS(STATIC_2512), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), o1842) → 2516_0_main_JMP(EOS(STATIC_2516), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), o1842)
2516_0_main_JMP(EOS(STATIC_2516), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), o1842) → 2521_0_main_Load(EOS(STATIC_2521), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), o1842)
2521_0_main_Load(EOS(STATIC_2521), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), o1842) → 2210_0_main_Load(EOS(STATIC_2210), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, o1725)), o1842)
2210_0_main_Load(EOS(STATIC_2210), o1633, o1634, o1635) → 2213_0_main_InvokeMethod(EOS(STATIC_2213), o1633, o1634, o1635, o1633)
2502_0_getTail_FieldAccess(EOS(STATIC_2502), 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))) → 2505_0_getTail_FieldAccess(EOS(STATIC_2505), 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)))
2505_0_getTail_FieldAccess(EOS(STATIC_2505), 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))) → 2511_0_getTail_Return(EOS(STATIC_2511), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), java.lang.Object(List(EOC, o1845)), o1845)
2511_0_getTail_Return(EOS(STATIC_2511), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), java.lang.Object(List(EOC, o1845)), o1845) → 2514_0_main_Store(EOS(STATIC_2514), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845)
2514_0_main_Store(EOS(STATIC_2514), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845) → 2518_0_main_JMP(EOS(STATIC_2518), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845)
2518_0_main_JMP(EOS(STATIC_2518), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845) → 2523_0_main_Load(EOS(STATIC_2523), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845)
2523_0_main_Load(EOS(STATIC_2523), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845) → 2210_0_main_Load(EOS(STATIC_2210), java.lang.Object(List(EOC, o1688)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1845)))), o1845)
2346_0_main_LE(EOS(STATIC_2346), o1688, o1725, o1724, i301, i331) → 2352_0_main_Load(EOS(STATIC_2352), o1688, o1725, o1724) | >(i301, i331)
2352_0_main_Load(EOS(STATIC_2352), o1688, o1725, o1724) → 2357_0_main_InvokeMethod(EOS(STATIC_2357), o1688, o1724, o1725)
2357_0_main_InvokeMethod(EOS(STATIC_2357), o1688, o1724, java.lang.Object(o1731sub)) → 2363_0_main_InvokeMethod(EOS(STATIC_2363), o1688, o1724, java.lang.Object(o1731sub))
2363_0_main_InvokeMethod(EOS(STATIC_2363), o1688, o1724, java.lang.Object(o1731sub)) → 2369_0_getTail_Load(EOS(STATIC_2369), o1688, o1724, java.lang.Object(o1731sub), java.lang.Object(o1731sub))
2369_0_getTail_Load(EOS(STATIC_2369), o1688, o1724, java.lang.Object(o1731sub), java.lang.Object(o1731sub)) → 2384_0_getTail_FieldAccess(EOS(STATIC_2384), o1688, o1724, java.lang.Object(o1731sub), java.lang.Object(o1731sub))
2384_0_getTail_FieldAccess(EOS(STATIC_2384), o1688, o1724, java.lang.Object(o1731sub), java.lang.Object(o1731sub)) → 2388_0_getTail_FieldAccess(EOS(STATIC_2388), o1688, o1724, java.lang.Object(o1731sub), java.lang.Object(o1731sub))
2384_0_getTail_FieldAccess(EOS(STATIC_2384), o1688, java.lang.Object(o1731sub), java.lang.Object(o1731sub), java.lang.Object(o1731sub)) → 2389_0_getTail_FieldAccess(EOS(STATIC_2389), o1688, java.lang.Object(o1731sub), java.lang.Object(o1731sub), java.lang.Object(o1731sub))
2388_0_getTail_FieldAccess(EOS(STATIC_2388), o1688, o1724, java.lang.Object(List(EOC, o1746)), java.lang.Object(List(EOC, o1746))) → 2396_0_getTail_FieldAccess(EOS(STATIC_2396), o1688, o1724, java.lang.Object(List(EOC, o1746)), java.lang.Object(List(EOC, o1746)))
2396_0_getTail_FieldAccess(EOS(STATIC_2396), o1688, o1724, java.lang.Object(List(EOC, o1746)), java.lang.Object(List(EOC, o1746))) → 2404_0_getTail_Return(EOS(STATIC_2404), o1688, o1724, java.lang.Object(List(EOC, o1746)), o1746)
2404_0_getTail_Return(EOS(STATIC_2404), o1688, o1724, java.lang.Object(List(EOC, o1746)), o1746) → 2408_0_main_Store(EOS(STATIC_2408), o1688, o1724, o1746)
2408_0_main_Store(EOS(STATIC_2408), o1688, o1724, o1746) → 2414_0_main_JMP(EOS(STATIC_2414), o1688, o1746, o1724)
2414_0_main_JMP(EOS(STATIC_2414), o1688, o1746, o1724) → 2420_0_main_Load(EOS(STATIC_2420), o1688, o1746, o1724)
2389_0_getTail_FieldAccess(EOS(STATIC_2389), o1688, java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749))) → 2397_0_getTail_FieldAccess(EOS(STATIC_2397), o1688, java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)))
2397_0_getTail_FieldAccess(EOS(STATIC_2397), o1688, java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749))) → 2406_0_getTail_Return(EOS(STATIC_2406), o1688, java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)), o1749)
2406_0_getTail_Return(EOS(STATIC_2406), o1688, java.lang.Object(List(EOC, o1749)), java.lang.Object(List(EOC, o1749)), o1749) → 2409_0_main_Store(EOS(STATIC_2409), o1688, java.lang.Object(List(EOC, o1749)), o1749)
2409_0_main_Store(EOS(STATIC_2409), o1688, java.lang.Object(List(EOC, o1749)), o1749) → 2415_0_main_JMP(EOS(STATIC_2415), o1688, o1749, java.lang.Object(List(EOC, o1749)))
2415_0_main_JMP(EOS(STATIC_2415), o1688, o1749, java.lang.Object(List(EOC, o1749))) → 2421_0_main_Load(EOS(STATIC_2421), o1688, o1749, java.lang.Object(List(EOC, o1749)))
2280_0_main_NE(EOS(STATIC_2280), o1688, o1679, o1678, matching1, matching2) → 2282_0_main_Load(EOS(STATIC_2282), o1688, o1679, o1678) | &&(=(matching1, 1), =(matching2, 1))
2282_0_main_Load(EOS(STATIC_2282), o1688, o1679, o1678) → 2285_0_main_InvokeMethod(EOS(STATIC_2285), o1679, o1678, o1688)
2285_0_main_InvokeMethod(EOS(STATIC_2285), o1679, o1678, java.lang.Object(o1691sub)) → 2288_0_main_InvokeMethod(EOS(STATIC_2288), o1679, o1678, java.lang.Object(o1691sub))
2288_0_main_InvokeMethod(EOS(STATIC_2288), o1679, o1678, java.lang.Object(o1691sub)) → 2292_0_getTail_Load(EOS(STATIC_2292), o1679, o1678, java.lang.Object(o1691sub), java.lang.Object(o1691sub))
2292_0_getTail_Load(EOS(STATIC_2292), o1679, o1678, java.lang.Object(o1691sub), java.lang.Object(o1691sub)) → 2298_0_getTail_FieldAccess(EOS(STATIC_2298), o1679, o1678, java.lang.Object(o1691sub), java.lang.Object(o1691sub))
2298_0_getTail_FieldAccess(EOS(STATIC_2298), o1679, o1678, java.lang.Object(List(EOC, o1702)), java.lang.Object(List(EOC, o1702))) → 2302_0_getTail_FieldAccess(EOS(STATIC_2302), o1679, o1678, java.lang.Object(List(EOC, o1702)), java.lang.Object(List(EOC, o1702)))
2302_0_getTail_FieldAccess(EOS(STATIC_2302), o1679, o1678, java.lang.Object(List(EOC, o1702)), java.lang.Object(List(EOC, o1702))) → 2308_0_getTail_Return(EOS(STATIC_2308), o1679, o1678, java.lang.Object(List(EOC, o1702)), o1702)
2308_0_getTail_Return(EOS(STATIC_2308), o1679, o1678, java.lang.Object(List(EOC, o1702)), o1702) → 2312_0_main_Store(EOS(STATIC_2312), o1679, o1678, o1702)
2312_0_main_Store(EOS(STATIC_2312), o1679, o1678, o1702) → 2315_0_main_JMP(EOS(STATIC_2315), o1702, o1679, o1678)
2315_0_main_JMP(EOS(STATIC_2315), o1702, o1679, o1678) → 2320_0_main_Load(EOS(STATIC_2320), o1702, o1679, o1678)
R rules:
2215_0_length_ConstantStackPush(EOS(STATIC_2215), o1633) → 2216_0_length_ConstantStackPush(EOS(STATIC_2216), o1633)
2216_0_length_ConstantStackPush(EOS(STATIC_2216), o1633) → 2218_0_length_ConstantStackPush(EOS(STATIC_2218), o1633)
2218_0_length_ConstantStackPush(EOS(STATIC_2218), o1633) → 1671_0_length_ConstantStackPush(EOS(STATIC_1671), o1633)
2225_0_length_ConstantStackPush(EOS(STATIC_2225), o1634) → 2226_0_length_ConstantStackPush(EOS(STATIC_2226), o1634)
2226_0_length_ConstantStackPush(EOS(STATIC_2226), o1634) → 2228_0_length_ConstantStackPush(EOS(STATIC_2228), o1634)
2228_0_length_ConstantStackPush(EOS(STATIC_2228), o1634) → 2230_0_length_ConstantStackPush(EOS(STATIC_2230), o1634)
2230_0_length_ConstantStackPush(EOS(STATIC_2230), o1634) → 1671_0_length_ConstantStackPush(EOS(STATIC_1671), o1634)
2240_0_length_ConstantStackPush(EOS(STATIC_2240), o1667) → 2241_0_length_ConstantStackPush(EOS(STATIC_2241), o1667)
2241_0_length_ConstantStackPush(EOS(STATIC_2241), o1667) → 2243_0_length_ConstantStackPush(EOS(STATIC_2243), o1667)
2243_0_length_ConstantStackPush(EOS(STATIC_2243), o1667) → 2245_0_length_ConstantStackPush(EOS(STATIC_2245), o1667)
2245_0_length_ConstantStackPush(EOS(STATIC_2245), o1667) → 1671_0_length_ConstantStackPush(EOS(STATIC_1671), o1667)
2264_0_length_ConstantStackPush(EOS(STATIC_2264), o1655) → 2265_0_length_ConstantStackPush(EOS(STATIC_2265), o1655)
2265_0_length_ConstantStackPush(EOS(STATIC_2265), o1655) → 2267_0_length_ConstantStackPush(EOS(STATIC_2267), o1655)
2267_0_length_ConstantStackPush(EOS(STATIC_2267), o1655) → 1671_0_length_ConstantStackPush(EOS(STATIC_1671), o1655)
2286_0_length_ConstantStackPush(EOS(STATIC_2286), o1679) → 2290_0_length_ConstantStackPush(EOS(STATIC_2290), o1679)
2290_0_length_ConstantStackPush(EOS(STATIC_2290), o1679) → 2297_0_length_ConstantStackPush(EOS(STATIC_2297), o1679)
2297_0_length_ConstantStackPush(EOS(STATIC_2297), o1679) → 2300_0_length_ConstantStackPush(EOS(STATIC_2300), o1679)
2300_0_length_ConstantStackPush(EOS(STATIC_2300), o1679) → 1671_0_length_ConstantStackPush(EOS(STATIC_1671), o1679)
2323_0_length_ConstantStackPush(EOS(STATIC_2323), o1709) → 2324_0_length_ConstantStackPush(EOS(STATIC_2324), o1709)
2324_0_length_ConstantStackPush(EOS(STATIC_2324), o1709) → 2329_0_length_ConstantStackPush(EOS(STATIC_2329), o1709)
2329_0_length_ConstantStackPush(EOS(STATIC_2329), o1709) → 2332_0_length_ConstantStackPush(EOS(STATIC_2332), o1709)
2332_0_length_ConstantStackPush(EOS(STATIC_2332), o1709) → 1671_0_length_ConstantStackPush(EOS(STATIC_1671), o1709)
1671_0_length_ConstantStackPush(EOS(STATIC_1671), o1030) → 1673_0_length_Store(EOS(STATIC_1673), o1030, 0)
1673_0_length_Store(EOS(STATIC_1673), o1030, matching1) → 1674_0_length_Load(EOS(STATIC_1674), o1030, 0) | =(matching1, 0)
2043_0_length_Load(EOS(STATIC_2043), o1469, i301) → 2047_0_length_NULL(EOS(STATIC_2047), o1469, i301, o1469)
2047_0_length_NULL(EOS(STATIC_2047), java.lang.Object(o1486sub), i301, java.lang.Object(o1486sub)) → 2051_0_length_NULL(EOS(STATIC_2051), java.lang.Object(o1486sub), i301, java.lang.Object(o1486sub))
2047_0_length_NULL(EOS(STATIC_2047), NULL, i301, NULL) → 2052_0_length_NULL(EOS(STATIC_2052), NULL, i301, NULL)
2051_0_length_NULL(EOS(STATIC_2051), java.lang.Object(o1486sub), i301, java.lang.Object(o1486sub)) → 2053_0_length_Load(EOS(STATIC_2053), java.lang.Object(o1486sub), i301)
2052_0_length_NULL(EOS(STATIC_2052), NULL, i301, NULL) → 2054_0_length_Load(EOS(STATIC_2054), i301)
2053_0_length_Load(EOS(STATIC_2053), java.lang.Object(o1486sub), i301) → 2057_0_length_InvokeMethod(EOS(STATIC_2057), i301, java.lang.Object(o1486sub))
2057_0_length_InvokeMethod(EOS(STATIC_2057), i301, java.lang.Object(o1486sub)) → 2059_0_getTail_Load(EOS(STATIC_2059), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2059_0_getTail_Load(EOS(STATIC_2059), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2067_0_getTail_FieldAccess(EOS(STATIC_2067), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2067_0_getTail_FieldAccess(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))
2067_0_getTail_FieldAccess(EOS(STATIC_2067), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2077_0_getTail_FieldAccess(EOS(STATIC_2077), 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)) → 2081_0_getTail_FieldAccess(EOS(STATIC_2081), 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)) → 2082_0_getTail_FieldAccess(EOS(STATIC_2082), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2077_0_getTail_FieldAccess(EOS(STATIC_2077), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub)) → 2083_0_getTail_FieldAccess(EOS(STATIC_2083), i301, java.lang.Object(o1486sub), java.lang.Object(o1486sub))
2077_0_getTail_FieldAccess(EOS(STATIC_2077), 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))
2081_0_getTail_FieldAccess(EOS(STATIC_2081), i301, java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505))) → 2088_0_getTail_FieldAccess(EOS(STATIC_2088), i301, java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505)))
2082_0_getTail_FieldAccess(EOS(STATIC_2082), i301, java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508))) → 2089_0_getTail_FieldAccess(EOS(STATIC_2089), i301, java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508)))
2083_0_getTail_FieldAccess(EOS(STATIC_2083), i301, java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511))) → 2091_0_getTail_FieldAccess(EOS(STATIC_2091), i301, java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511)))
2084_0_getTail_FieldAccess(EOS(STATIC_2084), i301, java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514))) → 2092_0_getTail_FieldAccess(EOS(STATIC_2092), i301, java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514)))
2088_0_getTail_FieldAccess(EOS(STATIC_2088), i301, java.lang.Object(List(EOC, o1505)), java.lang.Object(List(EOC, o1505))) → 2095_0_getTail_Return(EOS(STATIC_2095), i301, java.lang.Object(List(EOC, o1505)), o1505)
2089_0_getTail_FieldAccess(EOS(STATIC_2089), i301, java.lang.Object(List(EOC, o1508)), java.lang.Object(List(EOC, o1508))) → 2097_0_getTail_Return(EOS(STATIC_2097), i301, java.lang.Object(List(EOC, o1508)), o1508)
2091_0_getTail_FieldAccess(EOS(STATIC_2091), i301, java.lang.Object(List(EOC, o1511)), java.lang.Object(List(EOC, o1511))) → 2099_0_getTail_Return(EOS(STATIC_2099), i301, java.lang.Object(List(EOC, o1511)), o1511)
2092_0_getTail_FieldAccess(EOS(STATIC_2092), i301, java.lang.Object(List(EOC, o1514)), java.lang.Object(List(EOC, o1514))) → 2102_0_getTail_Return(EOS(STATIC_2102), i301, java.lang.Object(List(EOC, o1514)), o1514)
2095_0_getTail_Return(EOS(STATIC_2095), i301, java.lang.Object(List(EOC, o1505)), o1505) → 2106_0_length_Store(EOS(STATIC_2106), i301, o1505)
2097_0_getTail_Return(EOS(STATIC_2097), i301, java.lang.Object(List(EOC, o1508)), o1508) → 2107_0_length_Store(EOS(STATIC_2107), i301, o1508)
2099_0_getTail_Return(EOS(STATIC_2099), i301, java.lang.Object(List(EOC, o1511)), o1511) → 2110_0_length_Store(EOS(STATIC_2110), i301, o1511)
2102_0_getTail_Return(EOS(STATIC_2102), i301, java.lang.Object(List(EOC, o1514)), o1514) → 2112_0_length_Store(EOS(STATIC_2112), i301, o1514)
2106_0_length_Store(EOS(STATIC_2106), i301, o1505) → 2116_0_length_Inc(EOS(STATIC_2116), o1505, i301)
2107_0_length_Store(EOS(STATIC_2107), i301, o1508) → 2118_0_length_Inc(EOS(STATIC_2118), o1508, i301)
2110_0_length_Store(EOS(STATIC_2110), i301, o1511) → 2120_0_length_Inc(EOS(STATIC_2120), o1511, i301)
2112_0_length_Store(EOS(STATIC_2112), i301, o1514) → 2123_0_length_Inc(EOS(STATIC_2123), o1514, i301)
2116_0_length_Inc(EOS(STATIC_2116), o1505, i301) → 2127_0_length_JMP(EOS(STATIC_2127), o1505, +(i301, 1)) | >=(i301, 0)
2118_0_length_Inc(EOS(STATIC_2118), o1508, i301) → 2128_0_length_JMP(EOS(STATIC_2128), o1508, +(i301, 1)) | >=(i301, 0)
2120_0_length_Inc(EOS(STATIC_2120), o1511, i301) → 2131_0_length_JMP(EOS(STATIC_2131), o1511, +(i301, 1)) | >=(i301, 0)
2123_0_length_Inc(EOS(STATIC_2123), o1514, i301) → 2133_0_length_JMP(EOS(STATIC_2133), o1514, +(i301, 1)) | >=(i301, 0)
2127_0_length_JMP(EOS(STATIC_2127), o1505, i309) → 2139_0_length_Load(EOS(STATIC_2139), o1505, i309)
2128_0_length_JMP(EOS(STATIC_2128), o1508, i310) → 2141_0_length_Load(EOS(STATIC_2141), o1508, i310)
2131_0_length_JMP(EOS(STATIC_2131), o1511, i311) → 2144_0_length_Load(EOS(STATIC_2144), o1511, i311)
2133_0_length_JMP(EOS(STATIC_2133), o1514, i314) → 2146_0_length_Load(EOS(STATIC_2146), o1514, i314)

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

P rules:
2215_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), x0), x1, x2, x3, x1) → 2225_1_main_InvokeMethod(2225_0_length_ConstantStackPush(EOS(STATIC_2225), x2), x1, x2, x3, x0, x2)
2225_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), x0), x1, x2, x3, x4, x2) → 2240_1_main_InvokeMethod(2240_0_length_ConstantStackPush(EOS(STATIC_2240), x3), x1, x2, x3, +(x4, x0), x3) | &&(>(+(x4, 1), 0), >(+(x0, 1), 0))
2240_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), x0), x1, x2, x3, x4, x3) → 2264_1_main_InvokeMethod(2264_0_length_ConstantStackPush(EOS(STATIC_2264), x1), x1, x2, x3, x1) | &&(&&(>(+(x4, 1), 0), <=(0, *(x0, 5))), <(0, +(x4, *(x0, 5))))
2264_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), x0), x1, x2, x3, x1) → 2286_1_main_InvokeMethod(2286_0_length_ConstantStackPush(EOS(STATIC_2286), x2), x1, x2, x3, x2) | =(0, %(x0, 2))
2286_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), x0), x1, x2, x3, x2) → 2323_1_main_InvokeMethod(2323_0_length_ConstantStackPush(EOS(STATIC_2323), x3), x1, x2, x3, x0, x3)
2323_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), x0), x1, x2, java.lang.Object(List(EOC, x3)), x4, java.lang.Object(List(EOC, x3))) → 2215_1_main_InvokeMethod(2215_0_length_ConstantStackPush(EOS(STATIC_2215), 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)
2323_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), x0), x1, java.lang.Object(List(EOC, x2)), java.lang.Object(List(EOC, x2)), x3, java.lang.Object(List(EOC, x2))) → 2215_1_main_InvokeMethod(2215_0_length_ConstantStackPush(EOS(STATIC_2215), 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)
2323_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), x0), x1, java.lang.Object(List(EOC, x2)), x3, x4, x3) → 2215_1_main_InvokeMethod(2215_0_length_ConstantStackPush(EOS(STATIC_2215), x1), x1, x2, x3, x1) | >(x4, x0)
2323_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), x0), x1, java.lang.Object(List(EOC, x2)), java.lang.Object(List(EOC, x2)), x3, java.lang.Object(List(EOC, x2))) → 2215_1_main_InvokeMethod(2215_0_length_ConstantStackPush(EOS(STATIC_2215), x1), x1, x2, java.lang.Object(List(EOC, x2)), x1) | >(x3, x0)
2264_1_main_InvokeMethod(2058_0_length_Return(EOS(STATIC_2058), x0), java.lang.Object(List(EOC, x1)), x2, x3, java.lang.Object(List(EOC, x1))) → 2215_1_main_InvokeMethod(2215_0_length_ConstantStackPush(EOS(STATIC_2215), x1), x1, x2, x3, x1) | =(1, %(x0, 2))
R rules:
2215_0_length_ConstantStackPush(EOS(STATIC_2215), x0) → 2047_0_length_NULL(EOS(STATIC_2047), x0, 0, x0)
2225_0_length_ConstantStackPush(EOS(STATIC_2225), x0) → 2047_0_length_NULL(EOS(STATIC_2047), x0, 0, x0)
2240_0_length_ConstantStackPush(EOS(STATIC_2240), x0) → 2047_0_length_NULL(EOS(STATIC_2047), x0, 0, x0)
2264_0_length_ConstantStackPush(EOS(STATIC_2264), x0) → 2047_0_length_NULL(EOS(STATIC_2047), x0, 0, x0)
2286_0_length_ConstantStackPush(EOS(STATIC_2286), x0) → 2047_0_length_NULL(EOS(STATIC_2047), x0, 0, x0)
2323_0_length_ConstantStackPush(EOS(STATIC_2323), x0) → 2047_0_length_NULL(EOS(STATIC_2047), x0, 0, x0)
2047_0_length_NULL(EOS(STATIC_2047), NULL, x0, NULL) → 2058_0_length_Return(EOS(STATIC_2058), x0)
2047_0_length_NULL(EOS(STATIC_2047), java.lang.Object(List(EOC, x0)), x1, java.lang.Object(List(EOC, x0))) → 2047_0_length_NULL(EOS(STATIC_2047), x0, +(x1, 1), x0) | >(+(x1, 1), 0)

Filtered ground terms:

2215_0_length_ConstantStackPush(x1, x2) → 2215_0_length_ConstantStackPush(x2)
List(x1, x2) → List(x2)
2058_0_length_Return(x1, x2) → 2058_0_length_Return(x2)
2323_0_length_ConstantStackPush(x1, x2) → 2323_0_length_ConstantStackPush(x2)
2286_0_length_ConstantStackPush(x1, x2) → 2286_0_length_ConstantStackPush(x2)
2264_0_length_ConstantStackPush(x1, x2) → 2264_0_length_ConstantStackPush(x2)
2240_0_length_ConstantStackPush(x1, x2) → 2240_0_length_ConstantStackPush(x2)
2225_0_length_ConstantStackPush(x1, x2) → 2225_0_length_ConstantStackPush(x2)
2047_0_length_NULL(x1, x2, x3, x4) → 2047_0_length_NULL(x2, x3, x4)
Cond_2047_0_length_NULL(x1, x2, x3, x4, x5) → Cond_2047_0_length_NULL(x1, x3, x4, x5)

Filtered duplicate args:

2215_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 2215_1_main_InvokeMethod(x1, x3, x4, x5)
2225_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 2225_1_main_InvokeMethod(x1, x2, x4, x5, x6)
Cond_2225_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_2225_1_main_InvokeMethod(x1, x2, x3, x5, x6, x7)
2240_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 2240_1_main_InvokeMethod(x1, x2, x3, x5, x6)
Cond_2240_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_2240_1_main_InvokeMethod(x1, x2, x3, x4, x6, x7)
2264_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 2264_1_main_InvokeMethod(x1, x3, x4, x5)
Cond_2264_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_2264_1_main_InvokeMethod(x1, x2, x4, x5, x6)
2286_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 2286_1_main_InvokeMethod(x1, x2, x4, x5)
2323_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 2323_1_main_InvokeMethod(x1, x2, x3, x5, x6)
Cond_2323_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_2323_1_main_InvokeMethod(x1, x2, x3, x4, x6, x7)
Cond_2323_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7) → Cond_2323_1_main_InvokeMethod1(x1, x2, x3, x6, x7)
Cond_2323_1_main_InvokeMethod2(x1, x2, x3, x4, x5, x6, x7) → Cond_2323_1_main_InvokeMethod2(x1, x2, x3, x4, x6, x7)
Cond_2323_1_main_InvokeMethod3(x1, x2, x3, x4, x5, x6, x7) → Cond_2323_1_main_InvokeMethod3(x1, x2, x3, x6, x7)
Cond_2264_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6) → Cond_2264_1_main_InvokeMethod1(x1, x2, x4, x5, x6)
2047_0_length_NULL(x1, x2, x3) → 2047_0_length_NULL(x2, x3)
Cond_2047_0_length_NULL(x1, x2, x3, x4) → Cond_2047_0_length_NULL(x1, x3, x4)

Filtered unneeded arguments:

Cond_2240_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_2240_1_main_InvokeMethod(x1, x3, x4, x6)
Cond_2264_1_main_InvokeMethod(x1, x2, x3, x4, x5) → Cond_2264_1_main_InvokeMethod(x1, x3, x4, x5)
Cond_2323_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_2323_1_main_InvokeMethod(x1, x3, x4, x6)
Cond_2323_1_main_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_2323_1_main_InvokeMethod1(x1, x3, x5)
Cond_2323_1_main_InvokeMethod2(x1, x2, x3, x4, x5, x6) → Cond_2323_1_main_InvokeMethod2(x1, x3, x4, x6)
Cond_2323_1_main_InvokeMethod3(x1, x2, x3, x4, x5) → Cond_2323_1_main_InvokeMethod3(x1, x3, x5)
Cond_2264_1_main_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_2264_1_main_InvokeMethod1(x1, x3, x4, x5)

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

P rules:
2215_1_main_InvokeMethod(2058_0_length_Return(x0), x2, x3, x1) → 2225_1_main_InvokeMethod(2225_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
2225_1_main_InvokeMethod(2058_0_length_Return(x0), x1, x3, x4, x2) → 2240_1_main_InvokeMethod(2240_0_length_ConstantStackPush(x3), x1, x2, +(x4, x0), x3) | &&(>(x4, -1), >(x0, -1))
2240_1_main_InvokeMethod(2058_0_length_Return(x0), x1, x2, x4, x3) → 2264_1_main_InvokeMethod(2264_0_length_ConstantStackPush(x1), x2, x3, x1) | &&(&&(>(x4, -1), <=(0, *(x0, 5))), <(0, +(x4, *(x0, 5))))
2264_1_main_InvokeMethod(2058_0_length_Return(x0), x2, x3, x1) → 2286_1_main_InvokeMethod(2286_0_length_ConstantStackPush(x2), x1, x3, x2) | =(0, %(x0, 2))
2286_1_main_InvokeMethod(2058_0_length_Return(x0), x1, x3, x2) → 2323_1_main_InvokeMethod(2323_0_length_ConstantStackPush(x3), x1, x2, x0, x3)
2323_1_main_InvokeMethod(2058_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → 2215_1_main_InvokeMethod(2215_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(x2)), x3, java.lang.Object(List(x1))) | <=(x4, x0)
2323_1_main_InvokeMethod(2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2215_1_main_InvokeMethod(2215_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)
2323_1_main_InvokeMethod(2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → 2215_1_main_InvokeMethod(2215_0_length_ConstantStackPush(x1), x2, x3, x1) | >(x4, x0)
2323_1_main_InvokeMethod(2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2215_1_main_InvokeMethod(2215_0_length_ConstantStackPush(x1), x2, java.lang.Object(List(x2)), x1) | >(x3, x0)
2264_1_main_InvokeMethod(2058_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → 2215_1_main_InvokeMethod(2215_0_length_ConstantStackPush(x1), x2, x3, x1) | =(1, %(x0, 2))
R rules:
2215_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2225_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2240_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2264_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2286_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2323_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2047_0_length_NULL(x0, NULL) → 2058_0_length_Return(x0)
2047_0_length_NULL(x1, java.lang.Object(List(x0))) → 2047_0_length_NULL(+(x1, 1), x0) | >(x1, -1)

Performed bisimulation on rules. Used the following equivalence classes: {[2225_0_length_ConstantStackPush_1, 2240_0_length_ConstantStackPush_1, 2264_0_length_ConstantStackPush_1, 2286_0_length_ConstantStackPush_1, 2323_0_length_ConstantStackPush_1]=2225_0_length_ConstantStackPush_1}

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

P rules:
2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x2, x3, x1) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, x3, x4, x2) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4, -1), >(x0, -1)), 2058_0_length_Return(x0), x1, x3, x4, x2)
COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0), x1, x3, x4, x2) → 2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3), x1, x2, +(x4, x0), x3)
2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, x2, x4, x3) → COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4, -1), <=(0, *(x0, 5))), <(0, +(x4, *(x0, 5)))), 2058_0_length_Return(x0), x1, x2, x4, x3)
COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0), x1, x2, x4, x3) → 2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1), x2, x3, x1)
2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x2, x3, x1) → COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0, 2)), 2058_0_length_Return(x0), x2, x3, x1)
COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0), x2, x3, x1) → 2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2), x1, x3, x2)
2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, x3, x2) → 2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3), x1, x2, x0, x3)
2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → COND_2323_1_MAIN_INVOKEMETHOD(<=(x4, x0), 2058_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3)))
COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(x2)), x3, java.lang.Object(List(x1)))
2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3, x0), 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2)))
COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x1))), java.lang.Object(List(java.lang.Object(List(x2)))), x2, java.lang.Object(List(x1)))
2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → COND_2323_1_MAIN_INVOKEMETHOD2(>(x4, x0), 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3)
COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1), x2, x3, x1)
2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2323_1_MAIN_INVOKEMETHOD3(>(x3, x0), 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2)))
COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1), x2, java.lang.Object(List(x2)), x1)
2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → COND_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0, 2)), 2058_0_length_Return(x0), x2, x3, java.lang.Object(List(x1)))
COND_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1), x2, x3, x1)
R rules:
2215_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2225_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2047_0_length_NULL(x0, NULL) → 2058_0_length_Return(x0)
2047_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2047_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))
Cond_2047_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2047_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:
2215_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2225_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2047_0_length_NULL(x0, NULL) → 2058_0_length_Return(x0)
2047_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2047_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_2047_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2047_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(0): 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
(1): 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(x4[1] > -1 && x0[1] > -1, 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(2): COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(3): 2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2240_1_MAIN_INVOKEMETHOD(x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(4): COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(5): 2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2264_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(6): COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(7): 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(8): 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2323_1_MAIN_INVOKEMETHOD(x4[8] <= x0[8], 2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
(9): COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
(10): 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2323_1_MAIN_INVOKEMETHOD1(x3[10] <= x0[10], 2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))
(11): COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2215_1_MAIN_INVOKEMETHOD(2215_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): 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]) → COND_2323_1_MAIN_INVOKEMETHOD2(x4[12] > x0[12], 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])
(13): COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
(14): 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2323_1_MAIN_INVOKEMETHOD3(x3[14] > x0[14], 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))
(15): COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])
(16): 2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2264_1_MAIN_INVOKEMETHOD1(1 = x0[16] % 2, 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
(17): COND_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])

(0) -> (1), if (2225_0_length_ConstantStackPush(x2[0]) →* 2058_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] > -12058_0_length_Return(x0[1]) →* 2058_0_length_Return(x0[2])∧x1[1]* x1[2]x3[1]* x3[2]x4[1]* x4[2]x2[1]* x2[2])

(2) -> (3), if (2225_0_length_ConstantStackPush(x3[2]) →* 2058_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] * 52058_0_length_Return(x0[3]) →* 2058_0_length_Return(x0[4])∧x1[3]* x1[4]x2[3]* x2[4]x4[3]* x4[4]x3[3]* x3[4])

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

(4) -> (16), if (2225_0_length_ConstantStackPush(x1[4]) →* 2058_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] % 22058_0_length_Return(x0[5]) →* 2058_0_length_Return(x0[6])∧x2[5]* x2[6]x3[5]* x3[6]x1[5]* x1[6])

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

(7) -> (8), if (2225_0_length_ConstantStackPush(x3[7]) →* 2058_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 (2225_0_length_ConstantStackPush(x3[7]) →* 2058_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 (2225_0_length_ConstantStackPush(x3[7]) →* 2058_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 (2225_0_length_ConstantStackPush(x3[7]) →* 2058_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]2058_0_length_Return(x0[8]) →* 2058_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 (2215_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))) →* 2058_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]2058_0_length_Return(x0[10]) →* 2058_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 (2215_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))) →* 2058_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]2058_0_length_Return(x0[12]) →* 2058_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 (2215_0_length_ConstantStackPush(x1[13]) →* 2058_0_length_Return(x0[0])∧x2[13]* x2[0]x3[13]* x3[0]x1[13]* x1[0])

(14) -> (15), if (x3[14] > x0[14]2058_0_length_Return(x0[14]) →* 2058_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 (2215_0_length_ConstantStackPush(x1[15]) →* 2058_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] % 22058_0_length_Return(x0[16]) →* 2058_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 (2215_0_length_ConstantStackPush(x1[17]) →* 2058_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:
2215_0_length_ConstantStackPush(x0)
2225_0_length_ConstantStackPush(x0)
2047_0_length_NULL(x0, NULL)
2047_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_2047_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@2cc04980 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 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x2, x3, x1) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2), x1, x3, x0, x2) the following chains were created:
• We consider the chain COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(1)    (2215_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=2058_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]2225_0_length_ConstantStackPush(x2[0])=2058_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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=x02047_0_length_NULL(x0, x1[9])=2058_0_length_Return(x0[0])∧1=x12047_0_length_NULL(x1, x2[9])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x0, x1[9])=2058_0_length_Return(x0[0]) which results in the following new constraints:

(3)    (2058_0_length_Return(x2)=2058_0_length_Return(x0[0])∧1=x21=x12047_0_length_NULL(x1, x2[9])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(4)    (Cond_2047_0_length_NULL(>(x4, -1), x4, java.lang.Object(List(x3)))=2058_0_length_Return(x0[0])∧1=x41=x12047_0_length_NULL(x1, x2[9])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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=x12047_0_length_NULL(x1, x2[9])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(x2[9])))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(x10, x4, x11)=2058_0_length_Return(x0[0])∧1=x41=x12047_0_length_NULL(x1, x2[9])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x1, x2[9])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(7)    (2058_0_length_Return(x5)=2058_0_length_Return(x0[1])∧1=x52215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(8)    (Cond_2047_0_length_NULL(>(x7, -1), x7, java.lang.Object(List(x6)))=2058_0_length_Return(x0[1])∧1=x72215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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)    (2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x6)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x6)))), x3[9], java.lang.Object(List(NULL)))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x1, x2[9])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(12)    (2058_0_length_Return(x12)=2058_0_length_Return(x0[1])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_2047_0_length_NULL(x10, x4, x11)=2058_0_length_Return(x0[0])∧1=x41=x122215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(13)    (Cond_2047_0_length_NULL(>(x14, -1), x14, java.lang.Object(List(x13)))=2058_0_length_Return(x0[1])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_2047_0_length_NULL(x10, x4, x11)=2058_0_length_Return(x0[0])∧1=x41=x142215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_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)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x3)))=2058_0_length_Return(x0[0]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x3)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x3)))=2058_0_length_Return(x0[0])∧Cond_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x13)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_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)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2215_1_MAIN_INVOKEMETHOD(2215_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]))), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(31)    (2215_0_length_ConstantStackPush(java.lang.Object(List(x1[11])))=2058_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]2225_0_length_ConstantStackPush(x2[0])=2058_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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=x172047_0_length_NULL(x17, x1[11])=2058_0_length_Return(x0[0])∧2=x182047_0_length_NULL(x18, x2[11])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x17, x1[11])=2058_0_length_Return(x0[0]) which results in the following new constraints:

(33)    (2058_0_length_Return(x19)=2058_0_length_Return(x0[0])∧1=x192=x182047_0_length_NULL(x18, x2[11])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(34)    (Cond_2047_0_length_NULL(>(x21, -1), x21, java.lang.Object(List(x20)))=2058_0_length_Return(x0[0])∧1=x212=x182047_0_length_NULL(x18, x2[11])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_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)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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=x182047_0_length_NULL(x18, x2[11])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(x27, x21, x28)=2058_0_length_Return(x0[0])∧1=x212=x182047_0_length_NULL(x18, x2[11])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_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)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x18, x2[11])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(37)    (2058_0_length_Return(x22)=2058_0_length_Return(x0[1])∧2=x222215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(38)    (Cond_2047_0_length_NULL(>(x24, -1), x24, java.lang.Object(List(x23)))=2058_0_length_Return(x0[1])∧2=x242215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_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)))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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)    (2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 2, java.lang.Object(List(x23)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_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)))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x18, x2[11])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(42)    (2058_0_length_Return(x29)=2058_0_length_Return(x0[1])∧>(x21, -1)=x27java.lang.Object(List(x20))=x28Cond_2047_0_length_NULL(x27, x21, x28)=2058_0_length_Return(x0[0])∧1=x212=x292215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(java.lang.Object(List(x20)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(43)    (Cond_2047_0_length_NULL(>(x31, -1), x31, java.lang.Object(List(x30)))=2058_0_length_Return(x0[1])∧>(x21, -1)=x27java.lang.Object(List(x20))=x28Cond_2047_0_length_NULL(x27, x21, x28)=2058_0_length_Return(x0[0])∧1=x212=x312215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_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)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x20)))=2058_0_length_Return(x0[0]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(java.lang.Object(List(x20)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x20)))=2058_0_length_Return(x0[0])∧Cond_2047_0_length_NULL(TRUE, 2, java.lang.Object(List(x30)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_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)))))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(60)    (2215_0_length_ConstantStackPush(x1[13])=2058_0_length_Return(x0[0])∧x2[13]=x2[0]x3[13]=x3[0]x1[13]=x1[0]2225_0_length_ConstantStackPush(x2[0])=2058_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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=x342047_0_length_NULL(x34, x1[13])=2058_0_length_Return(x0[0])∧0=x352047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], x1[13])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], x1[13])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[13], x3[13], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x34, x1[13])=2058_0_length_Return(x0[0]) which results in the following new constraints:

(62)    (2058_0_length_Return(x36)=2058_0_length_Return(x0[0])∧0=x360=x352047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, x3[13], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(63)    (Cond_2047_0_length_NULL(>(x38, -1), x38, java.lang.Object(List(x37)))=2058_0_length_Return(x0[0])∧0=x380=x352047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x37)), x3[13], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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=x352047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, x3[13], 0, x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(x44, x38, x45)=2058_0_length_Return(x0[0])∧0=x380=x352047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x37)), x3[13], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(66)    (2058_0_length_Return(x39)=2058_0_length_Return(x0[1])∧0=x392215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, x3[13], 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(67)    (Cond_2047_0_length_NULL(>(x41, -1), x41, java.lang.Object(List(x40)))=2058_0_length_Return(x0[1])∧0=x412215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x40))), NULL, x3[13], 0, java.lang.Object(List(x40)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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)    (2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, x3[13], 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x40)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x40)), x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x40))), NULL, x3[13], 0, java.lang.Object(List(x40)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(71)    (2058_0_length_Return(x46)=2058_0_length_Return(x0[1])∧>(x38, -1)=x44java.lang.Object(List(x37))=x45Cond_2047_0_length_NULL(x44, x38, x45)=2058_0_length_Return(x0[0])∧0=x380=x462215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x37)), x3[13], x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(72)    (Cond_2047_0_length_NULL(>(x48, -1), x48, java.lang.Object(List(x47)))=2058_0_length_Return(x0[1])∧>(x38, -1)=x44java.lang.Object(List(x37))=x45Cond_2047_0_length_NULL(x44, x38, x45)=2058_0_length_Return(x0[0])∧0=x380=x482215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x47))), java.lang.Object(List(x37)), x3[13], x0[0], java.lang.Object(List(x47)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x37)))=2058_0_length_Return(x0[0]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x37)), x3[13], x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x37)))=2058_0_length_Return(x0[0])∧Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x47)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[13], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x47))), java.lang.Object(List(x37)), x3[13], x0[0], java.lang.Object(List(x47)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15]), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(90)    (2215_0_length_ConstantStackPush(x1[15])=2058_0_length_Return(x0[0])∧x2[15]=x2[0]java.lang.Object(List(x2[15]))=x3[0]x1[15]=x1[0]2225_0_length_ConstantStackPush(x2[0])=2058_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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=x512047_0_length_NULL(x51, x1[15])=2058_0_length_Return(x0[0])∧0=x522047_0_length_NULL(x52, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), x1[15])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), x1[15])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[15], java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x51, x1[15])=2058_0_length_Return(x0[0]) which results in the following new constraints:

(92)    (2058_0_length_Return(x53)=2058_0_length_Return(x0[0])∧0=x530=x522047_0_length_NULL(x52, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(93)    (Cond_2047_0_length_NULL(>(x55, -1), x55, java.lang.Object(List(x54)))=2058_0_length_Return(x0[0])∧0=x550=x522047_0_length_NULL(x52, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x54)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x54)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x54)), java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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=x522047_0_length_NULL(x52, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], java.lang.Object(List(x2[0])), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], java.lang.Object(List(x2[0])), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, java.lang.Object(List(x2[0])), 0, x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(x61, x55, x62)=2058_0_length_Return(x0[0])∧0=x550=x522047_0_length_NULL(x52, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x54)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x54)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x54)), java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x52, x2[0])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(96)    (2058_0_length_Return(x56)=2058_0_length_Return(x0[1])∧0=x562215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(NULL)), 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(97)    (Cond_2047_0_length_NULL(>(x58, -1), x58, java.lang.Object(List(x57)))=2058_0_length_Return(x0[1])∧0=x582215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x57)), java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x57)), java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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)    (2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(NULL)), 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x57)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x57)), java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x57)), java.lang.Object(List(java.lang.Object(List(x57)))), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x52, x2[0])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(101)    (2058_0_length_Return(x63)=2058_0_length_Return(x0[1])∧>(x55, -1)=x61java.lang.Object(List(x54))=x62Cond_2047_0_length_NULL(x61, x55, x62)=2058_0_length_Return(x0[0])∧0=x550=x632215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x54)), java.lang.Object(List(NULL)), x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(102)    (Cond_2047_0_length_NULL(>(x65, -1), x65, java.lang.Object(List(x64)))=2058_0_length_Return(x0[1])∧>(x55, -1)=x61java.lang.Object(List(x54))=x62Cond_2047_0_length_NULL(x61, x55, x62)=2058_0_length_Return(x0[0])∧0=x550=x652215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x64)), java.lang.Object(List(java.lang.Object(List(x64)))), java.lang.Object(List(x54)))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x54)))=2058_0_length_Return(x0[0]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x54)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x54)), java.lang.Object(List(NULL)), x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x54)))=2058_0_length_Return(x0[0])∧Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x64)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_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∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x64)), java.lang.Object(List(java.lang.Object(List(x64)))), java.lang.Object(List(x54)))≥2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(119)    (2215_0_length_ConstantStackPush(x1[17])=2058_0_length_Return(x0[0])∧x2[17]=x2[0]x3[17]=x3[0]x1[17]=x1[0]2225_0_length_ConstantStackPush(x2[0])=2058_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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=x682047_0_length_NULL(x68, x1[17])=2058_0_length_Return(x0[0])∧0=x692047_0_length_NULL(x69, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[17], x3[17], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x68, x1[17])=2058_0_length_Return(x0[0]) which results in the following new constraints:

(121)    (2058_0_length_Return(x70)=2058_0_length_Return(x0[0])∧0=x700=x692047_0_length_NULL(x69, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, x3[17], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(122)    (Cond_2047_0_length_NULL(>(x72, -1), x72, java.lang.Object(List(x71)))=2058_0_length_Return(x0[0])∧0=x720=x692047_0_length_NULL(x69, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x71)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x71)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x71)), x3[17], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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=x692047_0_length_NULL(x69, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, x3[17], 0, x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(x78, x72, x79)=2058_0_length_Return(x0[0])∧0=x720=x692047_0_length_NULL(x69, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x71)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x71)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x71)), x3[17], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x69, x2[0])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(125)    (2058_0_length_Return(x73)=2058_0_length_Return(x0[1])∧0=x732215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(126)    (Cond_2047_0_length_NULL(>(x75, -1), x75, java.lang.Object(List(x74)))=2058_0_length_Return(x0[1])∧0=x752215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x74)), x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x74)), x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x74))), NULL, x3[17], 0, java.lang.Object(List(x74)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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)    (2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x74)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x74)), x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x74)), x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x74))), NULL, x3[17], 0, java.lang.Object(List(x74)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x69, x2[0])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(130)    (2058_0_length_Return(x80)=2058_0_length_Return(x0[1])∧>(x72, -1)=x78java.lang.Object(List(x71))=x79Cond_2047_0_length_NULL(x78, x72, x79)=2058_0_length_Return(x0[0])∧0=x720=x802215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x71)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x71)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x71)), x3[17], x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(131)    (Cond_2047_0_length_NULL(>(x82, -1), x82, java.lang.Object(List(x81)))=2058_0_length_Return(x0[1])∧>(x72, -1)=x78java.lang.Object(List(x71))=x79Cond_2047_0_length_NULL(x78, x72, x79)=2058_0_length_Return(x0[0])∧0=x720=x822215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x81)), x3[17], java.lang.Object(List(x71)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x81)), x3[17], java.lang.Object(List(x71)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x81))), java.lang.Object(List(x71)), x3[17], x0[0], java.lang.Object(List(x81)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x71)))=2058_0_length_Return(x0[0]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x71)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x71)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x71)), x3[17], x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x71)))=2058_0_length_Return(x0[0])∧Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x81)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x81)), x3[17], java.lang.Object(List(x71)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x81)), x3[17], java.lang.Object(List(x71)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x81))), java.lang.Object(List(x71)), x3[17], x0[0], java.lang.Object(List(x81)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, x3, x4, x2) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4, -1), >(x0, -1)), 2058_0_length_Return(x0), x1, x3, x4, x2) the following chains were created:
• We consider the chain 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2240_1_MAIN_INVOKEMETHOD(2225_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))=TRUE2058_0_length_Return(x0[1])=2058_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_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))=TRUE2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_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_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)Bound*bni_108] + [(2)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_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)Bound*bni_108] + [(2)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_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)Bound*bni_108] + [(2)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_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(2)bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)

For Pair COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0), x1, x3, x4, x2) → 2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3), x1, x2, +(x4, x0), x3) the following chains were created:
• We consider the chain 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]), 2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2058_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))=TRUE2058_0_length_Return(x0[1])=2058_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2225_0_length_ConstantStackPush(x3[2])=2058_0_length_Return(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]+(x4[2], x0[2])=x4[3]x3[2]=x3[3]COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥NonInfC∧COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])∧(UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_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))=TRUE2047_0_length_NULL(0, x3[2])=2058_0_length_Return(x0[3]) ⇒ COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥NonInfC∧COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[1], x2[1], +(x4[1], x0[1]), x3[2])∧(UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_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(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)Bound*bni_110] + [(2)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(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)Bound*bni_110] + [(2)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(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)Bound*bni_110] + [(2)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(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(2)bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)

For Pair 2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, x2, x4, x3) → COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4, -1), <=(0, *(x0, 5))), <(0, +(x4, *(x0, 5)))), 2058_0_length_Return(x0), x1, x2, x4, x3) the following chains were created:
• We consider the chain 2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2264_1_MAIN_INVOKEMETHOD(2225_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))))=TRUE2058_0_length_Return(x0[3])=2058_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2058_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))))=TRUE2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2058_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_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)Bound*bni_112] + [(2)bni_112]x3[3] + [(2)bni_112]x4[3] ≥ 0∧[(-1)bso_113] + x4[3] ≥ 0)

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

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

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

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

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

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

For Pair COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0), x1, x2, x4, x3) → 2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1), x2, x3, x1) the following chains were created:
• We consider the chain 2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_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))))=TRUE2058_0_length_Return(x0[3])=2058_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2225_0_length_ConstantStackPush(x1[4])=2058_0_length_Return(x0[5])∧x2[4]=x2[5]x3[4]=x3[5]x1[4]=x1[5]COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_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))))=TRUE2047_0_length_NULL(0, x1[4])=2058_0_length_Return(x0[5]) ⇒ COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥NonInfC∧COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[3], x3[3], x1[4])∧(UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_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(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)Bound*bni_114] + [(2)bni_114]x3[3] + [bni_114]x4[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(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)Bound*bni_114] + [(2)bni_114]x3[3] + [bni_114]x4[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(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)Bound*bni_114] + [(2)bni_114]x3[3] + [bni_114]x4[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(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_114] ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

• We consider the chain 2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2058_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))))=TRUE2058_0_length_Return(x0[3])=2058_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2225_0_length_ConstantStackPush(x1[4])=2058_0_length_Return(x0[16])∧x2[4]=x2[16]x3[4]=x3[16]x1[4]=java.lang.Object(List(x1[16])) ⇒ COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_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))))=TRUE2047_0_length_NULL(1, x1[16])=2058_0_length_Return(x0[16]) ⇒ COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[3]), java.lang.Object(List(x1[16])), x2[3], x4[3], x3[3])≥NonInfC∧COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[3]), java.lang.Object(List(x1[16])), x2[3], x4[3], x3[3])≥2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x1[16]))), x2[3], x3[3], java.lang.Object(List(x1[16])))∧(UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_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(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)Bound*bni_114] + [(2)bni_114]x3[3] + [bni_114]x4[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(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)Bound*bni_114] + [(2)bni_114]x3[3] + [bni_114]x4[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(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)Bound*bni_114] + [(2)bni_114]x3[3] + [bni_114]x4[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(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_114] ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

For Pair 2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x2, x3, x1) → COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0, 2)), 2058_0_length_Return(x0), x2, x3, x1) the following chains were created:
• We consider the chain 2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) which results in the following constraint:

(179)    (=(0, %(x0[5], 2))=TRUE2058_0_length_Return(x0[5])=2058_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_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))=TRUE2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_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_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)Bound*bni_116] + [(2)bni_116]x3[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_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)Bound*bni_116] + [(2)bni_116]x3[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_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)Bound*bni_116] + [(2)bni_116]x3[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_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧0 ≥ 0∧[(2)bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)

For Pair COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0), x2, x3, x1) → 2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2), x1, x3, x2) the following chains were created:
• We consider the chain 2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

(185)    (=(0, %(x0[5], 2))=TRUE2058_0_length_Return(x0[5])=2058_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]2225_0_length_ConstantStackPush(x2[6])=2058_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])∧(UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_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))=TRUE2047_0_length_NULL(0, x2[6])=2058_0_length_Return(x0[7]) ⇒ COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥NonInfC∧COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[5], x3[5], x2[6])∧(UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_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(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)Bound*bni_118] + [(2)bni_118]x3[5] ≥ 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(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)Bound*bni_118] + [(2)bni_118]x3[5] ≥ 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(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)Bound*bni_118] + [(2)bni_118]x3[5] ≥ 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(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[(2)bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)

For Pair 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, x3, x2) → 2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3), x1, x2, x0, x3) the following chains were created:
• We consider the chain COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

(191)    (2225_0_length_ConstantStackPush(x2[6])=2058_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_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=x852047_0_length_NULL(x85, x2[6])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[6], x2[6])≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[6], x2[6])≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[6]), x1[6], x2[6], x0[7], x3[6])∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x85, x2[6])=2058_0_length_Return(x0[7]) which results in the following new constraints:

(193)    (2058_0_length_Return(x86)=2058_0_length_Return(x0[7])∧0=x862286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[6], NULL)≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[6], NULL)≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[6]), x1[6], NULL, x0[7], x3[6])∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))

(194)    (Cond_2047_0_length_NULL(>(x88, -1), x88, java.lang.Object(List(x87)))=2058_0_length_Return(x0[7])∧0=x882286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[6], java.lang.Object(List(x87)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[6], java.lang.Object(List(x87)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[6]), x1[6], java.lang.Object(List(x87)), x0[7], x3[6])∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_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)    (2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x1[6], x3[6], NULL)≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x1[6], x3[6], NULL)≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[6]), x1[6], NULL, 0, x3[6])∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x87)))=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[6], java.lang.Object(List(x87)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[6], java.lang.Object(List(x87)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[6]), x1[6], java.lang.Object(List(x87)), x0[7], x3[6])∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_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(2323_1_MAIN_INVOKEMETHOD(2225_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(2323_1_MAIN_INVOKEMETHOD(2225_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(2323_1_MAIN_INVOKEMETHOD(2225_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(2323_1_MAIN_INVOKEMETHOD(2225_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(2323_1_MAIN_INVOKEMETHOD(2225_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(2323_1_MAIN_INVOKEMETHOD(2225_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(2323_1_MAIN_INVOKEMETHOD(2225_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(2323_1_MAIN_INVOKEMETHOD(2225_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 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → COND_2323_1_MAIN_INVOKEMETHOD(<=(x4, x0), 2058_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) the following chains were created:
• We consider the chain 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2323_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2215_1_MAIN_INVOKEMETHOD(2215_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])=TRUE2058_0_length_Return(x0[8])=2058_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])) ⇒ 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_2323_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2058_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])=TRUE2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_2323_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2058_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_2323_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(4)bni_122 + (-1)Bound*bni_122] + [(8)bni_122]x3[8] ≥ 0∧[3 + (-1)bso_123] + [4]x3[8] ≥ 0)

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

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

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

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

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

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

For Pair COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → 2215_1_MAIN_INVOKEMETHOD(2215_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 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2323_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(211)    (<=(x4[8], x0[8])=TRUE2058_0_length_Return(x0[8])=2058_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]))∧2215_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=2058_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_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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=x912047_0_length_NULL(x91, x1[9])=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(x1[9])))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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 2047_0_length_NULL(x91, x1[9])=2058_0_length_Return(x0[0]) which results in the following new constraints:

(213)    (2058_0_length_Return(x92)=2058_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x92COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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_2047_0_length_NULL(>(x94, -1), x94, java.lang.Object(List(x93)))=2058_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x94COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[8]), java.lang.Object(List(x93)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[8]), java.lang.Object(List(x93)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_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_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x93)))=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[8]), java.lang.Object(List(x93)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[8]), java.lang.Object(List(x93)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_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 + (-1)Bound*bni_124] + [(4)bni_124]x3[8] ≥ 0∧[1 + (-1)bso_125] + [2]x3[8] ≥ 0)

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

(218)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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 + (-1)Bound*bni_124] + [(4)bni_124]x3[8] ≥ 0∧[1 + (-1)bso_125] + [2]x3[8] ≥ 0)

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

(219)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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 + (-1)Bound*bni_124] + [(4)bni_124]x3[8] ≥ 0∧[1 + (-1)bso_125] + [2]x3[8] ≥ 0)

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

(220)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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 + (-1)Bound*bni_124] + [(4)bni_124]x3[8] ≥ 0∧[1 + (-1)bso_125] + [2]x3[8] ≥ 0)

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

(221)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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 + (-1)Bound*bni_124] + [(4)bni_124]x3[8] ≥ 0∧[1 + (-1)bso_125] + [2]x3[8] ≥ 0)

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

(222)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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 + (-1)Bound*bni_124] + [(4)bni_124]x3[8] ≥ 0∧[1 + (-1)bso_125] + [2]x3[8] ≥ 0)

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

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

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

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

For Pair 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3, x0), 2058_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 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))), COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2215_1_MAIN_INVOKEMETHOD(2215_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])=TRUE2058_0_length_Return(x0[10])=2058_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]2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))∧(UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2058_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])=TRUE2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))∧(UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2058_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_2323_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[(4)bni_126 + (-1)Bound*bni_126] + [(8)bni_126]x2[10] ≥ 0∧[1 + (-1)bso_127] + [4]x2[10] ≥ 0)

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

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

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

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

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

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

For Pair COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2215_1_MAIN_INVOKEMETHOD(2215_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 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))), COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2215_1_MAIN_INVOKEMETHOD(2215_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]))), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(231)    (<=(x3[10], x0[10])=TRUE2058_0_length_Return(x0[10])=2058_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]2215_0_length_ConstantStackPush(java.lang.Object(List(x1[11])))=2058_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_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11])))≥2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_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=x972047_0_length_NULL(x97, x1[11])=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[10]), x1[11], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_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 2047_0_length_NULL(x97, x1[11])=2058_0_length_Return(x0[0]) which results in the following new constraints:

(233)    (2058_0_length_Return(x98)=2058_0_length_Return(x0[0])∧<=(x3[10], x0[10])=TRUE1=x98COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_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_2047_0_length_NULL(>(x100, -1), x100, java.lang.Object(List(x99)))=2058_0_length_Return(x0[0])∧<=(x3[10], x0[10])=TRUE1=x100COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_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_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[10]), java.lang.Object(List(x99)), java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_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_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[10]), NULL, java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_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_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x99)))=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_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_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[10]), java.lang.Object(List(x99)), java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))≥2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_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])))), ≥)∧[(3)bni_128 + (-1)Bound*bni_128] + [(4)bni_128]x2[10] ≥ 0∧[3 + (-1)bso_129] + [2]x2[10] ≥ 0)

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

(238)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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])))), ≥)∧[(3)bni_128 + (-1)Bound*bni_128] + [(4)bni_128]x2[10] ≥ 0∧[3 + (-1)bso_129] + [2]x2[10] ≥ 0)

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

(239)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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])))), ≥)∧[(3)bni_128 + (-1)Bound*bni_128] + [(4)bni_128]x2[10] ≥ 0∧[3 + (-1)bso_129] + [2]x2[10] ≥ 0)

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

(240)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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])))), ≥)∧[(3)bni_128 + (-1)Bound*bni_128] + [(4)bni_128]x2[10] ≥ 0∧[3 + (-1)bso_129] + [2]x2[10] ≥ 0)

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

(241)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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])))), ≥)∧[(3)bni_128 + (-1)Bound*bni_128] + [(4)bni_128]x2[10] ≥ 0∧[3 + (-1)bso_129] + [2]x2[10] ≥ 0)

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

(242)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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])))), ≥)∧[(3)bni_128 + (-1)Bound*bni_128] + [(4)bni_128]x2[10] ≥ 0∧[3 + (-1)bso_129] + [2]x2[10] ≥ 0)

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

(243)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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])))), ≥)∧[(4)bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_129] ≥ 0∧[1] ≥ 0)

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

(244)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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])))), ≥)∧[(4)bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_129] ≥ 0∧[1] ≥ 0)

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

(245)    (>(x4[12], x0[12])=TRUE2058_0_length_Return(x0[12])=2058_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]2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])≥COND_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])∧(UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_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])=TRUE2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])≥COND_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])∧(UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_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_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥)∧[(-1)Bound*bni_130] + [(2)bni_130]x3[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_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥)∧[(-1)Bound*bni_130] + [(2)bni_130]x3[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_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥)∧[(-1)Bound*bni_130] + [(2)bni_130]x3[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_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥)∧[(2)bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 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_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1), x2, x3, x1) the following chains were created:
• We consider the chain 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]) → COND_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]), COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(251)    (>(x4[12], x0[12])=TRUE2058_0_length_Return(x0[12])=2058_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]2215_0_length_ConstantStackPush(x1[13])=2058_0_length_Return(x0[0])∧x2[13]=x2[0]x3[13]=x3[0]x1[13]=x1[0]COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13])≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13])≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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=x1032047_0_length_NULL(x103, x1[13])=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), x1[13], java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), x1[13], java.lang.Object(List(x2[12])), x4[12], x3[12])≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[12], x3[12], x1[13])∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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 2047_0_length_NULL(x103, x1[13])=2058_0_length_Return(x0[0]) which results in the following new constraints:

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

(254)    (Cond_2047_0_length_NULL(>(x106, -1), x106, java.lang.Object(List(x105)))=2058_0_length_Return(x0[0])∧>(x4[12], x0[12])=TRUE0=x106COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), java.lang.Object(List(x105)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), java.lang.Object(List(x105)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x105))), x2[12], x3[12], java.lang.Object(List(x105)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), NULL, java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), NULL, java.lang.Object(List(x2[12])), x4[12], x3[12])≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(NULL), x2[12], x3[12], NULL)∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x105)))=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), java.lang.Object(List(x105)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), java.lang.Object(List(x105)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x105))), x2[12], x3[12], java.lang.Object(List(x105)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)Bound*bni_132] + [(2)bni_132]x3[12] ≥ 0∧[(-1)bso_133] ≥ 0)

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

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

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

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

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

(260)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)Bound*bni_132] + [(2)bni_132]x3[12] ≥ 0∧[(-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(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)Bound*bni_132] + [(2)bni_132]x3[12] ≥ 0∧[(-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(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)Bound*bni_132] + [(2)bni_132]x3[12] ≥ 0∧[(-1)bso_133] ≥ 0)

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

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

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

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

For Pair 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2323_1_MAIN_INVOKEMETHOD3(>(x3, x0), 2058_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 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))), COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2215_1_MAIN_INVOKEMETHOD(2215_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])=TRUE2058_0_length_Return(x0[14])=2058_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]2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥COND_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))∧(UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_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])=TRUE2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥COND_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))∧(UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_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_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥)∧[(4)bni_134 + (-1)Bound*bni_134] + [(8)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_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥)∧[(4)bni_134 + (-1)Bound*bni_134] + [(8)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_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥)∧[(4)bni_134 + (-1)Bound*bni_134] + [(8)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_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥)∧[(8)bni_134] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_134 + (-1)Bound*bni_134] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_135] ≥ 0)

For Pair COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1), x2, java.lang.Object(List(x2)), x1) the following chains were created:
• We consider the chain 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))), COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15]), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

(271)    (>(x3[14], x0[14])=TRUE2058_0_length_Return(x0[14])=2058_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]2215_0_length_ConstantStackPush(x1[15])=2058_0_length_Return(x0[0])∧x2[15]=x2[0]java.lang.Object(List(x2[15]))=x3[0]x1[15]=x1[0]COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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=x1092047_0_length_NULL(x109, x1[15])=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), x1[15], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), x1[15], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[14], java.lang.Object(List(x2[14])), x1[15])∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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 2047_0_length_NULL(x109, x1[15])=2058_0_length_Return(x0[0]) which results in the following new constraints:

(273)    (2058_0_length_Return(x110)=2058_0_length_Return(x0[0])∧>(x3[14], x0[14])=TRUE0=x110COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), NULL, java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), NULL, java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(NULL), x2[14], java.lang.Object(List(x2[14])), NULL)∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥))

(274)    (Cond_2047_0_length_NULL(>(x112, -1), x112, java.lang.Object(List(x111)))=2058_0_length_Return(x0[0])∧>(x3[14], x0[14])=TRUE0=x112COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_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_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), java.lang.Object(List(x111)), java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x111))), x2[14], java.lang.Object(List(x2[14])), java.lang.Object(List(x111)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), NULL, java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥NonInfC∧COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), NULL, java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(NULL), x2[14], java.lang.Object(List(x2[14])), NULL)∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x111)))=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_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_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), java.lang.Object(List(x111)), java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x111))), x2[14], java.lang.Object(List(x2[14])), java.lang.Object(List(x111)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(4)bni_136 + (-1)Bound*bni_136] + [(8)bni_136]x2[14] ≥ 0∧[(-1)bso_137] ≥ 0)

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

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

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

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

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

(280)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(4)bni_136 + (-1)Bound*bni_136] + [(8)bni_136]x2[14] ≥ 0∧[(-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(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(4)bni_136 + (-1)Bound*bni_136] + [(8)bni_136]x2[14] ≥ 0∧[(-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(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(4)bni_136 + (-1)Bound*bni_136] + [(8)bni_136]x2[14] ≥ 0∧[(-1)bso_137] ≥ 0)

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

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

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

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

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

(285)    (=(1, %(x0[16], 2))=TRUE2058_0_length_Return(x0[16])=2058_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])) ⇒ 2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥NonInfC∧2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥COND_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))∧(UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2058_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))=TRUE2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥NonInfC∧2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥COND_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))∧(UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2058_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_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(-1)Bound*bni_138] + [(2)bni_138]x3[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_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(-1)Bound*bni_138] + [(2)bni_138]x3[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_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(-1)Bound*bni_138] + [(2)bni_138]x3[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_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧0 ≥ 0∧[(2)bni_138] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_138] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_139] ≥ 0)

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

(291)    (=(1, %(x0[16], 2))=TRUE2058_0_length_Return(x0[16])=2058_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]))∧2215_0_length_ConstantStackPush(x1[17])=2058_0_length_Return(x0[0])∧x2[17]=x2[0]x3[17]=x3[0]x1[17]=x1[0]COND_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17])))≥NonInfC∧COND_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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))=TRUE2047_0_length_NULL(0, x1[17])=2058_0_length_Return(x0[0]) ⇒ COND_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[17])))≥NonInfC∧COND_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[17])))≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[16], x3[16], x1[17])∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(-1)Bound*bni_140] + [(2)bni_140]x3[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(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(-1)Bound*bni_140] + [(2)bni_140]x3[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(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(-1)Bound*bni_140] + [(2)bni_140]x3[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(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧0 ≥ 0∧[(2)bni_140] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-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.
• 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x2, x3, x1) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
• ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)
• ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_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)

• 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, x3, x4, x2) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4, -1), >(x0, -1)), 2058_0_length_Return(x0), x1, x3, x4, x2)
• (0 ≥ 0 ⇒ (UIncreasing(COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(2)bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)

• COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0), x1, x3, x4, x2) → 2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3), x1, x2, +(x4, x0), x3)
• (0 ≥ 0 ⇒ (UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(2)bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)

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

• COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0), x1, x2, x4, x3) → 2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1), x2, x3, x1)
• (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_114] ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_114] ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

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

• COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0), x2, x3, x1) → 2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2), x1, x3, x2)
• (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[(2)bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)

• 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, x3, x2) → 2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3), x1, x2, x0, x3)
• ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_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(2323_1_MAIN_INVOKEMETHOD(2225_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)

• 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3))) → COND_2323_1_MAIN_INVOKEMETHOD(<=(x4, x0), 2058_0_length_Return(x0), x1, x2, x4, java.lang.Object(List(x3)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(8)bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_122 + (-1)Bound*bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_123] ≥ 0∧[1] ≥ 0)

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

• 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3, x0), 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[(8)bni_126] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_126 + (-1)Bound*bni_126] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_127] ≥ 0∧[1] ≥ 0)

• COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2215_1_MAIN_INVOKEMETHOD(2215_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(2215_1_MAIN_INVOKEMETHOD(2215_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])))), ≥)∧[(4)bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_129] ≥ 0∧[1] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_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])))), ≥)∧[(4)bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_129] ≥ 0∧[1] ≥ 0)

• 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → COND_2323_1_MAIN_INVOKEMETHOD2(>(x4, x0), 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3)
• (0 ≥ 0 ⇒ (UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])), ≥)∧[(2)bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 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_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x4, x3) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1), x2, x3, x1)
• (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(2)bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_133] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(2)bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_132] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_133] ≥ 0)

• 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → COND_2323_1_MAIN_INVOKEMETHOD3(>(x3, x0), 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))), ≥)∧[(8)bni_134] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_134 + (-1)Bound*bni_134] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_135] ≥ 0)

• COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0), x1, java.lang.Object(List(x2)), x3, java.lang.Object(List(x2))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1), x2, java.lang.Object(List(x2)), x1)
• (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(8)bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_136 + (-1)Bound*bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_137] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(8)bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_136 + (-1)Bound*bni_136] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_137] ≥ 0)

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

• COND_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1), x2, x3, x1)
• (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧0 ≥ 0∧[(2)bni_140] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-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(2215_0_length_ConstantStackPush(x1)) = 0
POL(2047_0_length_NULL(x1, x2)) = 0
POL(0) = 0
POL(2225_0_length_ConstantStackPush(x1)) = 0
POL(NULL) = 0
POL(2058_0_length_Return(x1)) = 0
POL(java.lang.Object(x1)) = [2]x1
POL(List(x1)) = [1] + [2]x1
POL(Cond_2047_0_length_NULL(x1, x2, x3)) = 0
POL(>(x1, x2)) = 0
POL(-1) = 0
POL(+(x1, x2)) = 0
POL(1) = 0
POL(2215_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [2]x3 + [-1]x1
POL(2225_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [2]x3 + [-1]x1
POL(COND_2225_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [2]x4 + [-1]x2
POL(&&(x1, x2)) = 0
POL(2240_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [2]x5 + [2]x4 + [-1]x1
POL(COND_2240_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [2]x6 + x5 + [-1]x2 + x1
POL(<=(x1, x2)) = 0
POL(*(x1, x2)) = 0
POL(5) = 0
POL(<(x1, x2)) = 0
POL(2264_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [2]x3 + [-1]x1
POL(COND_2264_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [2]x4 + [-1]x2
POL(=(x1, x2)) = 0
POL(2) = 0
POL(2286_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [2]x3 + [-1]x1
POL(2323_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [2]x5 + [-1]x1
POL(COND_2323_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + [-1]x2
POL(COND_2323_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [1] + [2]x6 + [-1]x4 + [-1]x2
POL(COND_2323_1_MAIN_INVOKEMETHOD2(x1, x2, x3, x4, x5, x6)) = [2]x6 + [-1]x2
POL(COND_2323_1_MAIN_INVOKEMETHOD3(x1, x2, x3, x4, x5, x6)) = x6 + x4 + [-1]x2
POL(COND_2264_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5)) = [2]x4 + [-1]x2

The following pairs are in P>:

2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2323_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))
COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2215_1_MAIN_INVOKEMETHOD(2215_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 pairs are in Pbound:

2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2323_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2058_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
COND_2323_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2323_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2058_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))
COND_2323_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2215_1_MAIN_INVOKEMETHOD(2215_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])))
2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]) → COND_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])
COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))
COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])
2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
COND_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])

The following pairs are in P:

2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2240_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]) → COND_2323_1_MAIN_INVOKEMETHOD2(>(x4[12], x0[12]), 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])
COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2323_1_MAIN_INVOKEMETHOD3(>(x3[14], x0[14]), 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))
COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])
2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2264_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
COND_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])

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

2225_0_length_ConstantStackPush(x0)12047_0_length_NULL(0, x0)1
2047_0_length_NULL(x0, NULL)12058_0_length_Return(x0)1
Cond_2047_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))12047_0_length_NULL(x1, java.lang.Object(List(x0)))1
2047_0_length_NULL(+(x1, 1), x0)1Cond_2047_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1
&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1
2047_0_length_NULL(0, x0)12215_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:
2215_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2225_0_length_ConstantStackPush(x0) → 2047_0_length_NULL(0, x0)
2047_0_length_NULL(x0, NULL) → 2058_0_length_Return(x0)
2047_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2047_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_2047_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2047_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(0): 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
(1): 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(x4[1] > -1 && x0[1] > -1, 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(2): COND_2225_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(3): 2240_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2240_1_MAIN_INVOKEMETHOD(x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 2058_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(4): COND_2240_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(5): 2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2264_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(6): COND_2264_1_MAIN_INVOKEMETHOD(TRUE, 2058_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(7): 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(12): 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12]) → COND_2323_1_MAIN_INVOKEMETHOD2(x4[12] > x0[12], 2058_0_length_Return(x0[12]), x1[12], java.lang.Object(List(x2[12])), x4[12], x3[12])
(13): COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
(14): 2323_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14]))) → COND_2323_1_MAIN_INVOKEMETHOD3(x3[14] > x0[14], 2058_0_length_Return(x0[14]), x1[14], java.lang.Object(List(x2[14])), x3[14], java.lang.Object(List(x2[14])))
(15): COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])
(16): 2264_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2264_1_MAIN_INVOKEMETHOD1(1 = x0[16] % 2, 2058_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
(17): COND_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])

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

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

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

(0) -> (1), if (2225_0_length_ConstantStackPush(x2[0]) →* 2058_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] > -12058_0_length_Return(x0[1]) →* 2058_0_length_Return(x0[2])∧x1[1]* x1[2]x3[1]* x3[2]x4[1]* x4[2]x2[1]* x2[2])

(2) -> (3), if (2225_0_length_ConstantStackPush(x3[2]) →* 2058_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] * 52058_0_length_Return(x0[3]) →* 2058_0_length_Return(x0[4])∧x1[3]* x1[4]x2[3]* x2[4]x4[3]* x4[4]x3[3]* x3[4])

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

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

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

(7) -> (12), if (2225_0_length_ConstantStackPush(x3[7]) →* 2058_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])

(12) -> (13), if (x4[12] > x0[12]2058_0_length_Return(x0[12]) →* 2058_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])

(7) -> (14), if (2225_0_length_ConstantStackPush(x3[7]) →* 2058_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])))

(14) -> (15), if (x3[14] > x0[14]2058_0_length_Return(x0[14]) →* 2058_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])

(4) -> (16), if (2225_0_length_ConstantStackPush(x1[4]) →* 2058_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] % 22058_0_length_Return(x0[16]) →* 2058_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:
2215_0_length_ConstantStackPush(x0)
2225_0_length_ConstantStackPush(x0)
2047_0_length_NULL(x0, NULL)
2047_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_2047_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

### (28) 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@2cc04980 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 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) the following chains were created:
• We consider the chain COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[13]), x1[13], java.lang.Object(List(x2[13])), x4[13], x3[13]) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13]), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(1)    (2215_0_length_ConstantStackPush(x1[13])=2058_0_length_Return(x0[0])∧x2[13]=x2[0]x3[13]=x3[0]x1[13]=x1[0]2225_0_length_ConstantStackPush(x2[0])=2058_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(2)    (0=x02047_0_length_NULL(x0, x1[13])=2058_0_length_Return(x0[0])∧0=x12047_0_length_NULL(x1, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], x1[13])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], x1[13])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[13], x3[13], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x0, x1[13])=2058_0_length_Return(x0[0]) which results in the following new constraints:

(3)    (2058_0_length_Return(x2)=2058_0_length_Return(x0[0])∧0=x20=x12047_0_length_NULL(x1, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, x3[13], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(4)    (Cond_2047_0_length_NULL(>(x4, -1), x4, java.lang.Object(List(x3)))=2058_0_length_Return(x0[0])∧0=x40=x12047_0_length_NULL(x1, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x3)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x3)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x3)), x3[13], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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)    (0=x12047_0_length_NULL(x1, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, x3[13], 0, x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(x10, x4, x11)=2058_0_length_Return(x0[0])∧0=x40=x12047_0_length_NULL(x1, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x3)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[13], java.lang.Object(List(x3)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x3)), x3[13], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x1, x2[0])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(7)    (2058_0_length_Return(x5)=2058_0_length_Return(x0[1])∧0=x52215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, x3[13], 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(8)    (Cond_2047_0_length_NULL(>(x7, -1), x7, java.lang.Object(List(x6)))=2058_0_length_Return(x0[1])∧0=x72215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x6)), x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x6)), x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x6))), NULL, x3[13], 0, java.lang.Object(List(x6)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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)    (2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, x3[13], 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x6)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x6)), x3[13], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x6)), x3[13], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x6))), NULL, x3[13], 0, java.lang.Object(List(x6)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_92] = 0∧[(-1)bso_93] ≥ 0)

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

(12)    (2058_0_length_Return(x12)=2058_0_length_Return(x0[1])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_2047_0_length_NULL(x10, x4, x11)=2058_0_length_Return(x0[0])∧0=x40=x122215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x3)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x3)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x3)), x3[13], x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(13)    (Cond_2047_0_length_NULL(>(x14, -1), x14, java.lang.Object(List(x13)))=2058_0_length_Return(x0[1])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_2047_0_length_NULL(x10, x4, x11)=2058_0_length_Return(x0[0])∧0=x40=x142215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x13)), x3[13], java.lang.Object(List(x3)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x13)), x3[13], java.lang.Object(List(x3)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x13))), java.lang.Object(List(x3)), x3[13], x0[0], java.lang.Object(List(x13)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x3)))=2058_0_length_Return(x0[0]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x3)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[13], java.lang.Object(List(x3)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x3)), x3[13], x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x3)))=2058_0_length_Return(x0[0])∧Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x13)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x13)), x3[13], java.lang.Object(List(x3)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x13)), x3[13], java.lang.Object(List(x3)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x13))), java.lang.Object(List(x3)), x3[13], x0[0], java.lang.Object(List(x13)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_93] ≥ 0)

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

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

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

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

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

(19)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_92] = 0∧[(-1)bso_93] ≥ 0)

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

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

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

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

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

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

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

(23)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_92] = 0∧[(-1)bso_93] ≥ 0)

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

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

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

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

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

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

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

(27)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_92] = 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)

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

(28)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_93] ≥ 0)

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

(29)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_93] ≥ 0)

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

(30)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_93] ≥ 0)

• We consider the chain COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[15]), x1[15], java.lang.Object(List(x2[15])), x3[15], java.lang.Object(List(x2[15]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15]), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(31)    (2215_0_length_ConstantStackPush(x1[15])=2058_0_length_Return(x0[0])∧x2[15]=x2[0]java.lang.Object(List(x2[15]))=x3[0]x1[15]=x1[0]2225_0_length_ConstantStackPush(x2[0])=2058_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

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

(32)    (0=x172047_0_length_NULL(x17, x1[15])=2058_0_length_Return(x0[0])∧0=x182047_0_length_NULL(x18, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), x1[15])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), x1[15])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[15], java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x17, x1[15])=2058_0_length_Return(x0[0]) which results in the following new constraints:

(33)    (2058_0_length_Return(x19)=2058_0_length_Return(x0[0])∧0=x190=x182047_0_length_NULL(x18, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(34)    (Cond_2047_0_length_NULL(>(x21, -1), x21, java.lang.Object(List(x20)))=2058_0_length_Return(x0[0])∧0=x210=x182047_0_length_NULL(x18, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x20)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x20)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x20)), java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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)    (0=x182047_0_length_NULL(x18, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], java.lang.Object(List(x2[0])), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], java.lang.Object(List(x2[0])), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, java.lang.Object(List(x2[0])), 0, x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(x27, x21, x28)=2058_0_length_Return(x0[0])∧0=x210=x182047_0_length_NULL(x18, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x20)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], java.lang.Object(List(x2[0])), java.lang.Object(List(x20)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x20)), java.lang.Object(List(x2[0])), x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x18, x2[0])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(37)    (2058_0_length_Return(x22)=2058_0_length_Return(x0[1])∧0=x222215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(NULL)), 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(38)    (Cond_2047_0_length_NULL(>(x24, -1), x24, java.lang.Object(List(x23)))=2058_0_length_Return(x0[1])∧0=x242215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x23)), java.lang.Object(List(java.lang.Object(List(x23)))), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x23)), java.lang.Object(List(java.lang.Object(List(x23)))), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x23))), NULL, java.lang.Object(List(java.lang.Object(List(x23)))), 0, java.lang.Object(List(x23)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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)    (2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, java.lang.Object(List(NULL)), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(NULL)), 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x23)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x23)), java.lang.Object(List(java.lang.Object(List(x23)))), NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x23)), java.lang.Object(List(java.lang.Object(List(x23)))), NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x23))), NULL, java.lang.Object(List(java.lang.Object(List(x23)))), 0, java.lang.Object(List(x23)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_92] = 0∧[(-1)bso_93] ≥ 0)

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

(42)    (2058_0_length_Return(x29)=2058_0_length_Return(x0[1])∧>(x21, -1)=x27java.lang.Object(List(x20))=x28Cond_2047_0_length_NULL(x27, x21, x28)=2058_0_length_Return(x0[0])∧0=x210=x292215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x20)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x20)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x20)), java.lang.Object(List(NULL)), x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(43)    (Cond_2047_0_length_NULL(>(x31, -1), x31, java.lang.Object(List(x30)))=2058_0_length_Return(x0[1])∧>(x21, -1)=x27java.lang.Object(List(x20))=x28Cond_2047_0_length_NULL(x27, x21, x28)=2058_0_length_Return(x0[0])∧0=x210=x312215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x30)), java.lang.Object(List(java.lang.Object(List(x30)))), java.lang.Object(List(x20)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x30)), java.lang.Object(List(java.lang.Object(List(x30)))), java.lang.Object(List(x20)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x30))), java.lang.Object(List(x20)), java.lang.Object(List(java.lang.Object(List(x30)))), x0[0], java.lang.Object(List(x30)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x20)))=2058_0_length_Return(x0[0]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x20)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, java.lang.Object(List(NULL)), java.lang.Object(List(x20)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x20)), java.lang.Object(List(NULL)), x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x20)))=2058_0_length_Return(x0[0])∧Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x30)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x30)), java.lang.Object(List(java.lang.Object(List(x30)))), java.lang.Object(List(x20)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x30)), java.lang.Object(List(java.lang.Object(List(x30)))), java.lang.Object(List(x20)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x30))), java.lang.Object(List(x20)), java.lang.Object(List(java.lang.Object(List(x30)))), x0[0], java.lang.Object(List(x30)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_93] ≥ 0)

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

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

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

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

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

(49)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_92] = 0∧[(-1)bso_93] ≥ 0)

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

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

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

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

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

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

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

(53)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_92] = 0∧[(-1)bso_93] ≥ 0)

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

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

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

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

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

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

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

(57)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_93] ≥ 0)

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

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

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

(59)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_93] ≥ 0)

• We consider the chain COND_2264_1_MAIN_INVOKEMETHOD1(TRUE, 2058_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]), 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2225_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

(60)    (2215_0_length_ConstantStackPush(x1[17])=2058_0_length_Return(x0[0])∧x2[17]=x2[0]x3[17]=x3[0]x1[17]=x1[0]2225_0_length_ConstantStackPush(x2[0])=2058_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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=x342047_0_length_NULL(x34, x1[17])=2058_0_length_Return(x0[0])∧0=x352047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[17], x3[17], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x34, x1[17])=2058_0_length_Return(x0[0]) which results in the following new constraints:

(62)    (2058_0_length_Return(x36)=2058_0_length_Return(x0[0])∧0=x360=x352047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, x3[17], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(63)    (Cond_2047_0_length_NULL(>(x38, -1), x38, java.lang.Object(List(x37)))=2058_0_length_Return(x0[0])∧0=x380=x352047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x37)), x3[17], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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=x352047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), x2[0], x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), NULL, x3[17], 0, x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(x44, x38, x45)=2058_0_length_Return(x0[0])∧0=x380=x352047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x37)), x3[17], x0[0], x2[0])∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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 2047_0_length_NULL(x35, x2[0])=2058_0_length_Return(x0[1]) which results in the following new constraints:

(66)    (2058_0_length_Return(x39)=2058_0_length_Return(x0[1])∧0=x392215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(67)    (Cond_2047_0_length_NULL(>(x41, -1), x41, java.lang.Object(List(x40)))=2058_0_length_Return(x0[1])∧0=x412215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x40)), x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x40)), x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x40))), NULL, x3[17], 0, java.lang.Object(List(x40)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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)    (2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), NULL, x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x40)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x40)), x3[17], NULL)≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(0), java.lang.Object(List(x40)), x3[17], NULL)≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x40))), NULL, x3[17], 0, java.lang.Object(List(x40)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_92] = 0∧[(-1)bso_93] ≥ 0)

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

(71)    (2058_0_length_Return(x46)=2058_0_length_Return(x0[1])∧>(x38, -1)=x44java.lang.Object(List(x37))=x45Cond_2047_0_length_NULL(x44, x38, x45)=2058_0_length_Return(x0[0])∧0=x380=x462215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x37)), x3[17], x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))

(72)    (Cond_2047_0_length_NULL(>(x48, -1), x48, java.lang.Object(List(x47)))=2058_0_length_Return(x0[1])∧>(x38, -1)=x44java.lang.Object(List(x37))=x45Cond_2047_0_length_NULL(x44, x38, x45)=2058_0_length_Return(x0[0])∧0=x380=x482215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[17], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[17], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x47))), java.lang.Object(List(x37)), x3[17], x0[0], java.lang.Object(List(x47)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x37)))=2058_0_length_Return(x0[0]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), java.lang.Object(List(x37)), x3[17], x0[0], NULL)∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x37)))=2058_0_length_Return(x0[0])∧Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x47)))=2058_0_length_Return(x0[1]) ⇒ 2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[17], java.lang.Object(List(x37)))≥NonInfC∧2215_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[0]), java.lang.Object(List(x47)), x3[17], java.lang.Object(List(x37)))≥2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x47))), java.lang.Object(List(x37)), x3[17], x0[0], java.lang.Object(List(x47)))∧(UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_93] ≥ 0)

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

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

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

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

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

(78)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_92] = 0∧[(-1)bso_93] ≥ 0)

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

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

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

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

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

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

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

(82)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_92] = 0∧[(-1)bso_93] ≥ 0)

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

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

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

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

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

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

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

(86)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_92] = 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)

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

(87)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_93] ≥ 0)

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

(88)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_93] ≥ 0)

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

(89)    ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_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_93] ≥ 0)

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

(90)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2058_0_length_Return(x0[1])=2058_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2225_1_MAIN_INVOKEMETHOD(2058_0_length_Return(