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

(4) Complex Obligation (AND)

(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))
2053_0_length_Load(EOS(STATIC_2053), java.lang.Object(o1486sub)) → 2057_0_length_InvokeMethod(EOS(STATIC_2057), 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)
2127_0_length_JMP(EOS(STATIC_2127), o1505) → 2139_0_length_Load(EOS(STATIC_2139), o1505)
2139_0_length_Load(EOS(STATIC_2139), o1505) → 2043_0_length_Load(EOS(STATIC_2043), 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)
2128_0_length_JMP(EOS(STATIC_2128), o1508) → 2141_0_length_Load(EOS(STATIC_2141), o1508)
2141_0_length_Load(EOS(STATIC_2141), o1508) → 2043_0_length_Load(EOS(STATIC_2043), 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)
2131_0_length_JMP(EOS(STATIC_2131), o1511) → 2144_0_length_Load(EOS(STATIC_2144), o1511)
2144_0_length_Load(EOS(STATIC_2144), o1511) → 2043_0_length_Load(EOS(STATIC_2043), 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)
2133_0_length_JMP(EOS(STATIC_2133), o1514) → 2146_0_length_Load(EOS(STATIC_2146), o1514)
2146_0_length_Load(EOS(STATIC_2146), o1514) → 2043_0_length_Load(EOS(STATIC_2043), 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

(11) YES

(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)
844_0_mk_InvokeMethod(EOS(STATIC_844), i105) → 854_0_mk_Load(EOS(STATIC_854), i105)
854_0_mk_Load(EOS(STATIC_854), i105) → 862_0_mk_InvokeMethod(EOS(STATIC_862), i105)
862_0_mk_InvokeMethod(EOS(STATIC_862), i105) → 871_0_<init>_Load(EOS(STATIC_871), i105)
871_0_<init>_Load(EOS(STATIC_871), i105) → 906_0_<init>_InvokeMethod(EOS(STATIC_906), i105)
906_0_<init>_InvokeMethod(EOS(STATIC_906), i105) → 916_0_<init>_Load(EOS(STATIC_916), i105)
916_0_<init>_Load(EOS(STATIC_916), i105) → 926_0_<init>_Load(EOS(STATIC_926), i105)
926_0_<init>_Load(EOS(STATIC_926), i105) → 934_0_<init>_FieldAccess(EOS(STATIC_934), i105)
934_0_<init>_FieldAccess(EOS(STATIC_934), i105) → 943_0_<init>_Load(EOS(STATIC_943), i105)
943_0_<init>_Load(EOS(STATIC_943), i105) → 948_0_<init>_Load(EOS(STATIC_948), i105)
948_0_<init>_Load(EOS(STATIC_948), i105) → 957_0_<init>_FieldAccess(EOS(STATIC_957), 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)
992_0_mk_JMP(EOS(STATIC_992), i105) → 1004_0_mk_Load(EOS(STATIC_1004), i105)
1004_0_mk_Load(EOS(STATIC_1004), i105) → 745_0_mk_Load(EOS(STATIC_745), 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.

(16) Complex Obligation (AND)

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

(19) TRUE

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

(22) TRUE

(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)
2420_0_main_Load(EOS(STATIC_2420), o1688, o1746, o1724) → 2210_0_main_Load(EOS(STATIC_2210), 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)))
2421_0_main_Load(EOS(STATIC_2421), o1688, o1749, java.lang.Object(List(EOC, o1749))) → 2210_0_main_Load(EOS(STATIC_2210), 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)
2320_0_main_Load(EOS(STATIC_2320), o1702, o1679, o1678) → 2210_0_main_Load(EOS(STATIC_2210), 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)
1674_0_length_Load(EOS(STATIC_1674), o1030, matching1) → 1738_0_length_Load(EOS(STATIC_1738), o1030, 0) | =(matching1, 0)
1738_0_length_Load(EOS(STATIC_1738), o1086, i252) → 1849_0_length_Load(EOS(STATIC_1849), o1086, i252)
1849_0_length_Load(EOS(STATIC_1849), o1217, i269) → 1948_0_length_Load(EOS(STATIC_1948), o1217, i269)
1948_0_length_Load(EOS(STATIC_1948), o1345, i283) → 2043_0_length_Load(EOS(STATIC_2043), o1345, i283)
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))
2054_0_length_Load(EOS(STATIC_2054), i301) → 2058_0_length_Return(EOS(STATIC_2058), i301)
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)
2139_0_length_Load(EOS(STATIC_2139), o1505, i309) → 2043_0_length_Load(EOS(STATIC_2043), o1505, i309)
2141_0_length_Load(EOS(STATIC_2141), o1508, i310) → 2043_0_length_Load(EOS(STATIC_2043), o1508, i310)
2144_0_length_Load(EOS(STATIC_2144), o1511, i311) → 2043_0_length_Load(EOS(STATIC_2043), o1511, i311)
2146_0_length_Load(EOS(STATIC_2146), o1514, i314) → 2043_0_length_Load(EOS(STATIC_2043), 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(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 (90) using rules (I), (II), (IV) which results in the following new constraint:

    (91)    (&&(>(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 (91) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (92)    (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])), ≥)∧[bni_94 + (-1)Bound*bni_94] + [bni_94]x3[1] + [bni_94]x1[1] ≥ 0∧[(-1)bso_95] ≥ 0)



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

    (93)    (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])), ≥)∧[bni_94 + (-1)Bound*bni_94] + [bni_94]x3[1] + [bni_94]x1[1] ≥ 0∧[(-1)bso_95] ≥ 0)



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

    (94)    (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])), ≥)∧[bni_94 + (-1)Bound*bni_94] + [bni_94]x3[1] + [bni_94]x1[1] ≥ 0∧[(-1)bso_95] ≥ 0)



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

    (95)    (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∧[bni_94] ≥ 0∧[bni_94] ≥ 0∧0 ≥ 0∧[bni_94 + (-1)Bound*bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)







For Pair 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]) 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:

    (96)    (&&(>(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 (96) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (97)    (&&(>(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 (97) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (98)    (0 ≥ 0 ⇒ (UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_96 + (-1)Bound*bni_96] + [bni_96]x3[2] + [bni_96]x1[1] ≥ 0∧[(-1)bso_97] ≥ 0)



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

    (99)    (0 ≥ 0 ⇒ (UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_96 + (-1)Bound*bni_96] + [bni_96]x3[2] + [bni_96]x1[1] ≥ 0∧[(-1)bso_97] ≥ 0)



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

    (100)    (0 ≥ 0 ⇒ (UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_96 + (-1)Bound*bni_96] + [bni_96]x3[2] + [bni_96]x1[1] ≥ 0∧[(-1)bso_97] ≥ 0)



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

    (101)    (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∧[bni_96] ≥ 0∧[bni_96] ≥ 0∧0 ≥ 0∧[bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_97] ≥ 0)







For Pair 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]) 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:

    (102)    (&&(&&(>(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 (102) using rules (I), (II), (IV) which results in the following new constraint:

    (103)    (&&(&&(>(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 (103) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (104)    (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])), ≥)∧[bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] + [bni_98]x4[3] + [bni_98]x1[3] ≥ 0∧[(-1)bso_99] + x4[3] ≥ 0)



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

    (105)    (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])), ≥)∧[bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] + [bni_98]x4[3] + [bni_98]x1[3] ≥ 0∧[(-1)bso_99] + x4[3] ≥ 0)



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

    (106)    (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])), ≥)∧[bni_98 + (-1)Bound*bni_98] + [bni_98]x3[3] + [bni_98]x4[3] + [bni_98]x1[3] ≥ 0∧[(-1)bso_99] + x4[3] ≥ 0)



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

    (107)    (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])), ≥)∧[bni_98] ≥ 0∧[bni_98] ≥ 0∧0 ≥ 0∧[bni_98] ≥ 0∧0 ≥ 0∧[bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)







For Pair 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]) 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:

    (108)    (&&(&&(>(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 (108) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (109)    (&&(&&(>(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 (109) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (110)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_100 + (-1)Bound*bni_100] + [bni_100]x3[3] + [bni_100]x1[4] ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (111)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_100 + (-1)Bound*bni_100] + [bni_100]x3[3] + [bni_100]x1[4] ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (112)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_100 + (-1)Bound*bni_100] + [bni_100]x3[3] + [bni_100]x1[4] ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (113)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_100] ≥ 0∧0 ≥ 0∧[bni_100 + (-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 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:

    (114)    (&&(&&(>(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 (114) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (115)    (&&(&&(>(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 (115) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (116)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(3)bni_100 + (-1)Bound*bni_100] + [bni_100]x3[3] + [(4)bni_100]x1[16] ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (117)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(3)bni_100 + (-1)Bound*bni_100] + [bni_100]x3[3] + [(4)bni_100]x1[16] ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (118)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(3)bni_100 + (-1)Bound*bni_100] + [bni_100]x3[3] + [(4)bni_100]x1[16] ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (119)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_100] ≥ 0∧0 ≥ 0∧[(3)bni_100 + (-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)







For Pair 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]) 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:

    (120)    (=(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 (120) using rules (I), (II), (IV) which results in the following new constraint:

    (121)    (=(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 (121) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (122)    (0 ≥ 0 ⇒ (UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_102 + (-1)Bound*bni_102] + [bni_102]x1[5] + [bni_102]x3[5] ≥ 0∧[(-1)bso_103] ≥ 0)



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

    (123)    (0 ≥ 0 ⇒ (UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_102 + (-1)Bound*bni_102] + [bni_102]x1[5] + [bni_102]x3[5] ≥ 0∧[(-1)bso_103] ≥ 0)



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

    (124)    (0 ≥ 0 ⇒ (UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_102 + (-1)Bound*bni_102] + [bni_102]x1[5] + [bni_102]x3[5] ≥ 0∧[(-1)bso_103] ≥ 0)



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

    (125)    (0 ≥ 0 ⇒ (UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_102] ≥ 0∧[bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)







For Pair 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]) 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:

    (126)    (=(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 (126) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (127)    (=(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 (127) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (128)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_104 + (-1)Bound*bni_104] + [bni_104]x1[5] + [bni_104]x3[5] ≥ 0∧[(-1)bso_105] ≥ 0)



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

    (129)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_104 + (-1)Bound*bni_104] + [bni_104]x1[5] + [bni_104]x3[5] ≥ 0∧[(-1)bso_105] ≥ 0)



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

    (130)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_104 + (-1)Bound*bni_104] + [bni_104]x1[5] + [bni_104]x3[5] ≥ 0∧[(-1)bso_105] ≥ 0)



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

    (131)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_104] ≥ 0∧[bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_104 + (-1)Bound*bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)







For Pair 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]) 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]), 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]) which results in the following constraint:

    (132)    (2225_0_length_ConstantStackPush(x2[6])=2058_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]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]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 (132) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (133)    (0=x512047_0_length_NULL(x51, x3[7])=2058_0_length_Return(x0[12])∧1=x522047_0_length_NULL(x52, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[6], java.lang.Object(List(x2[12])), 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 (133) using rule (V) (with possible (I) afterwards) using induction on 2047_0_length_NULL(x51, x3[7])=2058_0_length_Return(x0[12]) which results in the following new constraints:

    (134)    (2058_0_length_Return(x53)=2058_0_length_Return(x0[12])∧0=x531=x522047_0_length_NULL(x52, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[12])), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (135)    (Cond_2047_0_length_NULL(>(x55, -1), x55, java.lang.Object(List(x54)))=2058_0_length_Return(x0[12])∧0=x551=x522047_0_length_NULL(x52, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x54))), x1[6], java.lang.Object(List(x2[12])), x0[7], java.lang.Object(List(x54)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (136)    (1=x522047_0_length_NULL(x52, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[12])), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (137)    (>(x55, -1)=x61java.lang.Object(List(x54))=x62Cond_2047_0_length_NULL(x61, x55, x62)=2058_0_length_Return(x0[12])∧0=x551=x522047_0_length_NULL(x52, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x54))), x1[6], java.lang.Object(List(x2[12])), x0[7], java.lang.Object(List(x54)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (138)    (2058_0_length_Return(x56)=2058_0_length_Return(x0[7])∧1=x562286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (139)    (Cond_2047_0_length_NULL(>(x58, -1), x58, java.lang.Object(List(x57)))=2058_0_length_Return(x0[7])∧1=x582286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x57)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x57)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x57)))), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (140)    (2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), 1, NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (141)    (Cond_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x57)))=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x57)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x57)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x57)))), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (142)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



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

    (143)    (2058_0_length_Return(x63)=2058_0_length_Return(x0[7])∧>(x55, -1)=x61java.lang.Object(List(x54))=x62Cond_2047_0_length_NULL(x61, x55, x62)=2058_0_length_Return(x0[12])∧0=x551=x632286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x54))), x1[6], java.lang.Object(List(NULL)), x0[7], java.lang.Object(List(x54)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (144)    (Cond_2047_0_length_NULL(>(x65, -1), x65, java.lang.Object(List(x64)))=2058_0_length_Return(x0[7])∧>(x55, -1)=x61java.lang.Object(List(x54))=x62Cond_2047_0_length_NULL(x61, x55, x62)=2058_0_length_Return(x0[12])∧0=x551=x652286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(java.lang.Object(List(x64)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(java.lang.Object(List(x64)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x54))), x1[6], java.lang.Object(List(java.lang.Object(List(x64)))), x0[7], java.lang.Object(List(x54)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (145)    (Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x54)))=2058_0_length_Return(x0[12]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x54))), x1[6], java.lang.Object(List(NULL)), 1, java.lang.Object(List(x54)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (146)    (Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x54)))=2058_0_length_Return(x0[12])∧Cond_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x64)))=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(java.lang.Object(List(x64)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x54)), java.lang.Object(List(java.lang.Object(List(x64)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x54))), x1[6], java.lang.Object(List(java.lang.Object(List(x64)))), x0[7], java.lang.Object(List(x54)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

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



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

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



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

    (149)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (150)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



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

    (151)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (152)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (153)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (154)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



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

    (155)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (156)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (157)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (158)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (159)    ((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∧[(-1)bso_107] ≥ 0)



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

    (160)    ((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∧[(-1)bso_107] ≥ 0)



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

    (161)    ((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_107] ≥ 0)



  • 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]), 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]))) which results in the following constraint:

    (162)    (2225_0_length_ConstantStackPush(x2[6])=2058_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]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])) ⇒ 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 (162) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (163)    (1=x682047_0_length_NULL(x68, x2[14])=2058_0_length_Return(x0[7])∧1=x692047_0_length_NULL(x69, x2[14])=2058_0_length_Return(x0[14]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x2[14])), java.lang.Object(List(x2[14])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x2[14])), java.lang.Object(List(x2[14])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x2[14]))), x1[6], java.lang.Object(List(x2[14])), x0[7], java.lang.Object(List(x2[14])))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (164)    (2058_0_length_Return(x70)=2058_0_length_Return(x0[7])∧1=x701=x692047_0_length_NULL(x69, NULL)=2058_0_length_Return(x0[14]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(NULL)), x0[7], java.lang.Object(List(NULL)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (165)    (Cond_2047_0_length_NULL(>(x72, -1), x72, java.lang.Object(List(x71)))=2058_0_length_Return(x0[7])∧1=x721=x692047_0_length_NULL(x69, java.lang.Object(List(x71)))=2058_0_length_Return(x0[14]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x71)))), java.lang.Object(List(java.lang.Object(List(x71)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x71)))), java.lang.Object(List(java.lang.Object(List(x71)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x71))))), x1[6], java.lang.Object(List(java.lang.Object(List(x71)))), x0[7], java.lang.Object(List(java.lang.Object(List(x71)))))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (166)    (2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(NULL)), 1, java.lang.Object(List(NULL)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (167)    (Cond_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x71)))=2058_0_length_Return(x0[7])∧Cond_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x71)))=2058_0_length_Return(x0[14]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x71)))), java.lang.Object(List(java.lang.Object(List(x71)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x71)))), java.lang.Object(List(java.lang.Object(List(x71)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x71))))), x1[6], java.lang.Object(List(java.lang.Object(List(x71)))), x0[7], java.lang.Object(List(java.lang.Object(List(x71)))))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (168)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



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

    (169)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (170)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



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

    (171)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (172)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_106] = 0∧[(-1)bso_107] ≥ 0)



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

    (173)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (174)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (175)    ((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∧[(-1)bso_107] ≥ 0)







For Pair 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]) 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:

    (176)    (>(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 (176) using rules (I), (II), (IV) which results in the following new constraint:

    (177)    (>(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 (177) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (178)    (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])), ≥)∧[bni_108 + (-1)Bound*bni_108] + [bni_108]x3[12] + [bni_108]x1[12] ≥ 0∧[(-1)bso_109] ≥ 0)



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

    (179)    (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])), ≥)∧[bni_108 + (-1)Bound*bni_108] + [bni_108]x3[12] + [bni_108]x1[12] ≥ 0∧[(-1)bso_109] ≥ 0)



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

    (180)    (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])), ≥)∧[bni_108 + (-1)Bound*bni_108] + [bni_108]x3[12] + [bni_108]x1[12] ≥ 0∧[(-1)bso_109] ≥ 0)



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

    (181)    (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])), ≥)∧[bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_108] ≥ 0∧0 ≥ 0∧[bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)







For Pair 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]) 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:

    (182)    (>(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 (182) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (183)    (>(x4[12], x0[12])=TRUE0=x752047_0_length_NULL(x75, 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 (183) using rule (V) (with possible (I) afterwards) using induction on 2047_0_length_NULL(x75, x1[13])=2058_0_length_Return(x0[0]) which results in the following new constraints:

    (184)    (2058_0_length_Return(x76)=2058_0_length_Return(x0[0])∧>(x4[12], x0[12])=TRUE0=x76COND_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])), ≥))


    (185)    (Cond_2047_0_length_NULL(>(x78, -1), x78, java.lang.Object(List(x77)))=2058_0_length_Return(x0[0])∧>(x4[12], x0[12])=TRUE0=x78COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), java.lang.Object(List(x77)), 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(x77)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x77))), x2[12], x3[12], java.lang.Object(List(x77)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))



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

    (186)    (>(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 (185) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (187)    (>(x4[12], x0[12])=TRUECond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x77)))=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), java.lang.Object(List(x77)), 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(x77)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x77))), x2[12], x3[12], java.lang.Object(List(x77)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))



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

    (188)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_110 + (-1)Bound*bni_110] + [bni_110]x3[12] ≥ 0∧[(-1)bso_111] ≥ 0)



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

    (189)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[12] + [(4)bni_110]x77 ≥ 0∧[(-1)bso_111] ≥ 0)



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

    (190)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_110 + (-1)Bound*bni_110] + [bni_110]x3[12] ≥ 0∧[(-1)bso_111] ≥ 0)



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

    (191)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[12] + [(4)bni_110]x77 ≥ 0∧[(-1)bso_111] ≥ 0)



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

    (192)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_110 + (-1)Bound*bni_110] + [bni_110]x3[12] ≥ 0∧[(-1)bso_111] ≥ 0)



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

    (193)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[12] + [(4)bni_110]x77 ≥ 0∧[(-1)bso_111] ≥ 0)



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

    (194)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)



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

    (195)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_110] ≥ 0∧0 ≥ 0∧[(3)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)







For Pair 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]))) 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:

    (196)    (>(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 (196) using rules (I), (II), (IV) which results in the following new constraint:

    (197)    (>(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 (197) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (198)    (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])))), ≥)∧[(3)bni_112 + (-1)Bound*bni_112] + [(4)bni_112]x2[14] + [bni_112]x1[14] ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (199)    (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])))), ≥)∧[(3)bni_112 + (-1)Bound*bni_112] + [(4)bni_112]x2[14] + [bni_112]x1[14] ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (200)    (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])))), ≥)∧[(3)bni_112 + (-1)Bound*bni_112] + [(4)bni_112]x2[14] + [bni_112]x1[14] ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (201)    (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_112] ≥ 0∧0 ≥ 0∧[bni_112] ≥ 0∧0 ≥ 0∧[(3)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)







For Pair 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]) 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:

    (202)    (>(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 (202) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (203)    (>(x3[14], x0[14])=TRUE0=x812047_0_length_NULL(x81, 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 (203) using rule (V) (with possible (I) afterwards) using induction on 2047_0_length_NULL(x81, x1[15])=2058_0_length_Return(x0[0]) which results in the following new constraints:

    (204)    (2058_0_length_Return(x82)=2058_0_length_Return(x0[0])∧>(x3[14], x0[14])=TRUE0=x82COND_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])), ≥))


    (205)    (Cond_2047_0_length_NULL(>(x84, -1), x84, java.lang.Object(List(x83)))=2058_0_length_Return(x0[0])∧>(x3[14], x0[14])=TRUE0=x84COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), java.lang.Object(List(x83)), 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(x83)), 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(x83))), x2[14], java.lang.Object(List(x2[14])), java.lang.Object(List(x83)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥))



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

    (206)    (>(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 (205) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (207)    (>(x3[14], x0[14])=TRUECond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x83)))=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), java.lang.Object(List(x83)), 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(x83)), 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(x83))), x2[14], java.lang.Object(List(x2[14])), java.lang.Object(List(x83)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥))



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

    (208)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(3)bni_114 + (-1)Bound*bni_114] + [(4)bni_114]x2[14] ≥ 0∧[(-1)bso_115] ≥ 0)



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

    (209)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(5)bni_114 + (-1)Bound*bni_114] + [(4)bni_114]x2[14] + [(4)bni_114]x83 ≥ 0∧[(-1)bso_115] ≥ 0)



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

    (210)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(3)bni_114 + (-1)Bound*bni_114] + [(4)bni_114]x2[14] ≥ 0∧[(-1)bso_115] ≥ 0)



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

    (211)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(5)bni_114 + (-1)Bound*bni_114] + [(4)bni_114]x2[14] + [(4)bni_114]x83 ≥ 0∧[(-1)bso_115] ≥ 0)



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

    (212)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(3)bni_114 + (-1)Bound*bni_114] + [(4)bni_114]x2[14] ≥ 0∧[(-1)bso_115] ≥ 0)



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

    (213)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(5)bni_114 + (-1)Bound*bni_114] + [(4)bni_114]x2[14] + [(4)bni_114]x83 ≥ 0∧[(-1)bso_115] ≥ 0)



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

    (214)    (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_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



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

    (215)    (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_114] ≥ 0∧0 ≥ 0∧[(4)bni_114] ≥ 0∧0 ≥ 0∧[(5)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)







For Pair 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]))) 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:

    (216)    (=(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 (216) using rules (I), (II), (IV) which results in the following new constraint:

    (217)    (=(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 (217) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (218)    (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])))), ≥)∧[(3)bni_116 + (-1)Bound*bni_116] + [(4)bni_116]x1[16] + [bni_116]x3[16] ≥ 0∧[1 + (-1)bso_117] ≥ 0)



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

    (219)    (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])))), ≥)∧[(3)bni_116 + (-1)Bound*bni_116] + [(4)bni_116]x1[16] + [bni_116]x3[16] ≥ 0∧[1 + (-1)bso_117] ≥ 0)



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

    (220)    (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])))), ≥)∧[(3)bni_116 + (-1)Bound*bni_116] + [(4)bni_116]x1[16] + [bni_116]x3[16] ≥ 0∧[1 + (-1)bso_117] ≥ 0)



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

    (221)    (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])))), ≥)∧[(4)bni_116] ≥ 0∧[bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_117] ≥ 0)







For Pair 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 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:

    (222)    (=(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 (222) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (223)    (=(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 (223) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (224)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(2)bni_118 + (-1)Bound*bni_118] + [(4)bni_118]x1[17] + [bni_118]x3[16] ≥ 0∧[1 + (-1)bso_119] + [3]x1[17] ≥ 0)



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

    (225)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(2)bni_118 + (-1)Bound*bni_118] + [(4)bni_118]x1[17] + [bni_118]x3[16] ≥ 0∧[1 + (-1)bso_119] + [3]x1[17] ≥ 0)



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

    (226)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(2)bni_118 + (-1)Bound*bni_118] + [(4)bni_118]x1[17] + [bni_118]x3[16] ≥ 0∧[1 + (-1)bso_119] + [3]x1[17] ≥ 0)



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

    (227)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(4)bni_118] ≥ 0∧[bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_118 + (-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_119] ≥ 0∧[1] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 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])), ≥)∧[bni_92] = 0∧0 ≥ 0∧[(-1)bso_93] ≥ 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_93] ≥ 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_93] ≥ 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_93] ≥ 0)
    • ((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)
    • ((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)
    • ((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)
    • ((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)
    • ((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)
    • ((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)
    • ((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)
    • ((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)

  • 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])
    • (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∧[bni_94] ≥ 0∧[bni_94] ≥ 0∧0 ≥ 0∧[bni_94 + (-1)Bound*bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)

  • 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])
    • (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∧[bni_96] ≥ 0∧[bni_96] ≥ 0∧0 ≥ 0∧[bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_97] ≥ 0)

  • 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])
    • (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])), ≥)∧[bni_98] ≥ 0∧[bni_98] ≥ 0∧0 ≥ 0∧[bni_98] ≥ 0∧0 ≥ 0∧[bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)

  • 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])
    • (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_100] ≥ 0∧0 ≥ 0∧[bni_100 + (-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_100] ≥ 0∧0 ≥ 0∧[(3)bni_100 + (-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)

  • 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])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_102] ≥ 0∧[bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)

  • 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])
    • (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_104] ≥ 0∧[bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_104 + (-1)Bound*bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)

  • 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])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 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∧[(-1)bso_107] ≥ 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∧[(-1)bso_107] ≥ 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_107] ≥ 0)
    • ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_106] = 0∧0 ≥ 0∧[(-1)bso_107] ≥ 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∧[(-1)bso_107] ≥ 0)

  • 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])
    • (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])), ≥)∧[bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_108] ≥ 0∧0 ≥ 0∧[bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 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]) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
    • (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(4)bni_110] ≥ 0∧0 ≥ 0∧[(3)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)

  • 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])))
    • (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_112] ≥ 0∧0 ≥ 0∧[bni_112] ≥ 0∧0 ≥ 0∧[(3)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 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]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])
    • (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_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
    • (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_114] ≥ 0∧0 ≥ 0∧[(4)bni_114] ≥ 0∧0 ≥ 0∧[(5)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

  • 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])))
    • (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])))), ≥)∧[(4)bni_116] ≥ 0∧[bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_117] ≥ 0)

  • 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 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(4)bni_118] ≥ 0∧[bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_118 + (-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_119] ≥ 0∧[1] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for 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)) = [1] + x4 + x3 + [-1]x1   
POL(2225_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [1] + x3 + x2 + [-1]x1   
POL(COND_2225_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [1] + x4 + x3 + [-1]x2 + x1   
POL(&&(x1, x2)) = 0   
POL(2240_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [1] + x5 + x4 + x2 + [-1]x1   
POL(COND_2240_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [1] + x6 + x3 + [-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)) = [1] + x4 + x3 + [-1]x1   
POL(COND_2264_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [1] + x5 + x4 + [-1]x2   
POL(=(x1, x2)) = 0   
POL(2) = 0   
POL(2286_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [1] + x3 + x2 + [-1]x1   
POL(2323_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [1] + x5 + x2 + [-1]x1   
POL(COND_2323_1_MAIN_INVOKEMETHOD2(x1, x2, x3, x4, x5, x6)) = [1] + x6 + x3 + [-1]x2   
POL(COND_2323_1_MAIN_INVOKEMETHOD3(x1, x2, x3, x4, x5, x6)) = [1] + [2]x6 + [-1]x4 + x3 + [-1]x2   
POL(COND_2264_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5)) = x5 + x4 + [-1]x2   

The following pairs are in P>:

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 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[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])

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
2047_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_2047_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
Cond_2047_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))12047_0_length_NULL(+(x1, 1), x0)1
&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1
2215_0_length_ConstantStackPush(x0)12047_0_length_NULL(0, x0)1

(29) Obligation:

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


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
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])

(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])


(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])



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)))

(30) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@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_86] = 0∧[(-1)bso_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 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_86] = 0∧[(-1)bso_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 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_86] = 0∧[(-1)bso_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 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_86] = 0∧0 ≥ 0∧[(-1)bso_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 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_86] = 0∧[(-1)bso_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 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_86] = 0∧[(-1)bso_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 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_86] = 0∧[(-1)bso_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 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:

    (60)    (&&(>(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 (60) using rules (I), (II), (IV) which results in the following new constraint:

    (61)    (&&(>(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 (61) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (62)    (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)bni_88 + (-1)Bound*bni_88] + [bni_88]x2[1] + [(-1)bni_88]x3[1] + [(2)bni_88]x1[1] ≥ 0∧[(-1)bso_89] ≥ 0)



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

    (63)    (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)bni_88 + (-1)Bound*bni_88] + [bni_88]x2[1] + [(-1)bni_88]x3[1] + [(2)bni_88]x1[1] ≥ 0∧[(-1)bso_89] ≥ 0)



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

    (64)    (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)bni_88 + (-1)Bound*bni_88] + [bni_88]x2[1] + [(-1)bni_88]x3[1] + [(2)bni_88]x1[1] ≥ 0∧[(-1)bso_89] ≥ 0)



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

    (65)    (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])), ≥)∧[bni_88] ≥ 0∧0 ≥ 0∧[(-1)bni_88] ≥ 0∧[(2)bni_88] ≥ 0∧0 ≥ 0∧[(-1)bni_88 + (-1)Bound*bni_88] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_89] ≥ 0)







For Pair 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]) 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:

    (66)    (&&(>(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 (66) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (67)    (&&(>(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 (67) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (68)    (0 ≥ 0 ⇒ (UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_90 + (-1)Bound*bni_90] + [bni_90]x2[1] + [(-1)bni_90]x3[2] + [(2)bni_90]x1[1] ≥ 0∧[(-1)bso_91] ≥ 0)



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

    (69)    (0 ≥ 0 ⇒ (UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_90 + (-1)Bound*bni_90] + [bni_90]x2[1] + [(-1)bni_90]x3[2] + [(2)bni_90]x1[1] ≥ 0∧[(-1)bso_91] ≥ 0)



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

    (70)    (0 ≥ 0 ⇒ (UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_90 + (-1)Bound*bni_90] + [bni_90]x2[1] + [(-1)bni_90]x3[2] + [(2)bni_90]x1[1] ≥ 0∧[(-1)bso_91] ≥ 0)



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

    (71)    (0 ≥ 0 ⇒ (UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_90] ≥ 0∧0 ≥ 0∧[(-1)bni_90] ≥ 0∧[(2)bni_90] ≥ 0∧0 ≥ 0∧[(-1)bni_90 + (-1)Bound*bni_90] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)







For Pair 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]) 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:

    (72)    (&&(&&(>(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 (72) using rules (I), (II), (IV) which results in the following new constraint:

    (73)    (&&(&&(>(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 (73) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (74)    (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)bni_92 + (-1)Bound*bni_92] + [(-1)bni_92]x3[3] + [(2)bni_92]x4[3] + [bni_92]x2[3] + [(2)bni_92]x1[3] ≥ 0∧[(-1)bso_93] + x4[3] ≥ 0)



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

    (75)    (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)bni_92 + (-1)Bound*bni_92] + [(-1)bni_92]x3[3] + [(2)bni_92]x4[3] + [bni_92]x2[3] + [(2)bni_92]x1[3] ≥ 0∧[(-1)bso_93] + x4[3] ≥ 0)



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

    (76)    (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)bni_92 + (-1)Bound*bni_92] + [(-1)bni_92]x3[3] + [(2)bni_92]x4[3] + [bni_92]x2[3] + [(2)bni_92]x1[3] ≥ 0∧[(-1)bso_93] + x4[3] ≥ 0)



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

    (77)    (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)bni_92] ≥ 0∧[(2)bni_92] ≥ 0∧[bni_92] ≥ 0∧[(2)bni_92] ≥ 0∧0 ≥ 0∧[(-1)bni_92 + (-1)Bound*bni_92] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)







For Pair 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]) 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:

    (78)    (&&(&&(>(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 (78) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (79)    (&&(&&(>(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 (79) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (80)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [(-1)bni_94]x3[3] + [bni_94]x4[3] + [bni_94]x2[3] + [(2)bni_94]x1[4] ≥ 0∧[(-1)bso_95] + x4[3] ≥ 0)



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

    (81)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [(-1)bni_94]x3[3] + [bni_94]x4[3] + [bni_94]x2[3] + [(2)bni_94]x1[4] ≥ 0∧[(-1)bso_95] + x4[3] ≥ 0)



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

    (82)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [(-1)bni_94]x3[3] + [bni_94]x4[3] + [bni_94]x2[3] + [(2)bni_94]x1[4] ≥ 0∧[(-1)bso_95] + x4[3] ≥ 0)



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

    (83)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_94] ≥ 0∧[bni_94] ≥ 0∧[bni_94] ≥ 0∧[(2)bni_94] ≥ 0∧0 ≥ 0∧[(-1)bni_94 + (-1)Bound*bni_94] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)







For Pair 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]) 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:

    (84)    (=(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 (84) using rules (I), (II), (IV) which results in the following new constraint:

    (85)    (=(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 (85) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (86)    (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)bni_96 + (-1)Bound*bni_96] + [(2)bni_96]x1[5] + [(-1)bni_96]x3[5] + [bni_96]x2[5] ≥ 0∧[(-1)bso_97] ≥ 0)



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

    (87)    (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)bni_96 + (-1)Bound*bni_96] + [(2)bni_96]x1[5] + [(-1)bni_96]x3[5] + [bni_96]x2[5] ≥ 0∧[(-1)bso_97] ≥ 0)



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

    (88)    (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)bni_96 + (-1)Bound*bni_96] + [(2)bni_96]x1[5] + [(-1)bni_96]x3[5] + [bni_96]x2[5] ≥ 0∧[(-1)bso_97] ≥ 0)



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

    (89)    (0 ≥ 0 ⇒ (UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(2)bni_96] ≥ 0∧[(-1)bni_96] ≥ 0∧[bni_96] ≥ 0∧0 ≥ 0∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_97] ≥ 0)







For Pair 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]) 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:

    (90)    (=(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 (90) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (91)    (=(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 (91) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (92)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [(2)bni_98]x1[5] + [(-1)bni_98]x3[5] + [bni_98]x2[6] ≥ 0∧[(-1)bso_99] ≥ 0)



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

    (93)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [(2)bni_98]x1[5] + [(-1)bni_98]x3[5] + [bni_98]x2[6] ≥ 0∧[(-1)bso_99] ≥ 0)



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

    (94)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [(2)bni_98]x1[5] + [(-1)bni_98]x3[5] + [bni_98]x2[6] ≥ 0∧[(-1)bso_99] ≥ 0)



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

    (95)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(2)bni_98] ≥ 0∧[(-1)bni_98] ≥ 0∧[bni_98] ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)







For Pair 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]) 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]), 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]) which results in the following constraint:

    (96)    (2225_0_length_ConstantStackPush(x2[6])=2058_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]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]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 (96) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (97)    (0=x342047_0_length_NULL(x34, x3[7])=2058_0_length_Return(x0[12])∧1=x352047_0_length_NULL(x35, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[6], java.lang.Object(List(x2[12])), 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 (97) using rule (V) (with possible (I) afterwards) using induction on 2047_0_length_NULL(x34, x3[7])=2058_0_length_Return(x0[12]) which results in the following new constraints:

    (98)    (2058_0_length_Return(x36)=2058_0_length_Return(x0[12])∧0=x361=x352047_0_length_NULL(x35, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[12])), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (99)    (Cond_2047_0_length_NULL(>(x38, -1), x38, java.lang.Object(List(x37)))=2058_0_length_Return(x0[12])∧0=x381=x352047_0_length_NULL(x35, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x37))), x1[6], java.lang.Object(List(x2[12])), x0[7], java.lang.Object(List(x37)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (100)    (1=x352047_0_length_NULL(x35, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[12])), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (101)    (>(x38, -1)=x44java.lang.Object(List(x37))=x45Cond_2047_0_length_NULL(x44, x38, x45)=2058_0_length_Return(x0[12])∧0=x381=x352047_0_length_NULL(x35, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x37))), x1[6], java.lang.Object(List(x2[12])), x0[7], java.lang.Object(List(x37)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (102)    (2058_0_length_Return(x39)=2058_0_length_Return(x0[7])∧1=x392286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (103)    (Cond_2047_0_length_NULL(>(x41, -1), x41, java.lang.Object(List(x40)))=2058_0_length_Return(x0[7])∧1=x412286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x40)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x40)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x40)))), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (104)    (2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), 1, NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (105)    (Cond_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x40)))=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x40)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x40)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x40)))), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (106)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_100] = 0∧[(-1)bso_101] ≥ 0)



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

    (107)    (2058_0_length_Return(x46)=2058_0_length_Return(x0[7])∧>(x38, -1)=x44java.lang.Object(List(x37))=x45Cond_2047_0_length_NULL(x44, x38, x45)=2058_0_length_Return(x0[12])∧0=x381=x462286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x37))), x1[6], java.lang.Object(List(NULL)), x0[7], java.lang.Object(List(x37)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (108)    (Cond_2047_0_length_NULL(>(x48, -1), x48, java.lang.Object(List(x47)))=2058_0_length_Return(x0[7])∧>(x38, -1)=x44java.lang.Object(List(x37))=x45Cond_2047_0_length_NULL(x44, x38, x45)=2058_0_length_Return(x0[12])∧0=x381=x482286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(java.lang.Object(List(x47)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(java.lang.Object(List(x47)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x37))), x1[6], java.lang.Object(List(java.lang.Object(List(x47)))), x0[7], java.lang.Object(List(x37)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (109)    (Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x37)))=2058_0_length_Return(x0[12]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x37))), x1[6], java.lang.Object(List(NULL)), 1, java.lang.Object(List(x37)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (110)    (Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x37)))=2058_0_length_Return(x0[12])∧Cond_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x47)))=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(java.lang.Object(List(x47)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x37)), java.lang.Object(List(java.lang.Object(List(x47)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x37))), x1[6], java.lang.Object(List(java.lang.Object(List(x47)))), x0[7], java.lang.Object(List(x37)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (111)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (112)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (113)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (114)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_100] = 0∧[(-1)bso_101] ≥ 0)



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

    (115)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (116)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (117)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (118)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_100] = 0∧[(-1)bso_101] ≥ 0)



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

    (119)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (120)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (121)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (122)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_100] = 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (123)    ((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∧[(-1)bso_101] ≥ 0)



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

    (124)    ((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∧[(-1)bso_101] ≥ 0)



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

    (125)    ((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_101] ≥ 0)



  • 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]), 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]))) which results in the following constraint:

    (126)    (2225_0_length_ConstantStackPush(x2[6])=2058_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]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])) ⇒ 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 (126) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (127)    (1=x512047_0_length_NULL(x51, x2[14])=2058_0_length_Return(x0[7])∧1=x522047_0_length_NULL(x52, x2[14])=2058_0_length_Return(x0[14]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x2[14])), java.lang.Object(List(x2[14])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x2[14])), java.lang.Object(List(x2[14])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x2[14]))), x1[6], java.lang.Object(List(x2[14])), x0[7], java.lang.Object(List(x2[14])))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (128)    (2058_0_length_Return(x53)=2058_0_length_Return(x0[7])∧1=x531=x522047_0_length_NULL(x52, NULL)=2058_0_length_Return(x0[14]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(NULL)), x0[7], java.lang.Object(List(NULL)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (129)    (Cond_2047_0_length_NULL(>(x55, -1), x55, java.lang.Object(List(x54)))=2058_0_length_Return(x0[7])∧1=x551=x522047_0_length_NULL(x52, java.lang.Object(List(x54)))=2058_0_length_Return(x0[14]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x54)))), java.lang.Object(List(java.lang.Object(List(x54)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x54)))), java.lang.Object(List(java.lang.Object(List(x54)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x54))))), x1[6], java.lang.Object(List(java.lang.Object(List(x54)))), x0[7], java.lang.Object(List(java.lang.Object(List(x54)))))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (130)    (2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(NULL)), 1, java.lang.Object(List(NULL)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (131)    (Cond_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x54)))=2058_0_length_Return(x0[7])∧Cond_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x54)))=2058_0_length_Return(x0[14]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x54)))), java.lang.Object(List(java.lang.Object(List(x54)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x54)))), java.lang.Object(List(java.lang.Object(List(x54)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x54))))), x1[6], java.lang.Object(List(java.lang.Object(List(x54)))), x0[7], java.lang.Object(List(java.lang.Object(List(x54)))))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (132)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_100] = 0∧[(-1)bso_101] ≥ 0)



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

    (133)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (134)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_100] = 0∧[(-1)bso_101] ≥ 0)



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

    (135)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (136)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_100] = 0∧[(-1)bso_101] ≥ 0)



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

    (137)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (138)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_100] = 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (139)    ((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∧[(-1)bso_101] ≥ 0)







For Pair 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]) 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:

    (140)    (>(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 (140) using rules (I), (II), (IV) which results in the following new constraint:

    (141)    (>(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 (141) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (142)    (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])), ≥)∧[(3)bni_102 + (-1)Bound*bni_102] + [(-1)bni_102]x3[12] + [(4)bni_102]x2[12] + [(2)bni_102]x1[12] ≥ 0∧[(-1)bso_103] ≥ 0)



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

    (143)    (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])), ≥)∧[(3)bni_102 + (-1)Bound*bni_102] + [(-1)bni_102]x3[12] + [(4)bni_102]x2[12] + [(2)bni_102]x1[12] ≥ 0∧[(-1)bso_103] ≥ 0)



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

    (144)    (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])), ≥)∧[(3)bni_102 + (-1)Bound*bni_102] + [(-1)bni_102]x3[12] + [(4)bni_102]x2[12] + [(2)bni_102]x1[12] ≥ 0∧[(-1)bso_103] ≥ 0)



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

    (145)    (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)bni_102] ≥ 0∧0 ≥ 0∧[(4)bni_102] ≥ 0∧[(2)bni_102] ≥ 0∧0 ≥ 0∧[(3)bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)







For Pair 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]) 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:

    (146)    (>(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 (146) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (147)    (>(x4[12], x0[12])=TRUE0=x582047_0_length_NULL(x58, 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 (147) using rule (V) (with possible (I) afterwards) using induction on 2047_0_length_NULL(x58, x1[13])=2058_0_length_Return(x0[0]) which results in the following new constraints:

    (148)    (2058_0_length_Return(x59)=2058_0_length_Return(x0[0])∧>(x4[12], x0[12])=TRUE0=x59COND_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])), ≥))


    (149)    (Cond_2047_0_length_NULL(>(x61, -1), x61, java.lang.Object(List(x60)))=2058_0_length_Return(x0[0])∧>(x4[12], x0[12])=TRUE0=x61COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), java.lang.Object(List(x60)), 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(x60)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x60))), x2[12], x3[12], java.lang.Object(List(x60)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))



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

    (150)    (>(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 (149) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (151)    (>(x4[12], x0[12])=TRUECond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x60)))=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), java.lang.Object(List(x60)), 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(x60)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x60))), x2[12], x3[12], java.lang.Object(List(x60)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))



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

    (152)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_104 + (-1)Bound*bni_104] + [(-1)bni_104]x3[12] + [(4)bni_104]x2[12] ≥ 0∧[4 + (-1)bso_105] + [3]x2[12] ≥ 0)



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

    (153)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(11)bni_104 + (-1)Bound*bni_104] + [(-1)bni_104]x3[12] + [(4)bni_104]x2[12] + [(8)bni_104]x60 ≥ 0∧[4 + (-1)bso_105] + [3]x2[12] ≥ 0)



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

    (154)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_104 + (-1)Bound*bni_104] + [(-1)bni_104]x3[12] + [(4)bni_104]x2[12] ≥ 0∧[4 + (-1)bso_105] + [3]x2[12] ≥ 0)



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

    (155)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(11)bni_104 + (-1)Bound*bni_104] + [(-1)bni_104]x3[12] + [(4)bni_104]x2[12] + [(8)bni_104]x60 ≥ 0∧[4 + (-1)bso_105] + [3]x2[12] ≥ 0)



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

    (156)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_104 + (-1)Bound*bni_104] + [(-1)bni_104]x3[12] + [(4)bni_104]x2[12] ≥ 0∧[4 + (-1)bso_105] + [3]x2[12] ≥ 0)



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

    (157)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(11)bni_104 + (-1)Bound*bni_104] + [(-1)bni_104]x3[12] + [(4)bni_104]x2[12] + [(8)bni_104]x60 ≥ 0∧[4 + (-1)bso_105] + [3]x2[12] ≥ 0)



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

    (158)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)bni_104] ≥ 0∧0 ≥ 0∧[(4)bni_104] ≥ 0∧0 ≥ 0∧[(3)bni_104 + (-1)Bound*bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_105] ≥ 0∧[1] ≥ 0)



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

    (159)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)bni_104] ≥ 0∧0 ≥ 0∧[(4)bni_104] ≥ 0∧[(8)bni_104] ≥ 0∧0 ≥ 0∧[(11)bni_104 + (-1)Bound*bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_105] ≥ 0∧[1] ≥ 0)







For Pair 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]))) 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:

    (160)    (>(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 (160) using rules (I), (II), (IV) which results in the following new constraint:

    (161)    (>(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 (161) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (162)    (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])))), ≥)∧[(-1)bni_106 + (-1)Bound*bni_106] + [(2)bni_106]x1[14] ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (163)    (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])))), ≥)∧[(-1)bni_106 + (-1)Bound*bni_106] + [(2)bni_106]x1[14] ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (164)    (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])))), ≥)∧[(-1)bni_106 + (-1)Bound*bni_106] + [(2)bni_106]x1[14] ≥ 0∧[(-1)bso_107] ≥ 0)



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

    (165)    (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])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(2)bni_106] ≥ 0∧0 ≥ 0∧[(-1)bni_106 + (-1)Bound*bni_106] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)







For Pair 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]) 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:

    (166)    (>(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 (166) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (167)    (>(x3[14], x0[14])=TRUE0=x642047_0_length_NULL(x64, 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 (167) using rule (V) (with possible (I) afterwards) using induction on 2047_0_length_NULL(x64, x1[15])=2058_0_length_Return(x0[0]) which results in the following new constraints:

    (168)    (2058_0_length_Return(x65)=2058_0_length_Return(x0[0])∧>(x3[14], x0[14])=TRUE0=x65COND_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])), ≥))


    (169)    (Cond_2047_0_length_NULL(>(x67, -1), x67, java.lang.Object(List(x66)))=2058_0_length_Return(x0[0])∧>(x3[14], x0[14])=TRUE0=x67COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), java.lang.Object(List(x66)), 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(x66)), 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(x66))), x2[14], java.lang.Object(List(x2[14])), java.lang.Object(List(x66)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥))



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

    (170)    (>(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 (169) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (171)    (>(x3[14], x0[14])=TRUECond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x66)))=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD3(TRUE, 2058_0_length_Return(x0[14]), java.lang.Object(List(x66)), 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(x66)), 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(x66))), x2[14], java.lang.Object(List(x2[14])), java.lang.Object(List(x66)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥))



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

    (172)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] ≥ 0∧[4 + (-1)bso_109] + [3]x2[14] ≥ 0)



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

    (173)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(7)bni_108 + (-1)Bound*bni_108] + [(8)bni_108]x66 ≥ 0∧[4 + (-1)bso_109] + [3]x2[14] ≥ 0)



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

    (174)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] ≥ 0∧[4 + (-1)bso_109] + [3]x2[14] ≥ 0)



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

    (175)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(7)bni_108 + (-1)Bound*bni_108] + [(8)bni_108]x66 ≥ 0∧[4 + (-1)bso_109] + [3]x2[14] ≥ 0)



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

    (176)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] ≥ 0∧[4 + (-1)bso_109] + [3]x2[14] ≥ 0)



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

    (177)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧[(7)bni_108 + (-1)Bound*bni_108] + [(8)bni_108]x66 ≥ 0∧[4 + (-1)bso_109] + [3]x2[14] ≥ 0)



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

    (178)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_109] ≥ 0∧[1] ≥ 0)



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

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







To summarize, we get the following constraints P for the following pairs.
  • 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])), ≥)∧[bni_86] = 0∧0 ≥ 0∧[(-1)bso_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 0)
    • ((UIncreasing(2225_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_86] = 0∧[(-1)bso_87] ≥ 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_87] ≥ 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_87] ≥ 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_87] ≥ 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])
    • (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])), ≥)∧[bni_88] ≥ 0∧0 ≥ 0∧[(-1)bni_88] ≥ 0∧[(2)bni_88] ≥ 0∧0 ≥ 0∧[(-1)bni_88 + (-1)Bound*bni_88] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_89] ≥ 0)

  • 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])
    • (0 ≥ 0 ⇒ (UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_90] ≥ 0∧0 ≥ 0∧[(-1)bni_90] ≥ 0∧[(2)bni_90] ≥ 0∧0 ≥ 0∧[(-1)bni_90 + (-1)Bound*bni_90] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)

  • 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])
    • (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)bni_92] ≥ 0∧[(2)bni_92] ≥ 0∧[bni_92] ≥ 0∧[(2)bni_92] ≥ 0∧0 ≥ 0∧[(-1)bni_92 + (-1)Bound*bni_92] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)

  • 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])
    • (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_94] ≥ 0∧[bni_94] ≥ 0∧[bni_94] ≥ 0∧[(2)bni_94] ≥ 0∧0 ≥ 0∧[(-1)bni_94 + (-1)Bound*bni_94] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)

  • 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])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(2)bni_96] ≥ 0∧[(-1)bni_96] ≥ 0∧[bni_96] ≥ 0∧0 ≥ 0∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_97] ≥ 0)

  • 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])
    • (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(2)bni_98] ≥ 0∧[(-1)bni_98] ≥ 0∧[bni_98] ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)

  • 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])), ≥)∧[bni_100] = 0∧0 ≥ 0∧[(-1)bso_101] ≥ 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∧[(-1)bso_101] ≥ 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∧[(-1)bso_101] ≥ 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_101] ≥ 0)
    • ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_100] = 0∧0 ≥ 0∧[(-1)bso_101] ≥ 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∧[(-1)bso_101] ≥ 0)

  • 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])
    • (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)bni_102] ≥ 0∧0 ≥ 0∧[(4)bni_102] ≥ 0∧[(2)bni_102] ≥ 0∧0 ≥ 0∧[(3)bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 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]) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
    • (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)bni_104] ≥ 0∧0 ≥ 0∧[(4)bni_104] ≥ 0∧0 ≥ 0∧[(3)bni_104 + (-1)Bound*bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_105] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(-1)bni_104] ≥ 0∧0 ≥ 0∧[(4)bni_104] ≥ 0∧[(8)bni_104] ≥ 0∧0 ≥ 0∧[(11)bni_104 + (-1)Bound*bni_104] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_105] ≥ 0∧[1] ≥ 0)

  • 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])))
    • (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])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(2)bni_106] ≥ 0∧0 ≥ 0∧[(-1)bni_106 + (-1)Bound*bni_106] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 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]))) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])
    • (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_109] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[15]), x2[15], java.lang.Object(List(x2[15])), x1[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(8)bni_108] ≥ 0∧0 ≥ 0∧[(7)bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_109] ≥ 0∧[1] ≥ 0)




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

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(2215_0_length_ConstantStackPush(x1)) = [3]x1   
POL(2047_0_length_NULL(x1, x2)) = [2] + x2 + x1   
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)) = [2] + [2]x1   
POL(Cond_2047_0_length_NULL(x1, x2, x3)) = [3] + [2]x2 + [2]x1   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(2215_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [2]x4 + [-1]x3 + x2   
POL(2225_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + [-1]x3 + [2]x2   
POL(COND_2225_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + [-1]x4 + [2]x3 + [-1]x2 + [2]x1   
POL(&&(x1, x2)) = 0   
POL(2240_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + [2]x4 + x3 + [2]x2   
POL(COND_2240_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + x5 + x4 + [2]x3 + [-1]x2 + [-1]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)) = [-1] + [2]x4 + [-1]x3 + x2   
POL(COND_2264_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [2]x5 + [-1]x4 + x3 + [-1]x2   
POL(=(x1, x2)) = 0   
POL(2) = 0   
POL(2286_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + [-1]x3 + [2]x2   
POL(2323_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + x3 + [2]x2   
POL(COND_2323_1_MAIN_INVOKEMETHOD2(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + x4 + [2]x3 + [-1]x2   
POL(COND_2323_1_MAIN_INVOKEMETHOD3(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + [-1]x4 + [2]x3 + [-1]x2   

The following pairs are in P>:

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])
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])

The following pairs are in Pbound:

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])

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])
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])))

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

2047_0_length_NULL(x0, NULL)12058_0_length_Return(x0)1
&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1

(31) Complex Obligation (AND)

(32) Obligation:

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


The following domains are used:

Integer, Boolean


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])
(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])))

(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])


(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])))



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)))

(33) IDependencyGraphProof (EQUIVALENT transformation)

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

(34) TRUE

(35) Obligation:

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


The following domains are used:

Integer, 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])

(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])


(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])



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)))

(36) 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_79] = 0∧[(-1)bso_80] ≥ 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_80] ≥ 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_80] ≥ 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_80] ≥ 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_79] = 0∧[(-1)bso_80] ≥ 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_80] ≥ 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_80] ≥ 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_80] ≥ 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_79] = 0∧[(-1)bso_80] ≥ 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_80] ≥ 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_80] ≥ 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_80] ≥ 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_79] = 0∧0 ≥ 0∧[(-1)bso_80] ≥ 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_80] ≥ 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_80] ≥ 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_80] ≥ 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:

    (31)    (&&(>(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 (31) using rules (I), (II), (IV) which results in the following new constraint:

    (32)    (&&(>(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 (32) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (33)    (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_81] + [bni_81]x2[1] + [bni_81]x3[1] + [bni_81]x1[1] ≥ 0∧[(-1)bso_82] ≥ 0)



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

    (34)    (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_81] + [bni_81]x2[1] + [bni_81]x3[1] + [bni_81]x1[1] ≥ 0∧[(-1)bso_82] ≥ 0)



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

    (35)    (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_81] + [bni_81]x2[1] + [bni_81]x3[1] + [bni_81]x1[1] ≥ 0∧[(-1)bso_82] ≥ 0)



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

    (36)    (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])), ≥)∧[bni_81] ≥ 0∧0 ≥ 0∧[bni_81] ≥ 0∧[bni_81] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_81] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_82] ≥ 0)







For Pair 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]) 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:

    (37)    (&&(>(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 (37) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (38)    (&&(>(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 (38) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (39)    (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_83] + [bni_83]x2[1] + [bni_83]x3[2] + [bni_83]x1[1] ≥ 0∧[1 + (-1)bso_84] ≥ 0)



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

    (40)    (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_83] + [bni_83]x2[1] + [bni_83]x3[2] + [bni_83]x1[1] ≥ 0∧[1 + (-1)bso_84] ≥ 0)



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

    (41)    (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_83] + [bni_83]x2[1] + [bni_83]x3[2] + [bni_83]x1[1] ≥ 0∧[1 + (-1)bso_84] ≥ 0)



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

    (42)    (0 ≥ 0 ⇒ (UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_83] ≥ 0∧0 ≥ 0∧[bni_83] ≥ 0∧[bni_83] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_83] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_84] ≥ 0)







For Pair 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]) 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:

    (43)    (&&(&&(>(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 (43) using rules (I), (II), (IV) which results in the following new constraint:

    (44)    (&&(&&(>(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 (44) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (45)    (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)bni_85 + (-1)Bound*bni_85] + [bni_85]x3[3] + [bni_85]x4[3] + [bni_85]x2[3] + [bni_85]x1[3] ≥ 0∧[(-1)bso_86] + x4[3] ≥ 0)



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

    (46)    (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)bni_85 + (-1)Bound*bni_85] + [bni_85]x3[3] + [bni_85]x4[3] + [bni_85]x2[3] + [bni_85]x1[3] ≥ 0∧[(-1)bso_86] + x4[3] ≥ 0)



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

    (47)    (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)bni_85 + (-1)Bound*bni_85] + [bni_85]x3[3] + [bni_85]x4[3] + [bni_85]x2[3] + [bni_85]x1[3] ≥ 0∧[(-1)bso_86] + x4[3] ≥ 0)



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

    (48)    (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])), ≥)∧[bni_85] ≥ 0∧[bni_85] ≥ 0∧[bni_85] ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧[(-1)bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_86] ≥ 0)







For Pair 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]) 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:

    (49)    (&&(&&(>(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 (49) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (50)    (&&(&&(>(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 (50) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (51)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [bni_87]x3[3] + [bni_87]x2[3] + [bni_87]x1[4] ≥ 0∧[(-1)bso_88] ≥ 0)



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

    (52)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [bni_87]x3[3] + [bni_87]x2[3] + [bni_87]x1[4] ≥ 0∧[(-1)bso_88] ≥ 0)



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

    (53)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [bni_87]x3[3] + [bni_87]x2[3] + [bni_87]x1[4] ≥ 0∧[(-1)bso_88] ≥ 0)



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

    (54)    (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_87] ≥ 0∧0 ≥ 0∧[bni_87] ≥ 0∧[bni_87] ≥ 0∧0 ≥ 0∧[(-1)bni_87 + (-1)Bound*bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_88] ≥ 0)







For Pair 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]) 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:

    (55)    (=(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 (55) using rules (I), (II), (IV) which results in the following new constraint:

    (56)    (=(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 (56) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (57)    (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)bni_89 + (-1)Bound*bni_89] + [bni_89]x1[5] + [bni_89]x3[5] + [bni_89]x2[5] ≥ 0∧[(-1)bso_90] ≥ 0)



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

    (58)    (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)bni_89 + (-1)Bound*bni_89] + [bni_89]x1[5] + [bni_89]x3[5] + [bni_89]x2[5] ≥ 0∧[(-1)bso_90] ≥ 0)



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

    (59)    (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)bni_89 + (-1)Bound*bni_89] + [bni_89]x1[5] + [bni_89]x3[5] + [bni_89]x2[5] ≥ 0∧[(-1)bso_90] ≥ 0)



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

    (60)    (0 ≥ 0 ⇒ (UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧[(-1)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)







For Pair 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]) 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:

    (61)    (=(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 (61) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (62)    (=(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 (62) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (63)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_91 + (-1)Bound*bni_91] + [bni_91]x1[5] + [bni_91]x3[5] + [bni_91]x2[6] ≥ 0∧[(-1)bso_92] ≥ 0)



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

    (64)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_91 + (-1)Bound*bni_91] + [bni_91]x1[5] + [bni_91]x3[5] + [bni_91]x2[6] ≥ 0∧[(-1)bso_92] ≥ 0)



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

    (65)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_91 + (-1)Bound*bni_91] + [bni_91]x1[5] + [bni_91]x3[5] + [bni_91]x2[6] ≥ 0∧[(-1)bso_92] ≥ 0)



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

    (66)    (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧0 ≥ 0∧[(-1)bni_91 + (-1)Bound*bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_92] ≥ 0)







For Pair 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]) 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]), 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]) which results in the following constraint:

    (67)    (2225_0_length_ConstantStackPush(x2[6])=2058_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]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]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 (67) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (68)    (0=x172047_0_length_NULL(x17, x3[7])=2058_0_length_Return(x0[12])∧1=x182047_0_length_NULL(x18, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], x3[7], java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[6], java.lang.Object(List(x2[12])), 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 (68) using rule (V) (with possible (I) afterwards) using induction on 2047_0_length_NULL(x17, x3[7])=2058_0_length_Return(x0[12]) which results in the following new constraints:

    (69)    (2058_0_length_Return(x19)=2058_0_length_Return(x0[12])∧0=x191=x182047_0_length_NULL(x18, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[12])), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (70)    (Cond_2047_0_length_NULL(>(x21, -1), x21, java.lang.Object(List(x20)))=2058_0_length_Return(x0[12])∧0=x211=x182047_0_length_NULL(x18, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x20))), x1[6], java.lang.Object(List(x2[12])), x0[7], java.lang.Object(List(x20)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (71)    (1=x182047_0_length_NULL(x18, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(x2[12])), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (72)    (>(x21, -1)=x27java.lang.Object(List(x20))=x28Cond_2047_0_length_NULL(x27, x21, x28)=2058_0_length_Return(x0[12])∧0=x211=x182047_0_length_NULL(x18, x2[12])=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(x2[12])))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(x2[12])))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x20))), x1[6], java.lang.Object(List(x2[12])), x0[7], java.lang.Object(List(x20)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (73)    (2058_0_length_Return(x22)=2058_0_length_Return(x0[7])∧1=x222286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (74)    (Cond_2047_0_length_NULL(>(x24, -1), x24, java.lang.Object(List(x23)))=2058_0_length_Return(x0[7])∧1=x242286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x23)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x23)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x23)))), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (75)    (2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], NULL, java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(NULL)), 1, NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (76)    (Cond_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x23)))=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x23)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], NULL, java.lang.Object(List(java.lang.Object(List(x23)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(NULL), x1[6], java.lang.Object(List(java.lang.Object(List(x23)))), x0[7], NULL)∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (77)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_93] = 0∧[(-1)bso_94] ≥ 0)



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

    (78)    (2058_0_length_Return(x29)=2058_0_length_Return(x0[7])∧>(x21, -1)=x27java.lang.Object(List(x20))=x28Cond_2047_0_length_NULL(x27, x21, x28)=2058_0_length_Return(x0[12])∧0=x211=x292286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x20))), x1[6], java.lang.Object(List(NULL)), x0[7], java.lang.Object(List(x20)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (79)    (Cond_2047_0_length_NULL(>(x31, -1), x31, java.lang.Object(List(x30)))=2058_0_length_Return(x0[7])∧>(x21, -1)=x27java.lang.Object(List(x20))=x28Cond_2047_0_length_NULL(x27, x21, x28)=2058_0_length_Return(x0[12])∧0=x211=x312286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(java.lang.Object(List(x30)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(java.lang.Object(List(x30)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x20))), x1[6], java.lang.Object(List(java.lang.Object(List(x30)))), x0[7], java.lang.Object(List(x20)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (80)    (Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x20)))=2058_0_length_Return(x0[12]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(NULL)))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(1), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(NULL)))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x20))), x1[6], java.lang.Object(List(NULL)), 1, java.lang.Object(List(x20)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (81)    (Cond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x20)))=2058_0_length_Return(x0[12])∧Cond_2047_0_length_NULL(TRUE, 1, java.lang.Object(List(x30)))=2058_0_length_Return(x0[7]) ⇒ 2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(java.lang.Object(List(x30)))))≥NonInfC∧2286_1_MAIN_INVOKEMETHOD(2058_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x20)), java.lang.Object(List(java.lang.Object(List(x30)))))≥2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(java.lang.Object(List(x20))), x1[6], java.lang.Object(List(java.lang.Object(List(x30)))), x0[7], java.lang.Object(List(x20)))∧(UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



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

    (82)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



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

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



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

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



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

    (85)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_93] = 0∧[(-1)bso_94] ≥ 0)



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

    (86)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



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

    (87)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



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

    (88)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



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

    (89)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_93] = 0∧[(-1)bso_94] ≥ 0)



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

    (90)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



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

    (91)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



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

    (92)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



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

    (93)    ((UIncreasing(2323_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_93] = 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



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

    (94)    ((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∧[(-1)bso_94] ≥ 0)



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

    (95)    ((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∧[(-1)bso_94] ≥ 0)



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

    (96)    ((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_94] ≥ 0)







For Pair 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]) 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:

    (97)    (>(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 (97) using rules (I), (II), (IV) which results in the following new constraint:

    (98)    (>(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 (98) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (99)    (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])), ≥)∧[bni_95 + (-1)Bound*bni_95] + [bni_95]x3[12] + [(2)bni_95]x2[12] + [bni_95]x1[12] ≥ 0∧[(-1)bso_96] ≥ 0)



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

    (100)    (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])), ≥)∧[bni_95 + (-1)Bound*bni_95] + [bni_95]x3[12] + [(2)bni_95]x2[12] + [bni_95]x1[12] ≥ 0∧[(-1)bso_96] ≥ 0)



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

    (101)    (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])), ≥)∧[bni_95 + (-1)Bound*bni_95] + [bni_95]x3[12] + [(2)bni_95]x2[12] + [bni_95]x1[12] ≥ 0∧[(-1)bso_96] ≥ 0)



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

    (102)    (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])), ≥)∧[bni_95] ≥ 0∧0 ≥ 0∧[(2)bni_95] ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧[bni_95 + (-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)







For Pair 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]) 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:

    (103)    (>(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 (103) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (104)    (>(x4[12], x0[12])=TRUE0=x342047_0_length_NULL(x34, 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 (104) 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:

    (105)    (2058_0_length_Return(x35)=2058_0_length_Return(x0[0])∧>(x4[12], x0[12])=TRUE0=x35COND_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])), ≥))


    (106)    (Cond_2047_0_length_NULL(>(x37, -1), x37, java.lang.Object(List(x36)))=2058_0_length_Return(x0[0])∧>(x4[12], x0[12])=TRUE0=x37COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), java.lang.Object(List(x36)), 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(x36)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x36))), x2[12], x3[12], java.lang.Object(List(x36)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))



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

    (107)    (>(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 (106) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (108)    (>(x4[12], x0[12])=TRUECond_2047_0_length_NULL(TRUE, 0, java.lang.Object(List(x36)))=2058_0_length_Return(x0[0]) ⇒ COND_2323_1_MAIN_INVOKEMETHOD2(TRUE, 2058_0_length_Return(x0[12]), java.lang.Object(List(x36)), 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(x36)), java.lang.Object(List(x2[12])), x4[12], x3[12])≥2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(java.lang.Object(List(x36))), x2[12], x3[12], java.lang.Object(List(x36)))∧(UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥))



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

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



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

    (110)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_97 + (-1)Bound*bni_97] + [bni_97]x3[12] + [(2)bni_97]x2[12] + [(2)bni_97]x36 ≥ 0∧[1 + (-1)bso_98] + x2[12] ≥ 0)



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

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



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

    (112)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_97 + (-1)Bound*bni_97] + [bni_97]x3[12] + [(2)bni_97]x2[12] + [(2)bni_97]x36 ≥ 0∧[1 + (-1)bso_98] + x2[12] ≥ 0)



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

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



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

    (114)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[(3)bni_97 + (-1)Bound*bni_97] + [bni_97]x3[12] + [(2)bni_97]x2[12] + [(2)bni_97]x36 ≥ 0∧[1 + (-1)bso_98] + x2[12] ≥ 0)



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

    (115)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_97] ≥ 0∧0 ≥ 0∧[(2)bni_97] ≥ 0∧0 ≥ 0∧[bni_97 + (-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)



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

    (116)    (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_97] ≥ 0∧0 ≥ 0∧[(2)bni_97] ≥ 0∧[(2)bni_97] ≥ 0∧0 ≥ 0∧[(3)bni_97 + (-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 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])), ≥)∧[bni_79] = 0∧0 ≥ 0∧[(-1)bso_80] ≥ 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_80] ≥ 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_80] ≥ 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_80] ≥ 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])
    • (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])), ≥)∧[bni_81] ≥ 0∧0 ≥ 0∧[bni_81] ≥ 0∧[bni_81] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_81] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_82] ≥ 0)

  • 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])
    • (0 ≥ 0 ⇒ (UIncreasing(2240_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_83] ≥ 0∧0 ≥ 0∧[bni_83] ≥ 0∧[bni_83] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_83] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_84] ≥ 0)

  • 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])
    • (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])), ≥)∧[bni_85] ≥ 0∧[bni_85] ≥ 0∧[bni_85] ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧[(-1)bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_86] ≥ 0)

  • 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])
    • (0 ≥ 0 ⇒ (UIncreasing(2264_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_87] ≥ 0∧0 ≥ 0∧[bni_87] ≥ 0∧[bni_87] ≥ 0∧0 ≥ 0∧[(-1)bni_87 + (-1)Bound*bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_88] ≥ 0)

  • 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])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2264_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2058_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧[(-1)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)

  • 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])
    • (0 ≥ 0 ⇒ (UIncreasing(2286_1_MAIN_INVOKEMETHOD(2225_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧0 ≥ 0∧[(-1)bni_91 + (-1)Bound*bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_92] ≥ 0)

  • 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])), ≥)∧[bni_93] = 0∧0 ≥ 0∧[(-1)bso_94] ≥ 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∧[(-1)bso_94] ≥ 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∧[(-1)bso_94] ≥ 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_94] ≥ 0)

  • 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])
    • (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])), ≥)∧[bni_95] ≥ 0∧0 ≥ 0∧[(2)bni_95] ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧[bni_95 + (-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 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]) → 2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])
    • (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_97] ≥ 0∧0 ≥ 0∧[(2)bni_97] ≥ 0∧0 ≥ 0∧[bni_97 + (-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2215_1_MAIN_INVOKEMETHOD(2215_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])), ≥)∧[bni_97] ≥ 0∧0 ≥ 0∧[(2)bni_97] ≥ 0∧[(2)bni_97] ≥ 0∧0 ≥ 0∧[(3)bni_97 + (-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_98] ≥ 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)) = [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)) = x4 + x3 + x2 + [-1]x1   
POL(2225_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = x5 + x3 + x2 + [-1]x1   
POL(COND_2225_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = x6 + x4 + x3 + [-1]x2   
POL(&&(x1, x2)) = 0   
POL(2240_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x4 + x3 + x2 + [-1]x1   
POL(COND_2240_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + x3 + [-1]x2 + [-1]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)) = [-1] + x4 + x3 + x2 + [-1]x1   
POL(COND_2264_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x4 + x3 + [-1]x2   
POL(=(x1, x2)) = 0   
POL(2) = 0   
POL(2286_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2 + [-1]x1   
POL(2323_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x3 + x2 + [-1]x1   
POL(COND_2323_1_MAIN_INVOKEMETHOD2(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + x3 + [-1]x2   

The following pairs are in P>:

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])
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])

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[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])

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])
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])

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
2047_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_2047_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
Cond_2047_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))12047_0_length_NULL(+(x1, 1), x0)1
TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1
2215_0_length_ConstantStackPush(x0)12047_0_length_NULL(0, x0)1

(37) 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])
(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])

(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])


(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])



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)))

(38) IDependencyGraphProof (EQUIVALENT transformation)

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

(39) TRUE