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

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


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

Filtered ground terms:



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

Filtered duplicate args:



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

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


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

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


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

(7) Obligation:

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


The following domains are used:
none


R is empty.

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

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



The set Q is empty.

(8) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(9) Obligation:

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

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

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

(10) QDPSizeChangeProof (EQUIVALENT transformation)

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

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

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

(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:
766_0_mk_Inc(EOS(STATIC_766), i102, i102) → 773_0_mk_LE(EOS(STATIC_773), +(i102, -1), i102)
773_0_mk_LE(EOS(STATIC_773), i105, i109) → 781_0_mk_LE(EOS(STATIC_781), i105, i109)
781_0_mk_LE(EOS(STATIC_781), i105, i109) → 788_0_mk_New(EOS(STATIC_788), i105) | >(i109, 0)
788_0_mk_New(EOS(STATIC_788), i105) → 804_0_mk_Duplicate(EOS(STATIC_804), i105)
804_0_mk_Duplicate(EOS(STATIC_804), i105) → 818_0_mk_New(EOS(STATIC_818), i105)
818_0_mk_New(EOS(STATIC_818), i105) → 835_0_mk_Duplicate(EOS(STATIC_835), i105)
835_0_mk_Duplicate(EOS(STATIC_835), i105) → 853_0_mk_InvokeMethod(EOS(STATIC_853), i105)
853_0_mk_InvokeMethod(EOS(STATIC_853), i105) → 862_0_mk_Load(EOS(STATIC_862), i105)
862_0_mk_Load(EOS(STATIC_862), i105) → 870_0_mk_InvokeMethod(EOS(STATIC_870), i105)
870_0_mk_InvokeMethod(EOS(STATIC_870), i105) → 879_0_<init>_Load(EOS(STATIC_879), i105)
879_0_<init>_Load(EOS(STATIC_879), i105) → 914_0_<init>_InvokeMethod(EOS(STATIC_914), i105)
914_0_<init>_InvokeMethod(EOS(STATIC_914), i105) → 924_0_<init>_Load(EOS(STATIC_924), i105)
924_0_<init>_Load(EOS(STATIC_924), i105) → 934_0_<init>_Load(EOS(STATIC_934), i105)
934_0_<init>_Load(EOS(STATIC_934), i105) → 942_0_<init>_FieldAccess(EOS(STATIC_942), i105)
942_0_<init>_FieldAccess(EOS(STATIC_942), i105) → 951_0_<init>_Load(EOS(STATIC_951), i105)
951_0_<init>_Load(EOS(STATIC_951), i105) → 958_0_<init>_Load(EOS(STATIC_958), i105)
958_0_<init>_Load(EOS(STATIC_958), i105) → 974_0_<init>_FieldAccess(EOS(STATIC_974), i105)
974_0_<init>_FieldAccess(EOS(STATIC_974), i105) → 990_0_<init>_Return(EOS(STATIC_990), i105)
990_0_<init>_Return(EOS(STATIC_990), i105) → 998_0_mk_Store(EOS(STATIC_998), i105)
998_0_mk_Store(EOS(STATIC_998), i105) → 1007_0_mk_JMP(EOS(STATIC_1007), i105)
1007_0_mk_JMP(EOS(STATIC_1007), i105) → 1017_0_mk_Load(EOS(STATIC_1017), i105)
1017_0_mk_Load(EOS(STATIC_1017), i105) → 755_0_mk_Load(EOS(STATIC_755), i105)
755_0_mk_Load(EOS(STATIC_755), i102) → 766_0_mk_Inc(EOS(STATIC_766), i102, i102)
R rules:

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


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

Filtered ground terms:



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

Filtered duplicate args:



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

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


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

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


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

(14) Obligation:

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


The following domains are used:

Integer


R is empty.

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

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


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



The set Q is empty.

(15) IDPNonInfProof (SOUND transformation)

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

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


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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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







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

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




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

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

The following pairs are in P>:

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

The following pairs are in Pbound:

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

The following pairs are in P:

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

There are no usable rules.

(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): 766_0_MK_INC(x0[0]) → COND_766_0_MK_INC(x0[0] > 0, x0[0])


The set Q is empty.

(18) IDependencyGraphProof (EQUIVALENT transformation)

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

(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_766_0_MK_INC(TRUE, x0[1]) → 766_0_MK_INC(x0[1] + -1)


The set Q is empty.

(21) IDependencyGraphProof (EQUIVALENT transformation)

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

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

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


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

Filtered ground terms:



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

Filtered duplicate args:



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

Filtered unneeded arguments:



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

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


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

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


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


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

(25) Obligation:

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


The following domains are used:

Integer, Boolean


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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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



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

(26) IDPNonInfProof (SOUND transformation)

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

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


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

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



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

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



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

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


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



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

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



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

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



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

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


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



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

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



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

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



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

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



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

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


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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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


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



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

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



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

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



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

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


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



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

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



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

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



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

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



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

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


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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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


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



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

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



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

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



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

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


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



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

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



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

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



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

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



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

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


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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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


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



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

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



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

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



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

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


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



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

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



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

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



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

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



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

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


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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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


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



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

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



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

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



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

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


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



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

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



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

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



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

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



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

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


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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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


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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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


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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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


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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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


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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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


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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0), x2, x3, java.lang.Object(List(x1))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1), x2, x3, x1)
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧0 ≥ 0∧[bni_140] ≥ 0∧[bni_140] ≥ 0∧0 ≥ 0∧[(-1)bni_140 + (-1)Bound*bni_140] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_141] ≥ 0)




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

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

The following pairs are in P>:

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

The following pairs are in Pbound:

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

The following pairs are in P:

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

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

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

(27) Obligation:

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


The following domains are used:

Integer, Boolean


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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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



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

(28) IDependencyGraphProof (EQUIVALENT transformation)

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

(29) Obligation:

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


The following domains are used:

Integer, Boolean


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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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



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

(30) IDPNonInfProof (SOUND transformation)

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

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


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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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


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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



    We simplified constraint (29) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (30)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (30) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (31)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧[(-1)bso_99] ≥ 0)



    We simplified constraint (31) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (32)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)







For Pair COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))) the following chains were created:
  • We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

    (33)    (<=(x4[8], x0[8])=TRUE2066_0_length_Return(x0[8])=2066_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9]))∧2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9]))=x2[0]x3[9]=x3[0]java.lang.Object(List(x1[9]))=x1[0]COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (33) using rules (I), (II), (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (34)    (<=(x4[8], x0[8])=TRUE1=x62055_0_length_NULL(x6, x1[9])=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(x1[9])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (34) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x6, x1[9])=2066_0_length_Return(x0[0]) which results in the following new constraints:

    (35)    (2066_0_length_Return(x7)=2066_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x7COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))


    (36)    (Cond_2055_0_length_NULL(>(x9, -1), x9, java.lang.Object(List(x8)))=2066_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x9COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x8)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x8)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x8))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x8)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (35) using rules (I), (II), (IV) which results in the following new constraint:

    (37)    (<=(x4[8], x0[8])=TRUECOND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (36) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (38)    (<=(x4[8], x0[8])=TRUECond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x8)))=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x8)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x8)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x8))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x8)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (37) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (39)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (38) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (40)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (39) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (41)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (40) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (42)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (41) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (43)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (42) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (44)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(-1)Bound*bni_100] + [bni_100]x3[8] + [(-1)bni_100]x2[8] ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (43) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (45)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧[(-1)bni_100] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)



    We simplified constraint (44) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (46)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧[(-1)bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)







For Pair 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) the following chains were created:
  • We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))) which results in the following constraint:

    (47)    (<=(x4[8], x0[8])=TRUE2066_0_length_Return(x0[8])=2066_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9])) ⇒ 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥))



    We simplified constraint (47) using rules (I), (II), (IV) which results in the following new constraint:

    (48)    (<=(x4[8], x0[8])=TRUE2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥))



    We simplified constraint (48) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (49)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(-1)Bound*bni_102] + [bni_102]x3[8] + [(-1)bni_102]x2[8] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (49) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (50)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(-1)Bound*bni_102] + [bni_102]x3[8] + [(-1)bni_102]x2[8] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (50) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (51)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(-1)Bound*bni_102] + [bni_102]x3[8] + [(-1)bni_102]x2[8] ≥ 0∧[(-1)bso_103] ≥ 0)



    We simplified constraint (51) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (52)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[bni_102] ≥ 0∧0 ≥ 0∧[(-1)bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)







For Pair 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) the following chains were created:
  • We consider the chain COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]), 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) which results in the following constraint:

    (53)    (2233_0_length_ConstantStackPush(x2[6])=2066_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]2233_0_length_ConstantStackPush(x3[7])=2066_0_length_Return(x0[8])∧x1[7]=x1[8]x2[7]=x2[8]x0[7]=x4[8]x3[7]=java.lang.Object(List(x3[8])) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (53) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (54)    (0=x122055_0_length_NULL(x12, x2[6])=2066_0_length_Return(x0[7])∧1=x132055_0_length_NULL(x13, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), x2[6])≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), x2[6])≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], x2[6], x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (54) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x12, x2[6])=2066_0_length_Return(x0[7]) which results in the following new constraints:

    (55)    (2066_0_length_Return(x14)=2066_0_length_Return(x0[7])∧0=x141=x132055_0_length_NULL(x13, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], NULL, x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (56)    (Cond_2055_0_length_NULL(>(x16, -1), x16, java.lang.Object(List(x15)))=2066_0_length_Return(x0[7])∧0=x161=x132055_0_length_NULL(x13, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x15)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x15)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], java.lang.Object(List(x15)), x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (55) using rules (I), (II), (III) which results in the following new constraint:

    (57)    (1=x132055_0_length_NULL(x13, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(x3[8])), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(x3[8])), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], NULL, 0, java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (56) using rule (VII) which results in the following new constraint:

    (58)    (>(x16, -1)=x22java.lang.Object(List(x15))=x23Cond_2055_0_length_NULL(x22, x16, x23)=2066_0_length_Return(x0[7])∧0=x161=x132055_0_length_NULL(x13, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x15)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x15)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], java.lang.Object(List(x15)), x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (57) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x13, x3[8])=2066_0_length_Return(x0[8]) which results in the following new constraints:

    (59)    (2066_0_length_Return(x17)=2066_0_length_Return(x0[8])∧1=x172295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], NULL, 0, java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (60)    (Cond_2055_0_length_NULL(>(x19, -1), x19, java.lang.Object(List(x18)))=2066_0_length_Return(x0[8])∧1=x192295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x18)))), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x18)))), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x18))))), x1[6], NULL, 0, java.lang.Object(List(java.lang.Object(List(x18)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (59) using rules (I), (II), (IV) which results in the following new constraint:

    (61)    (2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], NULL, 0, java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (60) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (62)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x18)))=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x18)))), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x18)))), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x18))))), x1[6], NULL, 0, java.lang.Object(List(java.lang.Object(List(x18)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (61) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (63)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_104] = 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (58) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x13, x3[8])=2066_0_length_Return(x0[8]) which results in the following new constraints:

    (64)    (2066_0_length_Return(x24)=2066_0_length_Return(x0[8])∧>(x16, -1)=x22java.lang.Object(List(x15))=x23Cond_2055_0_length_NULL(x22, x16, x23)=2066_0_length_Return(x0[7])∧0=x161=x242295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x15)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x15)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(x15)), x0[7], java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (65)    (Cond_2055_0_length_NULL(>(x26, -1), x26, java.lang.Object(List(x25)))=2066_0_length_Return(x0[8])∧>(x16, -1)=x22java.lang.Object(List(x15))=x23Cond_2055_0_length_NULL(x22, x16, x23)=2066_0_length_Return(x0[7])∧0=x161=x262295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x25)))), java.lang.Object(List(x15)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x25)))), java.lang.Object(List(x15)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x25))))), x1[6], java.lang.Object(List(x15)), x0[7], java.lang.Object(List(java.lang.Object(List(x25)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (64) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (66)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x15)))=2066_0_length_Return(x0[7]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x15)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x15)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(x15)), x0[7], java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (65) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (67)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x15)))=2066_0_length_Return(x0[7])∧Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x25)))=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x25)))), java.lang.Object(List(x15)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x25)))), java.lang.Object(List(x15)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x25))))), x1[6], java.lang.Object(List(x15)), x0[7], java.lang.Object(List(java.lang.Object(List(x25)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (62) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (68)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (66) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (69)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (67) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (70)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (63) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (71)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_104] = 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (69) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (72)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (68) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (73)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (70) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (74)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (71) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (75)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_104] = 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (72) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (76)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (73) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (77)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (74) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (78)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (75) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (79)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_104] = 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (76) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (80)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (77) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (81)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (78) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (82)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



  • We consider the chain COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]), 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) which results in the following constraint:

    (83)    (2233_0_length_ConstantStackPush(x2[6])=2066_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]2233_0_length_ConstantStackPush(x3[7])=2066_0_length_Return(x0[10])∧x1[7]=x1[10]x2[7]=java.lang.Object(List(x2[10]))∧x0[7]=x3[10]x3[7]=java.lang.Object(List(x2[10])) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (83) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (84)    (1=x292055_0_length_NULL(x29, x2[10])=2066_0_length_Return(x0[7])∧1=x302055_0_length_NULL(x30, x2[10])=2066_0_length_Return(x0[10]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x2[10])), java.lang.Object(List(x2[10])))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x2[10])), java.lang.Object(List(x2[10])))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[10]))), x1[6], java.lang.Object(List(x2[10])), x0[7], java.lang.Object(List(x2[10])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (84) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x29, x2[10])=2066_0_length_Return(x0[7]) which results in the following new constraints:

    (85)    (2066_0_length_Return(x31)=2066_0_length_Return(x0[7])∧1=x311=x302055_0_length_NULL(x30, NULL)=2066_0_length_Return(x0[10]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(NULL)), x0[7], java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (86)    (Cond_2055_0_length_NULL(>(x33, -1), x33, java.lang.Object(List(x32)))=2066_0_length_Return(x0[7])∧1=x331=x302055_0_length_NULL(x30, java.lang.Object(List(x32)))=2066_0_length_Return(x0[10]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x32)))), java.lang.Object(List(java.lang.Object(List(x32)))))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x32)))), java.lang.Object(List(java.lang.Object(List(x32)))))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x32))))), x1[6], java.lang.Object(List(java.lang.Object(List(x32)))), x0[7], java.lang.Object(List(java.lang.Object(List(x32)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (85) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (87)    (2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(NULL)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(NULL)), 1, java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (86) using rules (III), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (88)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x32)))=2066_0_length_Return(x0[7])∧Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x32)))=2066_0_length_Return(x0[10]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x32)))), java.lang.Object(List(java.lang.Object(List(x32)))))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x32)))), java.lang.Object(List(java.lang.Object(List(x32)))))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x32))))), x1[6], java.lang.Object(List(java.lang.Object(List(x32)))), x0[7], java.lang.Object(List(java.lang.Object(List(x32)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (87) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (89)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_104] = 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (88) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (90)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (89) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (91)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_104] = 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (90) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (92)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (91) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (93)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_104] = 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (92) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (94)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (93) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (95)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_104] = 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



    We simplified constraint (94) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (96)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)







For Pair COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) the following chains were created:
  • We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

    (97)    (=(0, %(x0[5], 2))=TRUE2066_0_length_Return(x0[5])=2066_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]2233_0_length_ConstantStackPush(x2[6])=2066_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])∧(UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (97) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (98)    (=(0, %(x0[5], 2))=TRUE2055_0_length_NULL(0, x2[6])=2066_0_length_Return(x0[7]) ⇒ COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[5], x3[5], x2[6])∧(UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (98) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (99)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_106 + (-1)Bound*bni_106] + [bni_106]x3[5] + [(-1)bni_106]x2[6] ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (99) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (100)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_106 + (-1)Bound*bni_106] + [bni_106]x3[5] + [(-1)bni_106]x2[6] ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (100) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (101)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)bni_106 + (-1)Bound*bni_106] + [bni_106]x3[5] + [(-1)bni_106]x2[6] ≥ 0∧[(-1)bso_107] ≥ 0)



    We simplified constraint (101) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (102)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[bni_106] ≥ 0∧[(-1)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 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) the following chains were created:
  • We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) which results in the following constraint:

    (103)    (=(0, %(x0[5], 2))=TRUE2066_0_length_Return(x0[5])=2066_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (103) using rules (I), (II), (IV) which results in the following new constraint:

    (104)    (=(0, %(x0[5], 2))=TRUE2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (104) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (105)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] + [bni_108]x3[5] + [(-1)bni_108]x2[5] ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (105) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (106)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] + [bni_108]x3[5] + [(-1)bni_108]x2[5] ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (106) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (107)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)bni_108 + (-1)Bound*bni_108] + [bni_108]x3[5] + [(-1)bni_108]x2[5] ≥ 0∧[(-1)bso_109] ≥ 0)



    We simplified constraint (107) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (108)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧0 ≥ 0∧[bni_108] ≥ 0∧[(-1)bni_108] ≥ 0∧0 ≥ 0∧[(-1)bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)







For Pair COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) the following chains were created:
  • We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) which results in the following constraint:

    (109)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2233_0_length_ConstantStackPush(x1[4])=2066_0_length_Return(x0[5])∧x2[4]=x2[5]x3[4]=x3[5]x1[4]=x1[5]COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (109) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (110)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2055_0_length_NULL(0, x1[4])=2066_0_length_Return(x0[5]) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[3], x3[3], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (110) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (111)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[3] + [(-1)bni_110]x2[3] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (111) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (112)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[3] + [(-1)bni_110]x2[3] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (112) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (113)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[3] + [(-1)bni_110]x2[3] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (113) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (114)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧[(-1)bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)



  • We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) which results in the following constraint:

    (115)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2233_0_length_ConstantStackPush(x1[4])=2066_0_length_Return(x0[16])∧x2[4]=x2[16]x3[4]=x3[16]x1[4]=java.lang.Object(List(x1[16])) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (115) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (116)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2055_0_length_NULL(1, x1[16])=2066_0_length_Return(x0[16]) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), java.lang.Object(List(x1[16])), x2[3], x4[3], x3[3])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), java.lang.Object(List(x1[16])), x2[3], x4[3], x3[3])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x1[16]))), x2[3], x3[3], java.lang.Object(List(x1[16])))∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (116) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (117)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[3] + [(-1)bni_110]x2[3] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (117) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (118)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[3] + [(-1)bni_110]x2[3] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (118) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (119)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)bni_110 + (-1)Bound*bni_110] + [bni_110]x3[3] + [(-1)bni_110]x2[3] ≥ 0∧[(-1)bso_111] ≥ 0)



    We simplified constraint (119) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (120)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧[(-1)bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)







For Pair 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) the following chains were created:
  • We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) which results in the following constraint:

    (121)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (121) using rules (I), (II), (IV) which results in the following new constraint:

    (122)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (122) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (123)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[3] + [bni_112]x4[3] + [(-1)bni_112]x2[3] ≥ 0∧[(-1)bso_113] + x4[3] ≥ 0)



    We simplified constraint (123) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (124)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[3] + [bni_112]x4[3] + [(-1)bni_112]x2[3] ≥ 0∧[(-1)bso_113] + x4[3] ≥ 0)



    We simplified constraint (124) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (125)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_112 + (-1)Bound*bni_112] + [bni_112]x3[3] + [bni_112]x4[3] + [(-1)bni_112]x2[3] ≥ 0∧[(-1)bso_113] + x4[3] ≥ 0)



    We simplified constraint (125) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (126)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_112] ≥ 0∧[bni_112] ≥ 0∧[(-1)bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)







For Pair COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) the following chains were created:
  • We consider the chain 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]), 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) which results in the following constraint:

    (127)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2066_0_length_Return(x0[1])=2066_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2233_0_length_ConstantStackPush(x3[2])=2066_0_length_Return(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]+(x4[2], x0[2])=x4[3]x3[2]=x3[3]COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥NonInfC∧COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])∧(UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (127) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (128)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2055_0_length_NULL(0, x3[2])=2066_0_length_Return(x0[3]) ⇒ COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥NonInfC∧COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[1], x2[1], +(x4[1], x0[1]), x3[2])∧(UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (128) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (129)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [(-1)bni_114]x2[1] + [bni_114]x3[2] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (129) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (130)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [(-1)bni_114]x2[1] + [bni_114]x3[2] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (130) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (131)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [(-1)bni_114]x2[1] + [bni_114]x3[2] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (131) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (132)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_114] ≥ 0∧0 ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)







For Pair 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) the following chains were created:
  • We consider the chain 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) which results in the following constraint:

    (133)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2066_0_length_Return(x0[1])=2066_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (133) using rules (I), (II), (IV) which results in the following new constraint:

    (134)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (134) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (135)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [(-1)bni_116]x2[1] + [bni_116]x3[1] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (135) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (136)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [(-1)bni_116]x2[1] + [bni_116]x3[1] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (136) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (137)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [(-1)bni_116]x2[1] + [bni_116]x3[1] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (137) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (138)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_116] ≥ 0∧0 ≥ 0∧[bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)







For Pair 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) the following chains were created:
  • We consider the chain COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (139)    (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9]))=x2[0]x3[9]=x3[0]java.lang.Object(List(x1[9]))=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (139) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (140)    (1=x362055_0_length_NULL(x36, x1[9])=2066_0_length_Return(x0[0])∧1=x372055_0_length_NULL(x37, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(x1[9])), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (140) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x36, x1[9])=2066_0_length_Return(x0[0]) which results in the following new constraints:

    (141)    (2066_0_length_Return(x38)=2066_0_length_Return(x0[0])∧1=x381=x372055_0_length_NULL(x37, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(NULL)), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (142)    (Cond_2055_0_length_NULL(>(x40, -1), x40, java.lang.Object(List(x39)))=2066_0_length_Return(x0[0])∧1=x401=x372055_0_length_NULL(x37, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(java.lang.Object(List(x39)))), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (141) using rules (I), (II), (III) which results in the following new constraint:

    (143)    (1=x372055_0_length_NULL(x37, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (142) using rule (VII) which results in the following new constraint:

    (144)    (>(x40, -1)=x46java.lang.Object(List(x39))=x47Cond_2055_0_length_NULL(x46, x40, x47)=2066_0_length_Return(x0[0])∧1=x401=x372055_0_length_NULL(x37, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(java.lang.Object(List(x39)))), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (143) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x37, x2[9])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (145)    (2066_0_length_Return(x41)=2066_0_length_Return(x0[1])∧1=x412221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (146)    (Cond_2055_0_length_NULL(>(x43, -1), x43, java.lang.Object(List(x42)))=2066_0_length_Return(x0[1])∧1=x432221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x42)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x42)))), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x42))))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(java.lang.Object(List(x42)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (145) using rules (I), (II), (IV) which results in the following new constraint:

    (147)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (146) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (148)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x42)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x42)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x42)))), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x42))))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(java.lang.Object(List(x42)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (147) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (149)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (144) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x37, x2[9])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (150)    (2066_0_length_Return(x48)=2066_0_length_Return(x0[1])∧>(x40, -1)=x46java.lang.Object(List(x39))=x47Cond_2055_0_length_NULL(x46, x40, x47)=2066_0_length_Return(x0[0])∧1=x401=x482221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x39)))), x3[9], x0[0], java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (151)    (Cond_2055_0_length_NULL(>(x50, -1), x50, java.lang.Object(List(x49)))=2066_0_length_Return(x0[1])∧>(x40, -1)=x46java.lang.Object(List(x39))=x47Cond_2055_0_length_NULL(x46, x40, x47)=2066_0_length_Return(x0[0])∧1=x401=x502221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x49)))), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x49)))), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x49))))), java.lang.Object(List(java.lang.Object(List(x39)))), x3[9], x0[0], java.lang.Object(List(java.lang.Object(List(x49)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (150) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (152)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x39)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x39)))), x3[9], x0[0], java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (151) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (153)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x39)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x49)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x49)))), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x49)))), x3[9], java.lang.Object(List(java.lang.Object(List(x39)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x49))))), java.lang.Object(List(java.lang.Object(List(x39)))), x3[9], x0[0], java.lang.Object(List(java.lang.Object(List(x49)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (148) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (154)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (152) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (155)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (153) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (156)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (149) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (157)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (155) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (158)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (154) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (159)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (156) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (160)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (157) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (161)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (158) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (162)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (159) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (163)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (160) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (164)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (161) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (165)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (162) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (166)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (163) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (167)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (164) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (168)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



  • We consider the chain COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (169)    (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(java.lang.Object(List(x2[11]))))=x2[0]x2[11]=x3[0]java.lang.Object(List(x1[11]))=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (169) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (170)    (1=x532055_0_length_NULL(x53, x1[11])=2066_0_length_Return(x0[0])∧2=x542055_0_length_NULL(x54, x2[11])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2[11]))))), java.lang.Object(List(x1[11])), x2[11], x0[0], java.lang.Object(List(java.lang.Object(List(x2[11])))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (170) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x53, x1[11])=2066_0_length_Return(x0[0]) which results in the following new constraints:

    (171)    (2066_0_length_Return(x55)=2066_0_length_Return(x0[0])∧1=x552=x542055_0_length_NULL(x54, x2[11])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2[11]))))), java.lang.Object(List(NULL)), x2[11], x0[0], java.lang.Object(List(java.lang.Object(List(x2[11])))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (172)    (Cond_2055_0_length_NULL(>(x57, -1), x57, java.lang.Object(List(x56)))=2066_0_length_Return(x0[0])∧1=x572=x542055_0_length_NULL(x54, x2[11])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(java.lang.Object(List(x56)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(java.lang.Object(List(x56)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2[11]))))), java.lang.Object(List(java.lang.Object(List(x56)))), x2[11], x0[0], java.lang.Object(List(java.lang.Object(List(x2[11])))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (171) using rules (I), (II), (III) which results in the following new constraint:

    (173)    (2=x542055_0_length_NULL(x54, x2[11])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2[11]))))), java.lang.Object(List(NULL)), x2[11], 1, java.lang.Object(List(java.lang.Object(List(x2[11])))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (172) using rule (VII) which results in the following new constraint:

    (174)    (>(x57, -1)=x63java.lang.Object(List(x56))=x64Cond_2055_0_length_NULL(x63, x57, x64)=2066_0_length_Return(x0[0])∧1=x572=x542055_0_length_NULL(x54, x2[11])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(java.lang.Object(List(x56)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(java.lang.Object(List(x56)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2[11]))))), java.lang.Object(List(java.lang.Object(List(x56)))), x2[11], x0[0], java.lang.Object(List(java.lang.Object(List(x2[11])))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (173) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x54, x2[11])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (175)    (2066_0_length_Return(x58)=2066_0_length_Return(x0[1])∧2=x582221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(NULL))))), java.lang.Object(List(NULL)), NULL, 1, java.lang.Object(List(java.lang.Object(List(NULL)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (176)    (Cond_2055_0_length_NULL(>(x60, -1), x60, java.lang.Object(List(x59)))=2066_0_length_Return(x0[1])∧2=x602221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x59)))))), java.lang.Object(List(x59)), java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x59)))))), java.lang.Object(List(x59)), java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x59))))))), java.lang.Object(List(NULL)), java.lang.Object(List(x59)), 1, java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x59)))))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (175) using rules (I), (II), (IV) which results in the following new constraint:

    (177)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(NULL))))), java.lang.Object(List(NULL)), NULL, 1, java.lang.Object(List(java.lang.Object(List(NULL)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (176) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (178)    (Cond_2055_0_length_NULL(TRUE, 2, java.lang.Object(List(x59)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x59)))))), java.lang.Object(List(x59)), java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x59)))))), java.lang.Object(List(x59)), java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x59))))))), java.lang.Object(List(NULL)), java.lang.Object(List(x59)), 1, java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x59)))))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (177) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (179)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (174) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x54, x2[11])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (180)    (2066_0_length_Return(x65)=2066_0_length_Return(x0[1])∧>(x57, -1)=x63java.lang.Object(List(x56))=x64Cond_2055_0_length_NULL(x63, x57, x64)=2066_0_length_Return(x0[0])∧1=x572=x652221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(java.lang.Object(List(x56)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(java.lang.Object(List(x56)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(NULL))))), java.lang.Object(List(java.lang.Object(List(x56)))), NULL, x0[0], java.lang.Object(List(java.lang.Object(List(NULL)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (181)    (Cond_2055_0_length_NULL(>(x67, -1), x67, java.lang.Object(List(x66)))=2066_0_length_Return(x0[1])∧>(x57, -1)=x63java.lang.Object(List(x56))=x64Cond_2055_0_length_NULL(x63, x57, x64)=2066_0_length_Return(x0[0])∧1=x572=x672221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x66)))))), java.lang.Object(List(x66)), java.lang.Object(List(java.lang.Object(List(x56)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x66)))))), java.lang.Object(List(x66)), java.lang.Object(List(java.lang.Object(List(x56)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x66))))))), java.lang.Object(List(java.lang.Object(List(x56)))), java.lang.Object(List(x66)), x0[0], java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x66)))))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (180) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (182)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x56)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(java.lang.Object(List(x56)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(NULL)))), NULL, java.lang.Object(List(java.lang.Object(List(x56)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(NULL))))), java.lang.Object(List(java.lang.Object(List(x56)))), NULL, x0[0], java.lang.Object(List(java.lang.Object(List(NULL)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (181) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (183)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x56)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 2, java.lang.Object(List(x66)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x66)))))), java.lang.Object(List(x66)), java.lang.Object(List(java.lang.Object(List(x56)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x66)))))), java.lang.Object(List(x66)), java.lang.Object(List(java.lang.Object(List(x56)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x66))))))), java.lang.Object(List(java.lang.Object(List(x56)))), java.lang.Object(List(x66)), x0[0], java.lang.Object(List(java.lang.Object(List(java.lang.Object(List(x66)))))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (178) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (184)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (182) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (185)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (183) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (186)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (179) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (187)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (185) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (188)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (184) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (189)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (186) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (190)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (187) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (191)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (188) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (192)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (189) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (193)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (190) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (194)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (192) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (195)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (193) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (196)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (194) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (197)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



  • We consider the chain COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (198)    (2221_0_length_ConstantStackPush(x1[17])=2066_0_length_Return(x0[0])∧x2[17]=x2[0]x3[17]=x3[0]x1[17]=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (198) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (199)    (0=x702055_0_length_NULL(x70, x1[17])=2066_0_length_Return(x0[0])∧0=x712055_0_length_NULL(x71, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[17], x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (199) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x70, x1[17])=2066_0_length_Return(x0[0]) which results in the following new constraints:

    (200)    (2066_0_length_Return(x72)=2066_0_length_Return(x0[0])∧0=x720=x712055_0_length_NULL(x71, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (201)    (Cond_2055_0_length_NULL(>(x74, -1), x74, java.lang.Object(List(x73)))=2066_0_length_Return(x0[0])∧0=x740=x712055_0_length_NULL(x71, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x73)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x73)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x73)), x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (200) using rules (I), (II), (III) which results in the following new constraint:

    (202)    (0=x712055_0_length_NULL(x71, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, x3[17], 0, x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (201) using rule (VII) which results in the following new constraint:

    (203)    (>(x74, -1)=x80java.lang.Object(List(x73))=x81Cond_2055_0_length_NULL(x80, x74, x81)=2066_0_length_Return(x0[0])∧0=x740=x712055_0_length_NULL(x71, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x73)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x73)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x73)), x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (202) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x71, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (204)    (2066_0_length_Return(x75)=2066_0_length_Return(x0[1])∧0=x752221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (205)    (Cond_2055_0_length_NULL(>(x77, -1), x77, java.lang.Object(List(x76)))=2066_0_length_Return(x0[1])∧0=x772221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x76)), x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x76)), x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x76))), NULL, x3[17], 0, java.lang.Object(List(x76)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (204) using rules (I), (II), (IV) which results in the following new constraint:

    (206)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (205) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (207)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x76)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x76)), x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x76)), x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x76))), NULL, x3[17], 0, java.lang.Object(List(x76)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (206) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (208)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (203) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x71, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (209)    (2066_0_length_Return(x82)=2066_0_length_Return(x0[1])∧>(x74, -1)=x80java.lang.Object(List(x73))=x81Cond_2055_0_length_NULL(x80, x74, x81)=2066_0_length_Return(x0[0])∧0=x740=x822221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x73)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x73)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x73)), x3[17], x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (210)    (Cond_2055_0_length_NULL(>(x84, -1), x84, java.lang.Object(List(x83)))=2066_0_length_Return(x0[1])∧>(x74, -1)=x80java.lang.Object(List(x73))=x81Cond_2055_0_length_NULL(x80, x74, x81)=2066_0_length_Return(x0[0])∧0=x740=x842221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x83)), x3[17], java.lang.Object(List(x73)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x83)), x3[17], java.lang.Object(List(x73)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(x73)), x3[17], x0[0], java.lang.Object(List(x83)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (209) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (211)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x73)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x73)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x73)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x73)), x3[17], x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (210) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (212)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x73)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x83)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x83)), x3[17], java.lang.Object(List(x73)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x83)), x3[17], java.lang.Object(List(x73)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(x73)), x3[17], x0[0], java.lang.Object(List(x83)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (207) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (213)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (211) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (214)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (212) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (215)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (208) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (216)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (214) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (217)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (213) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (218)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (215) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (219)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (216) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (220)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (217) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (221)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (218) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (222)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (219) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (223)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (220) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (224)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (221) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (225)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (222) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (226)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (223) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (227)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧0 ≥ 0∧[bni_92] ≥ 0∧[(-1)bni_92] ≥ 0∧0 ≥ 0∧[(-1)bni_92 + (-1)Bound*bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)

  • 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧0 ≥ 0∧[bni_94] ≥ 0∧[(-1)bni_94] ≥ 0∧0 ≥ 0∧[(-1)bni_94 + (-1)Bound*bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)

  • COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_97] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_97] ≥ 0)

  • 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_98 + (-1)Bound*bni_98] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)

  • COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧[(-1)bni_100] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧[(-1)bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_101] ≥ 0)

  • 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[bni_102] ≥ 0∧0 ≥ 0∧[(-1)bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)

  • 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_104] = 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_104] = 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)

  • COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
    • (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[bni_106] ≥ 0∧[(-1)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)

  • 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧0 ≥ 0∧[bni_108] ≥ 0∧[(-1)bni_108] ≥ 0∧0 ≥ 0∧[(-1)bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)

  • COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
    • (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧[(-1)bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧[(-1)bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)

  • 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_112] ≥ 0∧[bni_112] ≥ 0∧[(-1)bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)

  • COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
    • (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_114] ≥ 0∧0 ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

  • 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_116] ≥ 0∧0 ≥ 0∧[bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0)

  • 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(2221_0_length_ConstantStackPush(x1)) = 0   
POL(2055_0_length_NULL(x1, x2)) = 0   
POL(0) = 0   
POL(2233_0_length_ConstantStackPush(x1)) = 0   
POL(NULL) = 0   
POL(2066_0_length_Return(x1)) = 0   
POL(java.lang.Object(x1)) = x1   
POL(List(x1)) = [1] + x1   
POL(Cond_2055_0_length_NULL(x1, x2, x3)) = 0   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(COND_2272_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5)) = [-1] + x4 + [-1]x3 + [-1]x2   
POL(2221_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + [-1]x2 + [-1]x1   
POL(2272_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + [-1]x2 + [-1]x1   
POL(=(x1, x2)) = 0   
POL(2) = 0   
POL(COND_2332_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + x4 + [-1]x2   
POL(2332_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + [-1]x3 + [-1]x1   
POL(<=(x1, x2)) = 0   
POL(COND_2332_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + [-1]x4 + [-1]x2   
POL(2295_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x4 + x3 + [-1]x1   
POL(COND_2272_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x4 + [-1]x3 + [-1]x2   
POL(COND_2247_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + [-1]x4 + [-1]x2 + [-1]x1   
POL(2247_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x4 + [-1]x3 + [-1]x1   
POL(&&(x1, x2)) = 0   
POL(*(x1, x2)) = 0   
POL(5) = 0   
POL(<(x1, x2)) = 0   
POL(COND_2233_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + x4 + [-1]x2   
POL(2233_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + x3 + [-1]x1   

The following pairs are in P>:

COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))
COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))

The following pairs are in Pbound:

COND_2332_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[11]), x1[11], java.lang.Object(List(x2[11])), x3[11], java.lang.Object(List(x2[11]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[11]))), java.lang.Object(List(java.lang.Object(List(x2[11])))), x2[11], java.lang.Object(List(x1[11])))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))

The following pairs are in P:

COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(<=(x3[10], x0[10]), 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

2221_0_length_ConstantStackPush(x0)12055_0_length_NULL(0, x0)1
2055_0_length_NULL(x0, NULL)12066_0_length_Return(x0)1
2055_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_2055_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))12055_0_length_NULL(+(x1, 1), x0)1
2233_0_length_ConstantStackPush(x0)12055_0_length_NULL(0, x0)1
TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1

(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:
2221_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2233_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2055_0_length_NULL(x0, NULL) → 2066_0_length_Return(x0)
2055_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2055_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2055_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(17): COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])
(16): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(1 = x0[16] % 2, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
(10): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10]))) → COND_2332_1_MAIN_INVOKEMETHOD1(x3[10] <= x0[10], 2066_0_length_Return(x0[10]), x1[10], java.lang.Object(List(x2[10])), x3[10], java.lang.Object(List(x2[10])))
(8): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(x4[8] <= x0[8], 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
(7): 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(6): COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(5): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(4): COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(3): 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(2): COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(1): 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(x4[1] > -1 && x0[1] > -1, 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(0): 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

(17) -> (0), if (2221_0_length_ConstantStackPush(x1[17]) →* 2066_0_length_Return(x0[0])∧x2[17]* x2[0]x3[17]* x3[0]x1[17]* x1[0])


(0) -> (1), if (2233_0_length_ConstantStackPush(x2[0]) →* 2066_0_length_Return(x0[1])∧x1[0]* x1[1]x3[0]* x3[1]x0[0]* x4[1]x2[0]* x2[1])


(1) -> (2), if (x4[1] > -1 && x0[1] > -12066_0_length_Return(x0[1]) →* 2066_0_length_Return(x0[2])∧x1[1]* x1[2]x3[1]* x3[2]x4[1]* x4[2]x2[1]* x2[2])


(2) -> (3), if (2233_0_length_ConstantStackPush(x3[2]) →* 2066_0_length_Return(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x4[2] + x0[2]* x4[3]x3[2]* x3[3])


(3) -> (4), if (x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 52066_0_length_Return(x0[3]) →* 2066_0_length_Return(x0[4])∧x1[3]* x1[4]x2[3]* x2[4]x4[3]* x4[4]x3[3]* x3[4])


(4) -> (5), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[5])∧x2[4]* x2[5]x3[4]* x3[5]x1[4]* x1[5])


(5) -> (6), if (0 = x0[5] % 22066_0_length_Return(x0[5]) →* 2066_0_length_Return(x0[6])∧x2[5]* x2[6]x3[5]* x3[6]x1[5]* x1[6])


(6) -> (7), if (2233_0_length_ConstantStackPush(x2[6]) →* 2066_0_length_Return(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x2[6]* x2[7])


(7) -> (8), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[8])∧x1[7]* x1[8]x2[7]* x2[8]x0[7]* x4[8]x3[7]* java.lang.Object(List(x3[8])))


(7) -> (10), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[10])∧x1[7]* x1[10]x2[7]* java.lang.Object(List(x2[10]))∧x0[7]* x3[10]x3[7]* java.lang.Object(List(x2[10])))


(4) -> (16), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[16])∧x2[4]* x2[16]x3[4]* x3[16]x1[4]* java.lang.Object(List(x1[16])))


(16) -> (17), if (1 = x0[16] % 22066_0_length_Return(x0[16]) →* 2066_0_length_Return(x0[17])∧x2[16]* x2[17]x3[16]* x3[17]java.lang.Object(List(x1[16])) →* java.lang.Object(List(x1[17])))



The set Q consists of the following terms:
2221_0_length_ConstantStackPush(x0)
2233_0_length_ConstantStackPush(x0)
2055_0_length_NULL(x0, NULL)
2055_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_2055_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(33) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 5 less nodes.

(34) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
2221_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2233_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2055_0_length_NULL(x0, NULL) → 2066_0_length_Return(x0)
2055_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2055_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2055_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(16): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(1 = x0[16] % 2, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
(4): COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(3): 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(2): COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(1): 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(x4[1] > -1 && x0[1] > -1, 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(0): 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
(17): COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])

(17) -> (0), if (2221_0_length_ConstantStackPush(x1[17]) →* 2066_0_length_Return(x0[0])∧x2[17]* x2[0]x3[17]* x3[0]x1[17]* x1[0])


(0) -> (1), if (2233_0_length_ConstantStackPush(x2[0]) →* 2066_0_length_Return(x0[1])∧x1[0]* x1[1]x3[0]* x3[1]x0[0]* x4[1]x2[0]* x2[1])


(1) -> (2), if (x4[1] > -1 && x0[1] > -12066_0_length_Return(x0[1]) →* 2066_0_length_Return(x0[2])∧x1[1]* x1[2]x3[1]* x3[2]x4[1]* x4[2]x2[1]* x2[2])


(2) -> (3), if (2233_0_length_ConstantStackPush(x3[2]) →* 2066_0_length_Return(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x4[2] + x0[2]* x4[3]x3[2]* x3[3])


(3) -> (4), if (x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 52066_0_length_Return(x0[3]) →* 2066_0_length_Return(x0[4])∧x1[3]* x1[4]x2[3]* x2[4]x4[3]* x4[4]x3[3]* x3[4])


(4) -> (16), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[16])∧x2[4]* x2[16]x3[4]* x3[16]x1[4]* java.lang.Object(List(x1[16])))


(16) -> (17), if (1 = x0[16] % 22066_0_length_Return(x0[16]) →* 2066_0_length_Return(x0[17])∧x2[16]* x2[17]x3[16]* x3[17]java.lang.Object(List(x1[16])) →* java.lang.Object(List(x1[17])))



The set Q consists of the following terms:
2221_0_length_ConstantStackPush(x0)
2233_0_length_ConstantStackPush(x0)
2055_0_length_NULL(x0, NULL)
2055_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_2055_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(35) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@23c3622c Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) the following chains were created:
  • We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))), COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]) which results in the following constraint:

    (1)    (=(1, %(x0[16], 2))=TRUE2066_0_length_Return(x0[16])=2066_0_length_Return(x0[17])∧x2[16]=x2[17]x3[16]=x3[17]java.lang.Object(List(x1[16]))=java.lang.Object(List(x1[17])) ⇒ 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥))



    We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint:

    (2)    (=(1, %(x0[16], 2))=TRUE2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(3)bni_61 + (-1)Bound*bni_61] + [(4)bni_61]x1[16] + [bni_61]x2[16] ≥ 0∧[2 + (-1)bso_62] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(3)bni_61 + (-1)Bound*bni_61] + [(4)bni_61]x1[16] + [bni_61]x2[16] ≥ 0∧[2 + (-1)bso_62] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(3)bni_61 + (-1)Bound*bni_61] + [(4)bni_61]x1[16] + [bni_61]x2[16] ≥ 0∧[2 + (-1)bso_62] ≥ 0)



    We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (6)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(4)bni_61] ≥ 0∧0 ≥ 0∧[bni_61] ≥ 0∧0 ≥ 0∧[(3)bni_61 + (-1)Bound*bni_61] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_62] ≥ 0)







For Pair COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) the following chains were created:
  • We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) which results in the following constraint:

    (7)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2233_0_length_ConstantStackPush(x1[4])=2066_0_length_Return(x0[16])∧x2[4]=x2[16]x3[4]=x3[16]x1[4]=java.lang.Object(List(x1[16])) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (7) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (8)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2055_0_length_NULL(1, x1[16])=2066_0_length_Return(x0[16]) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), java.lang.Object(List(x1[16])), x2[3], x4[3], x3[3])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), java.lang.Object(List(x1[16])), x2[3], x4[3], x3[3])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x1[16]))), x2[3], x3[3], java.lang.Object(List(x1[16])))∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(3)bni_63 + (-1)Bound*bni_63] + [bni_63]x4[3] + [bni_63]x2[3] + [(8)bni_63]x1[16] ≥ 0∧[(-1)bso_64] + x4[3] + [4]x1[16] ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(3)bni_63 + (-1)Bound*bni_63] + [bni_63]x4[3] + [bni_63]x2[3] + [(8)bni_63]x1[16] ≥ 0∧[(-1)bso_64] + x4[3] + [4]x1[16] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(3)bni_63 + (-1)Bound*bni_63] + [bni_63]x4[3] + [bni_63]x2[3] + [(8)bni_63]x1[16] ≥ 0∧[(-1)bso_64] + x4[3] + [4]x1[16] ≥ 0)



    We simplified constraint (11) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (12)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧0 ≥ 0∧[bni_63] ≥ 0∧[bni_63] ≥ 0∧[(8)bni_63] ≥ 0∧0 ≥ 0∧[(3)bni_63 + (-1)Bound*bni_63] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_64] ≥ 0∧[1] ≥ 0)







For Pair 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) the following chains were created:
  • We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) which results in the following constraint:

    (13)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (13) using rules (I), (II), (IV) which results in the following new constraint:

    (14)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (15)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_65 + (-1)Bound*bni_65] + [bni_65]x4[3] + [bni_65]x2[3] + [(2)bni_65]x1[3] ≥ 0∧[(-1)bso_66] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_65 + (-1)Bound*bni_65] + [bni_65]x4[3] + [bni_65]x2[3] + [(2)bni_65]x1[3] ≥ 0∧[(-1)bso_66] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)bni_65 + (-1)Bound*bni_65] + [bni_65]x4[3] + [bni_65]x2[3] + [(2)bni_65]x1[3] ≥ 0∧[(-1)bso_66] ≥ 0)



    We simplified constraint (17) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧0 ≥ 0∧[bni_65] ≥ 0∧[bni_65] ≥ 0∧[(2)bni_65] ≥ 0∧0 ≥ 0∧[(-1)bni_65 + (-1)Bound*bni_65] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_66] ≥ 0)







For Pair COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) the following chains were created:
  • We consider the chain 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]), 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) which results in the following constraint:

    (19)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2066_0_length_Return(x0[1])=2066_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2233_0_length_ConstantStackPush(x3[2])=2066_0_length_Return(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]+(x4[2], x0[2])=x4[3]x3[2]=x3[3]COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥NonInfC∧COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])∧(UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (19) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (20)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2055_0_length_NULL(0, x3[2])=2066_0_length_Return(x0[3]) ⇒ COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥NonInfC∧COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[1], x2[1], +(x4[1], x0[1]), x3[2])∧(UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (21)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_67 + (-1)Bound*bni_67] + [bni_67]x2[1] + [(2)bni_67]x1[1] ≥ 0∧[(-1)bso_68] ≥ 0)



    We simplified constraint (21) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (22)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_67 + (-1)Bound*bni_67] + [bni_67]x2[1] + [(2)bni_67]x1[1] ≥ 0∧[(-1)bso_68] ≥ 0)



    We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (23)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)bni_67 + (-1)Bound*bni_67] + [bni_67]x2[1] + [(2)bni_67]x1[1] ≥ 0∧[(-1)bso_68] ≥ 0)



    We simplified constraint (23) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (24)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_67] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_67] ≥ 0∧0 ≥ 0∧[(-1)bni_67 + (-1)Bound*bni_67] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_68] ≥ 0)







For Pair 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) the following chains were created:
  • We consider the chain 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) which results in the following constraint:

    (25)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2066_0_length_Return(x0[1])=2066_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (25) using rules (I), (II), (IV) which results in the following new constraint:

    (26)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (26) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (27)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_69 + (-1)Bound*bni_69] + [bni_69]x2[1] + [(2)bni_69]x1[1] ≥ 0∧[(-1)bso_70] ≥ 0)



    We simplified constraint (27) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (28)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_69 + (-1)Bound*bni_69] + [bni_69]x2[1] + [(2)bni_69]x1[1] ≥ 0∧[(-1)bso_70] ≥ 0)



    We simplified constraint (28) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (29)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)bni_69 + (-1)Bound*bni_69] + [bni_69]x2[1] + [(2)bni_69]x1[1] ≥ 0∧[(-1)bso_70] ≥ 0)



    We simplified constraint (29) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (30)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[bni_69] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_69] ≥ 0∧0 ≥ 0∧[(-1)bni_69 + (-1)Bound*bni_69] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_70] ≥ 0)







For Pair 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) the following chains were created:
  • We consider the chain COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (31)    (2221_0_length_ConstantStackPush(x1[17])=2066_0_length_Return(x0[0])∧x2[17]=x2[0]x3[17]=x3[0]x1[17]=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (31) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (32)    (0=x02055_0_length_NULL(x0, x1[17])=2066_0_length_Return(x0[0])∧0=x12055_0_length_NULL(x1, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[17], x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (32) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x0, x1[17])=2066_0_length_Return(x0[0]) which results in the following new constraints:

    (33)    (2066_0_length_Return(x2)=2066_0_length_Return(x0[0])∧0=x20=x12055_0_length_NULL(x1, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (34)    (Cond_2055_0_length_NULL(>(x4, -1), x4, java.lang.Object(List(x3)))=2066_0_length_Return(x0[0])∧0=x40=x12055_0_length_NULL(x1, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x3)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x3)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x3)), x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (33) using rules (I), (II), (III) which results in the following new constraint:

    (35)    (0=x12055_0_length_NULL(x1, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, x3[17], 0, x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (34) using rule (VII) which results in the following new constraint:

    (36)    (>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_2055_0_length_NULL(x10, x4, x11)=2066_0_length_Return(x0[0])∧0=x40=x12055_0_length_NULL(x1, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x3)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x3)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x3)), x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (35) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x1, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (37)    (2066_0_length_Return(x5)=2066_0_length_Return(x0[1])∧0=x52221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (38)    (Cond_2055_0_length_NULL(>(x7, -1), x7, java.lang.Object(List(x6)))=2066_0_length_Return(x0[1])∧0=x72221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x6)), x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x6)), x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x6))), NULL, x3[17], 0, java.lang.Object(List(x6)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (37) using rules (I), (II), (IV) which results in the following new constraint:

    (39)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (38) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (40)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x6)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x6)), x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x6)), x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x6))), NULL, x3[17], 0, java.lang.Object(List(x6)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (39) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (41)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_71] = 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (36) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x1, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (42)    (2066_0_length_Return(x12)=2066_0_length_Return(x0[1])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_2055_0_length_NULL(x10, x4, x11)=2066_0_length_Return(x0[0])∧0=x40=x122221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x3)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x3)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x3)), x3[17], x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (43)    (Cond_2055_0_length_NULL(>(x14, -1), x14, java.lang.Object(List(x13)))=2066_0_length_Return(x0[1])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_2055_0_length_NULL(x10, x4, x11)=2066_0_length_Return(x0[0])∧0=x40=x142221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x13)), x3[17], java.lang.Object(List(x3)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x13)), x3[17], java.lang.Object(List(x3)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x13))), java.lang.Object(List(x3)), x3[17], x0[0], java.lang.Object(List(x13)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (42) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (44)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x3)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x3)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x3)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x3)), x3[17], x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (43) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (45)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x3)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x13)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x13)), x3[17], java.lang.Object(List(x3)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x13)), x3[17], java.lang.Object(List(x3)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x13))), java.lang.Object(List(x3)), x3[17], x0[0], java.lang.Object(List(x13)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (40) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (46)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (44) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (47)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (45) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (48)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (41) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (49)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_71] = 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (47) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (50)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (46) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (51)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (48) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (52)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (49) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (53)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_71] = 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (50) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (54)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (51) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (55)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (52) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (56)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (53) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (57)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_71] = 0∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (54) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (58)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (55) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (59)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_72] ≥ 0)



    We simplified constraint (56) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (60)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_72] ≥ 0)







For Pair COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]) the following chains were created:
  • We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))), COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

    (61)    (=(1, %(x0[16], 2))=TRUE2066_0_length_Return(x0[16])=2066_0_length_Return(x0[17])∧x2[16]=x2[17]x3[16]=x3[17]java.lang.Object(List(x1[16]))=java.lang.Object(List(x1[17]))∧2221_0_length_ConstantStackPush(x1[17])=2066_0_length_Return(x0[0])∧x2[17]=x2[0]x3[17]=x3[0]x1[17]=x1[0]COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17])))≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥))



    We simplified constraint (61) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (62)    (=(1, %(x0[16], 2))=TRUE2055_0_length_NULL(0, x1[17])=2066_0_length_Return(x0[0]) ⇒ COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[17])))≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[17])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[16], x3[16], x1[17])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥))



    We simplified constraint (62) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (63)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[bni_73 + (-1)Bound*bni_73] + [(4)bni_73]x1[17] + [bni_73]x2[16] ≥ 0∧[2 + (-1)bso_74] + [2]x1[17] ≥ 0)



    We simplified constraint (63) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (64)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[bni_73 + (-1)Bound*bni_73] + [(4)bni_73]x1[17] + [bni_73]x2[16] ≥ 0∧[2 + (-1)bso_74] + [2]x1[17] ≥ 0)



    We simplified constraint (64) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (65)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[bni_73 + (-1)Bound*bni_73] + [(4)bni_73]x1[17] + [bni_73]x2[16] ≥ 0∧[2 + (-1)bso_74] + [2]x1[17] ≥ 0)



    We simplified constraint (65) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (66)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(4)bni_73] ≥ 0∧0 ≥ 0∧[bni_73] ≥ 0∧0 ≥ 0∧[bni_73 + (-1)Bound*bni_73] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_74] ≥ 0∧[1] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(4)bni_61] ≥ 0∧0 ≥ 0∧[bni_61] ≥ 0∧0 ≥ 0∧[(3)bni_61 + (-1)Bound*bni_61] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_62] ≥ 0)

  • COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
    • (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧0 ≥ 0∧[bni_63] ≥ 0∧[bni_63] ≥ 0∧[(8)bni_63] ≥ 0∧0 ≥ 0∧[(3)bni_63 + (-1)Bound*bni_63] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_64] ≥ 0∧[1] ≥ 0)

  • 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧0 ≥ 0∧[bni_65] ≥ 0∧[bni_65] ≥ 0∧[(2)bni_65] ≥ 0∧0 ≥ 0∧[(-1)bni_65 + (-1)Bound*bni_65] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_66] ≥ 0)

  • COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
    • (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_67] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_67] ≥ 0∧0 ≥ 0∧[(-1)bni_67 + (-1)Bound*bni_67] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_68] ≥ 0)

  • 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[bni_69] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_69] ≥ 0∧0 ≥ 0∧[(-1)bni_69 + (-1)Bound*bni_69] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_70] ≥ 0)

  • 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_71] = 0∧0 ≥ 0∧[(-1)bso_72] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_72] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_72] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_72] ≥ 0)

  • COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[(4)bni_73] ≥ 0∧0 ≥ 0∧[bni_73] ≥ 0∧0 ≥ 0∧[bni_73 + (-1)Bound*bni_73] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_74] ≥ 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(2221_0_length_ConstantStackPush(x1)) = [2]x1   
POL(2055_0_length_NULL(x1, x2)) = [2]x1   
POL(0) = 0   
POL(2233_0_length_ConstantStackPush(x1)) = 0   
POL(NULL) = 0   
POL(2066_0_length_Return(x1)) = 0   
POL(java.lang.Object(x1)) = [2] + [2]x1   
POL(List(x1)) = [2]x1   
POL(Cond_2055_0_length_NULL(x1, x2, x3)) = [2]x3 + x2   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(2272_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [1] + x4 + x2   
POL(COND_2272_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5)) = [-1] + x5 + x3 + [-1]x2   
POL(=(x1, x2)) = 0   
POL(2) = 0   
POL(COND_2247_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x5 + x4 + [2]x3 + [-1]x2 + [2]x1   
POL(2247_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x4 + x3 + [2]x2   
POL(&&(x1, x2)) = 0   
POL(<=(x1, x2)) = 0   
POL(*(x1, x2)) = 0   
POL(5) = 0   
POL(<(x1, x2)) = 0   
POL(COND_2233_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + [2]x3 + [-1]x2   
POL(2233_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + [2]x2   
POL(2221_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [2]x4 + x2   

The following pairs are in P>:

2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])

The following pairs are in Pbound:

2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])

The following pairs are in P:

COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

2055_0_length_NULL(x0, NULL)12066_0_length_Return(x0)1
&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1
2221_0_length_ConstantStackPush(x0)12055_0_length_NULL(0, x0)1

(36) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
2221_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2233_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2055_0_length_NULL(x0, NULL) → 2066_0_length_Return(x0)
2055_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2055_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2055_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(4): COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(3): 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(2): COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(1): 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(x4[1] > -1 && x0[1] > -1, 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(0): 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

(0) -> (1), if (2233_0_length_ConstantStackPush(x2[0]) →* 2066_0_length_Return(x0[1])∧x1[0]* x1[1]x3[0]* x3[1]x0[0]* x4[1]x2[0]* x2[1])


(1) -> (2), if (x4[1] > -1 && x0[1] > -12066_0_length_Return(x0[1]) →* 2066_0_length_Return(x0[2])∧x1[1]* x1[2]x3[1]* x3[2]x4[1]* x4[2]x2[1]* x2[2])


(2) -> (3), if (2233_0_length_ConstantStackPush(x3[2]) →* 2066_0_length_Return(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x4[2] + x0[2]* x4[3]x3[2]* x3[3])


(3) -> (4), if (x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 52066_0_length_Return(x0[3]) →* 2066_0_length_Return(x0[4])∧x1[3]* x1[4]x2[3]* x2[4]x4[3]* x4[4]x3[3]* x3[4])



The set Q consists of the following terms:
2221_0_length_ConstantStackPush(x0)
2233_0_length_ConstantStackPush(x0)
2055_0_length_NULL(x0, NULL)
2055_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_2055_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(37) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 5 less nodes.

(38) TRUE

(39) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
2221_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2233_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2055_0_length_NULL(x0, NULL) → 2066_0_length_Return(x0)
2055_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2055_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2055_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(17): COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])
(16): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(1 = x0[16] % 2, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
(9): COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
(8): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(x4[8] <= x0[8], 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
(7): 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(6): COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(5): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(4): COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(3): 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(2): COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(1): 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(x4[1] > -1 && x0[1] > -1, 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(0): 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

(9) -> (0), if (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))) →* 2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9])) →* x2[0]x3[9]* x3[0]java.lang.Object(List(x1[9])) →* x1[0])


(17) -> (0), if (2221_0_length_ConstantStackPush(x1[17]) →* 2066_0_length_Return(x0[0])∧x2[17]* x2[0]x3[17]* x3[0]x1[17]* x1[0])


(0) -> (1), if (2233_0_length_ConstantStackPush(x2[0]) →* 2066_0_length_Return(x0[1])∧x1[0]* x1[1]x3[0]* x3[1]x0[0]* x4[1]x2[0]* x2[1])


(1) -> (2), if (x4[1] > -1 && x0[1] > -12066_0_length_Return(x0[1]) →* 2066_0_length_Return(x0[2])∧x1[1]* x1[2]x3[1]* x3[2]x4[1]* x4[2]x2[1]* x2[2])


(2) -> (3), if (2233_0_length_ConstantStackPush(x3[2]) →* 2066_0_length_Return(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x4[2] + x0[2]* x4[3]x3[2]* x3[3])


(3) -> (4), if (x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 52066_0_length_Return(x0[3]) →* 2066_0_length_Return(x0[4])∧x1[3]* x1[4]x2[3]* x2[4]x4[3]* x4[4]x3[3]* x3[4])


(4) -> (5), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[5])∧x2[4]* x2[5]x3[4]* x3[5]x1[4]* x1[5])


(5) -> (6), if (0 = x0[5] % 22066_0_length_Return(x0[5]) →* 2066_0_length_Return(x0[6])∧x2[5]* x2[6]x3[5]* x3[6]x1[5]* x1[6])


(6) -> (7), if (2233_0_length_ConstantStackPush(x2[6]) →* 2066_0_length_Return(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x2[6]* x2[7])


(7) -> (8), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[8])∧x1[7]* x1[8]x2[7]* x2[8]x0[7]* x4[8]x3[7]* java.lang.Object(List(x3[8])))


(8) -> (9), if (x4[8] <= x0[8]2066_0_length_Return(x0[8]) →* 2066_0_length_Return(x0[9])∧x1[8]* x1[9]x2[8]* x2[9]x4[8]* x4[9]java.lang.Object(List(x3[8])) →* java.lang.Object(List(x3[9])))


(4) -> (16), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[16])∧x2[4]* x2[16]x3[4]* x3[16]x1[4]* java.lang.Object(List(x1[16])))


(16) -> (17), if (1 = x0[16] % 22066_0_length_Return(x0[16]) →* 2066_0_length_Return(x0[17])∧x2[16]* x2[17]x3[16]* x3[17]java.lang.Object(List(x1[16])) →* java.lang.Object(List(x1[17])))



The set Q consists of the following terms:
2221_0_length_ConstantStackPush(x0)
2233_0_length_ConstantStackPush(x0)
2055_0_length_NULL(x0, NULL)
2055_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_2055_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(40) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@23c3622c Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]) the following chains were created:
  • We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))), COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

    (1)    (=(1, %(x0[16], 2))=TRUE2066_0_length_Return(x0[16])=2066_0_length_Return(x0[17])∧x2[16]=x2[17]x3[16]=x3[17]java.lang.Object(List(x1[16]))=java.lang.Object(List(x1[17]))∧2221_0_length_ConstantStackPush(x1[17])=2066_0_length_Return(x0[0])∧x2[17]=x2[0]x3[17]=x3[0]x1[17]=x1[0]COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17])))≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥))



    We simplified constraint (1) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (2)    (=(1, %(x0[16], 2))=TRUE2055_0_length_NULL(0, x1[17])=2066_0_length_Return(x0[0]) ⇒ COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[17])))≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[17])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[16], x3[16], x1[17])∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[bni_85 + (-1)Bound*bni_85] + [bni_85]x1[17] + [(2)bni_85]x3[16] + [bni_85]x2[16] ≥ 0∧[1 + (-1)bso_86] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[bni_85 + (-1)Bound*bni_85] + [bni_85]x1[17] + [(2)bni_85]x3[16] + [bni_85]x2[16] ≥ 0∧[1 + (-1)bso_86] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[bni_85 + (-1)Bound*bni_85] + [bni_85]x1[17] + [(2)bni_85]x3[16] + [bni_85]x2[16] ≥ 0∧[1 + (-1)bso_86] ≥ 0)



    We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (6)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[bni_85] ≥ 0∧[(2)bni_85] ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧[bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_86] ≥ 0)







For Pair 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) the following chains were created:
  • We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))), COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]) which results in the following constraint:

    (7)    (=(1, %(x0[16], 2))=TRUE2066_0_length_Return(x0[16])=2066_0_length_Return(x0[17])∧x2[16]=x2[17]x3[16]=x3[17]java.lang.Object(List(x1[16]))=java.lang.Object(List(x1[17])) ⇒ 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥))



    We simplified constraint (7) using rules (I), (II), (IV) which results in the following new constraint:

    (8)    (=(1, %(x0[16], 2))=TRUE2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))≥COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(2)bni_87 + (-1)Bound*bni_87] + [bni_87]x1[16] + [(2)bni_87]x3[16] + [bni_87]x2[16] ≥ 0∧[1 + (-1)bso_88] ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(2)bni_87 + (-1)Bound*bni_87] + [bni_87]x1[16] + [(2)bni_87]x3[16] + [bni_87]x2[16] ≥ 0∧[1 + (-1)bso_88] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[(2)bni_87 + (-1)Bound*bni_87] + [bni_87]x1[16] + [(2)bni_87]x3[16] + [bni_87]x2[16] ≥ 0∧[1 + (-1)bso_88] ≥ 0)



    We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (12)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[bni_87] ≥ 0∧[(2)bni_87] ≥ 0∧[bni_87] ≥ 0∧0 ≥ 0∧[(2)bni_87 + (-1)Bound*bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_88] ≥ 0)







For Pair COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))) the following chains were created:
  • We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

    (13)    (<=(x4[8], x0[8])=TRUE2066_0_length_Return(x0[8])=2066_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9]))∧2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9]))=x2[0]x3[9]=x3[0]java.lang.Object(List(x1[9]))=x1[0]COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (13) using rules (I), (II), (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (14)    (<=(x4[8], x0[8])=TRUE1=x02055_0_length_NULL(x0, x1[9])=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(x1[9])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x0, x1[9])=2066_0_length_Return(x0[0]) which results in the following new constraints:

    (15)    (2066_0_length_Return(x1)=2066_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x1COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))


    (16)    (Cond_2055_0_length_NULL(>(x3, -1), x3, java.lang.Object(List(x2)))=2066_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x3COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x2)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x2)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x2)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint:

    (17)    (<=(x4[8], x0[8])=TRUECOND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (16) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (18)    (<=(x4[8], x0[8])=TRUECond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x2)))=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x2)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x2)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x2)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (17) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (19)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(7)bni_89 + (-1)Bound*bni_89] + [(2)bni_89]x3[8] + [bni_89]x2[8] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (18) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (20)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(6)bni_89 + (-1)Bound*bni_89] + [(2)bni_89]x3[8] + [bni_89]x2[8] + [bni_89]x2 ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (19) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (21)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(7)bni_89 + (-1)Bound*bni_89] + [(2)bni_89]x3[8] + [bni_89]x2[8] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (20) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (22)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(6)bni_89 + (-1)Bound*bni_89] + [(2)bni_89]x3[8] + [bni_89]x2[8] + [bni_89]x2 ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (21) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (23)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(7)bni_89 + (-1)Bound*bni_89] + [(2)bni_89]x3[8] + [bni_89]x2[8] ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (24)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(6)bni_89 + (-1)Bound*bni_89] + [(2)bni_89]x3[8] + [bni_89]x2[8] + [bni_89]x2 ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (23) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (25)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(2)bni_89] ≥ 0∧0 ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧[(7)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)



    We simplified constraint (24) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (26)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(2)bni_89] ≥ 0∧0 ≥ 0∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧[(6)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)







For Pair 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) the following chains were created:
  • We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))) which results in the following constraint:

    (27)    (<=(x4[8], x0[8])=TRUE2066_0_length_Return(x0[8])=2066_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9])) ⇒ 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥))



    We simplified constraint (27) using rules (I), (II), (IV) which results in the following new constraint:

    (28)    (<=(x4[8], x0[8])=TRUE2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥))



    We simplified constraint (28) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (29)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(4)bni_91 + (-1)Bound*bni_91] + [(2)bni_91]x3[8] + [bni_91]x2[8] + [bni_91]x1[8] ≥ 0∧[(-1)bso_92] ≥ 0)



    We simplified constraint (29) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (30)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(4)bni_91 + (-1)Bound*bni_91] + [(2)bni_91]x3[8] + [bni_91]x2[8] + [bni_91]x1[8] ≥ 0∧[(-1)bso_92] ≥ 0)



    We simplified constraint (30) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (31)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(4)bni_91 + (-1)Bound*bni_91] + [(2)bni_91]x3[8] + [bni_91]x2[8] + [bni_91]x1[8] ≥ 0∧[(-1)bso_92] ≥ 0)



    We simplified constraint (31) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (32)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(2)bni_91] ≥ 0∧0 ≥ 0∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧0 ≥ 0∧[(4)bni_91 + (-1)Bound*bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_92] ≥ 0)







For Pair 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) the following chains were created:
  • We consider the chain COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]), 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) which results in the following constraint:

    (33)    (2233_0_length_ConstantStackPush(x2[6])=2066_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]2233_0_length_ConstantStackPush(x3[7])=2066_0_length_Return(x0[8])∧x1[7]=x1[8]x2[7]=x2[8]x0[7]=x4[8]x3[7]=java.lang.Object(List(x3[8])) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (33) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (34)    (0=x62055_0_length_NULL(x6, x2[6])=2066_0_length_Return(x0[7])∧1=x72055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), x2[6])≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), x2[6])≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], x2[6], x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (34) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x6, x2[6])=2066_0_length_Return(x0[7]) which results in the following new constraints:

    (35)    (2066_0_length_Return(x8)=2066_0_length_Return(x0[7])∧0=x81=x72055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], NULL, x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (36)    (Cond_2055_0_length_NULL(>(x10, -1), x10, java.lang.Object(List(x9)))=2066_0_length_Return(x0[7])∧0=x101=x72055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (35) using rules (I), (II), (III) which results in the following new constraint:

    (37)    (1=x72055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(x3[8])), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(x3[8])), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], NULL, 0, java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (36) using rule (VII) which results in the following new constraint:

    (38)    (>(x10, -1)=x16java.lang.Object(List(x9))=x17Cond_2055_0_length_NULL(x16, x10, x17)=2066_0_length_Return(x0[7])∧0=x101=x72055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (37) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) which results in the following new constraints:

    (39)    (2066_0_length_Return(x11)=2066_0_length_Return(x0[8])∧1=x112295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], NULL, 0, java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (40)    (Cond_2055_0_length_NULL(>(x13, -1), x13, java.lang.Object(List(x12)))=2066_0_length_Return(x0[8])∧1=x132295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x12))))), x1[6], NULL, 0, java.lang.Object(List(java.lang.Object(List(x12)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (39) using rules (I), (II), (IV) which results in the following new constraint:

    (41)    (2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], NULL, 0, java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (40) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (42)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x12)))=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x12))))), x1[6], NULL, 0, java.lang.Object(List(java.lang.Object(List(x12)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (41) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (43)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_93] = 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (38) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) which results in the following new constraints:

    (44)    (2066_0_length_Return(x18)=2066_0_length_Return(x0[8])∧>(x10, -1)=x16java.lang.Object(List(x9))=x17Cond_2055_0_length_NULL(x16, x10, x17)=2066_0_length_Return(x0[7])∧0=x101=x182295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (45)    (Cond_2055_0_length_NULL(>(x20, -1), x20, java.lang.Object(List(x19)))=2066_0_length_Return(x0[8])∧>(x10, -1)=x16java.lang.Object(List(x9))=x17Cond_2055_0_length_NULL(x16, x10, x17)=2066_0_length_Return(x0[7])∧0=x101=x202295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x19))))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(java.lang.Object(List(x19)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (44) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (46)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x9)))=2066_0_length_Return(x0[7]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (45) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (47)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x9)))=2066_0_length_Return(x0[7])∧Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x19)))=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x19))))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(java.lang.Object(List(x19)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (42) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (48)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (46) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (49)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (47) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (50)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (43) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (51)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_93] = 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (49) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (52)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (48) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (53)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (50) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (54)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (51) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (55)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_93] = 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (52) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (56)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (53) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (57)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (54) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (58)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (55) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (59)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_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 (56) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (60)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (57) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (61)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (58) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (62)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)







For Pair COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) the following chains were created:
  • We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

    (63)    (=(0, %(x0[5], 2))=TRUE2066_0_length_Return(x0[5])=2066_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]2233_0_length_ConstantStackPush(x2[6])=2066_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])∧(UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (63) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (64)    (=(0, %(x0[5], 2))=TRUE2055_0_length_NULL(0, x2[6])=2066_0_length_Return(x0[7]) ⇒ COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[5], x3[5], x2[6])∧(UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (64) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (65)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)Bound*bni_95] + [bni_95]x1[5] + [(2)bni_95]x3[5] + [bni_95]x2[6] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (65) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (66)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)Bound*bni_95] + [bni_95]x1[5] + [(2)bni_95]x3[5] + [bni_95]x2[6] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (66) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (67)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[(-1)Bound*bni_95] + [bni_95]x1[5] + [(2)bni_95]x3[5] + [bni_95]x2[6] ≥ 0∧[(-1)bso_96] ≥ 0)



    We simplified constraint (67) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (68)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_95] ≥ 0∧[(2)bni_95] ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)







For Pair 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) the following chains were created:
  • We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) which results in the following constraint:

    (69)    (=(0, %(x0[5], 2))=TRUE2066_0_length_Return(x0[5])=2066_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (69) using rules (I), (II), (IV) which results in the following new constraint:

    (70)    (=(0, %(x0[5], 2))=TRUE2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (70) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (71)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)Bound*bni_97] + [bni_97]x1[5] + [(2)bni_97]x3[5] + [bni_97]x2[5] ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (71) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (72)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)Bound*bni_97] + [bni_97]x1[5] + [(2)bni_97]x3[5] + [bni_97]x2[5] ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (72) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (73)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[(-1)Bound*bni_97] + [bni_97]x1[5] + [(2)bni_97]x3[5] + [bni_97]x2[5] ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (73) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (74)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_97] ≥ 0∧[(2)bni_97] ≥ 0∧[bni_97] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)







For Pair COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) the following chains were created:
  • We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) which results in the following constraint:

    (75)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2233_0_length_ConstantStackPush(x1[4])=2066_0_length_Return(x0[5])∧x2[4]=x2[5]x3[4]=x3[5]x1[4]=x1[5]COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (75) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (76)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2055_0_length_NULL(0, x1[4])=2066_0_length_Return(x0[5]) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[3], x3[3], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (76) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (77)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)Bound*bni_99] + [(2)bni_99]x3[3] + [bni_99]x4[3] + [bni_99]x2[3] + [bni_99]x1[4] ≥ 0∧[(-1)bso_100] + x4[3] ≥ 0)



    We simplified constraint (77) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (78)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)Bound*bni_99] + [(2)bni_99]x3[3] + [bni_99]x4[3] + [bni_99]x2[3] + [bni_99]x1[4] ≥ 0∧[(-1)bso_100] + x4[3] ≥ 0)



    We simplified constraint (78) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (79)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(-1)Bound*bni_99] + [(2)bni_99]x3[3] + [bni_99]x4[3] + [bni_99]x2[3] + [bni_99]x1[4] ≥ 0∧[(-1)bso_100] + x4[3] ≥ 0)



    We simplified constraint (79) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (80)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99] ≥ 0∧[bni_99] ≥ 0∧[bni_99] ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)



  • We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) which results in the following constraint:

    (81)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2233_0_length_ConstantStackPush(x1[4])=2066_0_length_Return(x0[16])∧x2[4]=x2[16]x3[4]=x3[16]x1[4]=java.lang.Object(List(x1[16])) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (81) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (82)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2055_0_length_NULL(1, x1[16])=2066_0_length_Return(x0[16]) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), java.lang.Object(List(x1[16])), x2[3], x4[3], x3[3])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), java.lang.Object(List(x1[16])), x2[3], x4[3], x3[3])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x1[16]))), x2[3], x3[3], java.lang.Object(List(x1[16])))∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (82) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (83)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99 + (-1)Bound*bni_99] + [(2)bni_99]x3[3] + [bni_99]x4[3] + [bni_99]x2[3] + [bni_99]x1[16] ≥ 0∧[(-1)bso_100] + x4[3] ≥ 0)



    We simplified constraint (83) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (84)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99 + (-1)Bound*bni_99] + [(2)bni_99]x3[3] + [bni_99]x4[3] + [bni_99]x2[3] + [bni_99]x1[16] ≥ 0∧[(-1)bso_100] + x4[3] ≥ 0)



    We simplified constraint (84) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (85)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99 + (-1)Bound*bni_99] + [(2)bni_99]x3[3] + [bni_99]x4[3] + [bni_99]x2[3] + [bni_99]x1[16] ≥ 0∧[(-1)bso_100] + x4[3] ≥ 0)



    We simplified constraint (85) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (86)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99] ≥ 0∧[bni_99] ≥ 0∧[bni_99] ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧[(2)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)







For Pair 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) the following chains were created:
  • We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) which results in the following constraint:

    (87)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (87) using rules (I), (II), (IV) which results in the following new constraint:

    (88)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (88) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (89)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)Bound*bni_101] + [(2)bni_101]x3[3] + [bni_101]x4[3] + [bni_101]x2[3] + [bni_101]x1[3] ≥ 0∧[(-1)bso_102] ≥ 0)



    We simplified constraint (89) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (90)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)Bound*bni_101] + [(2)bni_101]x3[3] + [bni_101]x4[3] + [bni_101]x2[3] + [bni_101]x1[3] ≥ 0∧[(-1)bso_102] ≥ 0)



    We simplified constraint (90) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (91)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(-1)Bound*bni_101] + [(2)bni_101]x3[3] + [bni_101]x4[3] + [bni_101]x2[3] + [bni_101]x1[3] ≥ 0∧[(-1)bso_102] ≥ 0)



    We simplified constraint (91) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (92)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(2)bni_101] ≥ 0∧[bni_101] ≥ 0∧[bni_101] ≥ 0∧[bni_101] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_101] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)







For Pair COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) the following chains were created:
  • We consider the chain 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]), 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) which results in the following constraint:

    (93)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2066_0_length_Return(x0[1])=2066_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2233_0_length_ConstantStackPush(x3[2])=2066_0_length_Return(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]+(x4[2], x0[2])=x4[3]x3[2]=x3[3]COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥NonInfC∧COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])∧(UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (93) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (94)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2055_0_length_NULL(0, x3[2])=2066_0_length_Return(x0[3]) ⇒ COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥NonInfC∧COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[1], x2[1], +(x4[1], x0[1]), x3[2])∧(UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (94) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (95)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)Bound*bni_103] + [bni_103]x2[1] + [(2)bni_103]x3[2] + [bni_103]x1[1] ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (95) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (96)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)Bound*bni_103] + [bni_103]x2[1] + [(2)bni_103]x3[2] + [bni_103]x1[1] ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (96) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (97)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[(-1)Bound*bni_103] + [bni_103]x2[1] + [(2)bni_103]x3[2] + [bni_103]x1[1] ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (97) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (98)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_103] ≥ 0∧0 ≥ 0∧[(2)bni_103] ≥ 0∧[bni_103] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)







For Pair 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) the following chains were created:
  • We consider the chain 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) which results in the following constraint:

    (99)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2066_0_length_Return(x0[1])=2066_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (99) using rules (I), (II), (IV) which results in the following new constraint:

    (100)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (100) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (101)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)Bound*bni_105] + [bni_105]x2[1] + [(2)bni_105]x3[1] + [bni_105]x1[1] ≥ 0∧[(-1)bso_106] ≥ 0)



    We simplified constraint (101) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (102)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)Bound*bni_105] + [bni_105]x2[1] + [(2)bni_105]x3[1] + [bni_105]x1[1] ≥ 0∧[(-1)bso_106] ≥ 0)



    We simplified constraint (102) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (103)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[(-1)Bound*bni_105] + [bni_105]x2[1] + [(2)bni_105]x3[1] + [bni_105]x1[1] ≥ 0∧[(-1)bso_106] ≥ 0)



    We simplified constraint (103) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (104)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[bni_105] ≥ 0∧0 ≥ 0∧[(2)bni_105] ≥ 0∧[bni_105] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_105] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_106] ≥ 0)







For Pair 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) the following chains were created:
  • We consider the chain COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (105)    (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9]))=x2[0]x3[9]=x3[0]java.lang.Object(List(x1[9]))=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (105) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (106)    (1=x232055_0_length_NULL(x23, x1[9])=2066_0_length_Return(x0[0])∧1=x242055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(x1[9])), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (106) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x23, x1[9])=2066_0_length_Return(x0[0]) which results in the following new constraints:

    (107)    (2066_0_length_Return(x25)=2066_0_length_Return(x0[0])∧1=x251=x242055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(NULL)), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (108)    (Cond_2055_0_length_NULL(>(x27, -1), x27, java.lang.Object(List(x26)))=2066_0_length_Return(x0[0])∧1=x271=x242055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (107) using rules (I), (II), (III) which results in the following new constraint:

    (109)    (1=x242055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (108) using rule (VII) which results in the following new constraint:

    (110)    (>(x27, -1)=x33java.lang.Object(List(x26))=x34Cond_2055_0_length_NULL(x33, x27, x34)=2066_0_length_Return(x0[0])∧1=x271=x242055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (109) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (111)    (2066_0_length_Return(x28)=2066_0_length_Return(x0[1])∧1=x282221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (112)    (Cond_2055_0_length_NULL(>(x30, -1), x30, java.lang.Object(List(x29)))=2066_0_length_Return(x0[1])∧1=x302221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x29)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x29)))), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x29))))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(java.lang.Object(List(x29)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (111) using rules (I), (II), (IV) which results in the following new constraint:

    (113)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (112) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (114)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x29)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x29)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x29)))), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x29))))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(java.lang.Object(List(x29)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (113) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (115)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_107] = 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (110) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (116)    (2066_0_length_Return(x35)=2066_0_length_Return(x0[1])∧>(x27, -1)=x33java.lang.Object(List(x26))=x34Cond_2055_0_length_NULL(x33, x27, x34)=2066_0_length_Return(x0[0])∧1=x271=x352221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (117)    (Cond_2055_0_length_NULL(>(x37, -1), x37, java.lang.Object(List(x36)))=2066_0_length_Return(x0[1])∧>(x27, -1)=x33java.lang.Object(List(x26))=x34Cond_2055_0_length_NULL(x33, x27, x34)=2066_0_length_Return(x0[0])∧1=x271=x372221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x36)))), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x36)))), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x36))))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(java.lang.Object(List(x36)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (116) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (118)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x26)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (117) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (119)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x26)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x36)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x36)))), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x36)))), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x36))))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(java.lang.Object(List(x36)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (114) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (120)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (118) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (121)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (119) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (122)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (115) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (123)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_107] = 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (121) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (124)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (120) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (125)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (122) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (126)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (123) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (127)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_107] = 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (124) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (128)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (125) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (129)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (126) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (130)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (127) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (131)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_107] = 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (128) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (132)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (129) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (133)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (130) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (134)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



  • We consider the chain COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17]), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (135)    (2221_0_length_ConstantStackPush(x1[17])=2066_0_length_Return(x0[0])∧x2[17]=x2[0]x3[17]=x3[0]x1[17]=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (135) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (136)    (0=x402055_0_length_NULL(x40, x1[17])=2066_0_length_Return(x0[0])∧0=x412055_0_length_NULL(x41, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], x1[17])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[17], x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (136) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x40, x1[17])=2066_0_length_Return(x0[0]) which results in the following new constraints:

    (137)    (2066_0_length_Return(x42)=2066_0_length_Return(x0[0])∧0=x420=x412055_0_length_NULL(x41, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (138)    (Cond_2055_0_length_NULL(>(x44, -1), x44, java.lang.Object(List(x43)))=2066_0_length_Return(x0[0])∧0=x440=x412055_0_length_NULL(x41, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x43)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x43)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x43)), x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (137) using rules (I), (II), (III) which results in the following new constraint:

    (139)    (0=x412055_0_length_NULL(x41, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x2[0], x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), NULL, x3[17], 0, x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (138) using rule (VII) which results in the following new constraint:

    (140)    (>(x44, -1)=x50java.lang.Object(List(x43))=x51Cond_2055_0_length_NULL(x50, x44, x51)=2066_0_length_Return(x0[0])∧0=x440=x412055_0_length_NULL(x41, x2[0])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x43)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[17], java.lang.Object(List(x43)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), java.lang.Object(List(x43)), x3[17], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (139) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x41, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (141)    (2066_0_length_Return(x45)=2066_0_length_Return(x0[1])∧0=x452221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (142)    (Cond_2055_0_length_NULL(>(x47, -1), x47, java.lang.Object(List(x46)))=2066_0_length_Return(x0[1])∧0=x472221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x46)), x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x46)), x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x46))), NULL, x3[17], 0, java.lang.Object(List(x46)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (141) using rules (I), (II), (IV) which results in the following new constraint:

    (143)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), NULL, x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), NULL, x3[17], 0, NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (142) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (144)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x46)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x46)), x3[17], NULL)≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), java.lang.Object(List(x46)), x3[17], NULL)≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x46))), NULL, x3[17], 0, java.lang.Object(List(x46)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (143) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (145)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_107] = 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (140) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x41, x2[0])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (146)    (2066_0_length_Return(x52)=2066_0_length_Return(x0[1])∧>(x44, -1)=x50java.lang.Object(List(x43))=x51Cond_2055_0_length_NULL(x50, x44, x51)=2066_0_length_Return(x0[0])∧0=x440=x522221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x43)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x43)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x43)), x3[17], x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (147)    (Cond_2055_0_length_NULL(>(x54, -1), x54, java.lang.Object(List(x53)))=2066_0_length_Return(x0[1])∧>(x44, -1)=x50java.lang.Object(List(x43))=x51Cond_2055_0_length_NULL(x50, x44, x51)=2066_0_length_Return(x0[0])∧0=x440=x542221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x53)), x3[17], java.lang.Object(List(x43)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x53)), x3[17], java.lang.Object(List(x43)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x53))), java.lang.Object(List(x43)), x3[17], x0[0], java.lang.Object(List(x53)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (146) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (148)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x43)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x43)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), NULL, x3[17], java.lang.Object(List(x43)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(NULL), java.lang.Object(List(x43)), x3[17], x0[0], NULL)∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (147) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (149)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x43)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x53)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x53)), x3[17], java.lang.Object(List(x43)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x53)), x3[17], java.lang.Object(List(x43)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x53))), java.lang.Object(List(x43)), x3[17], x0[0], java.lang.Object(List(x53)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (144) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (150)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (148) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (151)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (149) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (152)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (145) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (153)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_107] = 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (151) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (154)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (150) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (155)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (152) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (156)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (153) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (157)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_107] = 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (154) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (158)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (155) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (159)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (156) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (160)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (157) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (161)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_107] = 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (158) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (162)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (159) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (163)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)



    We simplified constraint (160) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (164)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])), ≥)∧[bni_85] ≥ 0∧[(2)bni_85] ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧[bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_86] ≥ 0)

  • 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))), ≥)∧[bni_87] ≥ 0∧[(2)bni_87] ≥ 0∧[bni_87] ≥ 0∧0 ≥ 0∧[(2)bni_87 + (-1)Bound*bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_88] ≥ 0)

  • COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(2)bni_89] ≥ 0∧0 ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧[(7)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[(2)bni_89] ≥ 0∧0 ≥ 0∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧[(6)bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)

  • 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(2)bni_91] ≥ 0∧0 ≥ 0∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧0 ≥ 0∧[(4)bni_91 + (-1)Bound*bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_92] ≥ 0)

  • 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_93] = 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)

  • COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
    • (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_95] ≥ 0∧[(2)bni_95] ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)

  • 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_97] ≥ 0∧[(2)bni_97] ≥ 0∧[bni_97] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)

  • COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
    • (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99] ≥ 0∧[bni_99] ≥ 0∧[bni_99] ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[(2)bni_99] ≥ 0∧[bni_99] ≥ 0∧[bni_99] ≥ 0∧[bni_99] ≥ 0∧0 ≥ 0∧[(2)bni_99 + (-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)

  • 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[(2)bni_101] ≥ 0∧[bni_101] ≥ 0∧[bni_101] ≥ 0∧[bni_101] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_101] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

  • COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
    • (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_103] ≥ 0∧0 ≥ 0∧[(2)bni_103] ≥ 0∧[bni_103] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)

  • 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[bni_105] ≥ 0∧0 ≥ 0∧[(2)bni_105] ≥ 0∧[bni_105] ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_105] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_106] ≥ 0)

  • 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_107] = 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_107] = 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for non-tuple symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(2221_0_length_ConstantStackPush(x1)) = 0   
POL(2055_0_length_NULL(x1, x2)) = 0   
POL(0) = 0   
POL(2233_0_length_ConstantStackPush(x1)) = 0   
POL(NULL) = [3]   
POL(2066_0_length_Return(x1)) = 0   
POL(java.lang.Object(x1)) = [2] + x1   
POL(List(x1)) = x1   
POL(Cond_2055_0_length_NULL(x1, x2, x3)) = 0   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(COND_2272_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5)) = [-1] + x5 + [2]x4 + x3 + [-1]x2   
POL(2221_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = x4 + [2]x3 + x2 + [-1]x1   
POL(2272_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = x4 + [2]x3 + x2 + [-1]x1   
POL(=(x1, x2)) = 0   
POL(2) = 0   
POL(COND_2332_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [2]x6 + x4 + x3 + [-1]x2   
POL(2332_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [2]x5 + x3 + x2 + [-1]x1   
POL(<=(x1, x2)) = 0   
POL(2295_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = x4 + [2]x3 + x2 + [-1]x1   
POL(COND_2272_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = x5 + [2]x4 + x3 + [-1]x2   
POL(COND_2247_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [2]x6 + x5 + x4 + x3 + [-1]x2   
POL(2247_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [2]x5 + x4 + x3 + x2 + [-1]x1   
POL(&&(x1, x2)) = 0   
POL(*(x1, x2)) = 0   
POL(5) = 0   
POL(<(x1, x2)) = 0   
POL(COND_2233_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = x6 + [2]x4 + x3 + [-1]x2 + [2]x1   
POL(2233_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = x5 + [2]x3 + x2 + [-1]x1   

The following pairs are in P>:

COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))

The following pairs are in Pbound:

COND_2272_1_MAIN_INVOKEMETHOD1(TRUE, 2066_0_length_Return(x0[17]), x2[17], x3[17], java.lang.Object(List(x1[17]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(x1[17]), x2[17], x3[17], x1[17])
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16]))) → COND_2272_1_MAIN_INVOKEMETHOD1(=(1, %(x0[16], 2)), 2066_0_length_Return(x0[16]), x2[16], x3[16], java.lang.Object(List(x1[16])))
COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])

The following pairs are in P:

COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

2055_0_length_NULL(0, x0)12221_0_length_ConstantStackPush(x0)1
2066_0_length_Return(x0)12055_0_length_NULL(x0, NULL)1
Cond_2055_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))12055_0_length_NULL(x1, java.lang.Object(List(x0)))1
2055_0_length_NULL(+(x1, 1), x0)1Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1
2233_0_length_ConstantStackPush(x0)12055_0_length_NULL(0, x0)1
&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1

(41) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
2221_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2233_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2055_0_length_NULL(x0, NULL) → 2066_0_length_Return(x0)
2055_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2055_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2055_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(9): COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
(8): 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(x4[8] <= x0[8], 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
(7): 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(6): COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(5): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(4): COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(3): 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(2): COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(1): 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(x4[1] > -1 && x0[1] > -1, 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(0): 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

(9) -> (0), if (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))) →* 2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9])) →* x2[0]x3[9]* x3[0]java.lang.Object(List(x1[9])) →* x1[0])


(0) -> (1), if (2233_0_length_ConstantStackPush(x2[0]) →* 2066_0_length_Return(x0[1])∧x1[0]* x1[1]x3[0]* x3[1]x0[0]* x4[1]x2[0]* x2[1])


(1) -> (2), if (x4[1] > -1 && x0[1] > -12066_0_length_Return(x0[1]) →* 2066_0_length_Return(x0[2])∧x1[1]* x1[2]x3[1]* x3[2]x4[1]* x4[2]x2[1]* x2[2])


(2) -> (3), if (2233_0_length_ConstantStackPush(x3[2]) →* 2066_0_length_Return(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x4[2] + x0[2]* x4[3]x3[2]* x3[3])


(3) -> (4), if (x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 52066_0_length_Return(x0[3]) →* 2066_0_length_Return(x0[4])∧x1[3]* x1[4]x2[3]* x2[4]x4[3]* x4[4]x3[3]* x3[4])


(4) -> (5), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[5])∧x2[4]* x2[5]x3[4]* x3[5]x1[4]* x1[5])


(5) -> (6), if (0 = x0[5] % 22066_0_length_Return(x0[5]) →* 2066_0_length_Return(x0[6])∧x2[5]* x2[6]x3[5]* x3[6]x1[5]* x1[6])


(6) -> (7), if (2233_0_length_ConstantStackPush(x2[6]) →* 2066_0_length_Return(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x2[6]* x2[7])


(7) -> (8), if (2233_0_length_ConstantStackPush(x3[7]) →* 2066_0_length_Return(x0[8])∧x1[7]* x1[8]x2[7]* x2[8]x0[7]* x4[8]x3[7]* java.lang.Object(List(x3[8])))


(8) -> (9), if (x4[8] <= x0[8]2066_0_length_Return(x0[8]) →* 2066_0_length_Return(x0[9])∧x1[8]* x1[9]x2[8]* x2[9]x4[8]* x4[9]java.lang.Object(List(x3[8])) →* java.lang.Object(List(x3[9])))



The set Q consists of the following terms:
2221_0_length_ConstantStackPush(x0)
2233_0_length_ConstantStackPush(x0)
2055_0_length_NULL(x0, NULL)
2055_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_2055_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(42) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@23c3622c Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))) the following chains were created:
  • We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) which results in the following constraint:

    (1)    (<=(x4[8], x0[8])=TRUE2066_0_length_Return(x0[8])=2066_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9]))∧2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9]))=x2[0]x3[9]=x3[0]java.lang.Object(List(x1[9]))=x1[0]COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (1) using rules (I), (II), (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (2)    (<=(x4[8], x0[8])=TRUE1=x02055_0_length_NULL(x0, x1[9])=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), x1[9], x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(x1[9])))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x0, x1[9])=2066_0_length_Return(x0[0]) which results in the following new constraints:

    (3)    (2066_0_length_Return(x1)=2066_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x1COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))


    (4)    (Cond_2055_0_length_NULL(>(x3, -1), x3, java.lang.Object(List(x2)))=2066_0_length_Return(x0[0])∧<=(x4[8], x0[8])=TRUE1=x3COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x2)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x2)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x2)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (3) using rules (I), (II), (IV) which results in the following new constraint:

    (5)    (<=(x4[8], x0[8])=TRUECOND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), NULL, x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(NULL)))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (4) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (6)    (<=(x4[8], x0[8])=TRUECond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x2)))=2066_0_length_Return(x0[0]) ⇒ COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x2)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[8]), java.lang.Object(List(x2)), x2[8], x4[8], java.lang.Object(List(x3[8])))≥2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x2))))), java.lang.Object(List(x2[8])), x3[8], java.lang.Object(List(java.lang.Object(List(x2)))))∧(UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥))



    We simplified constraint (5) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (7)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_79 + (-1)Bound*bni_79] + [bni_79]x3[8] ≥ 0∧[(-1)bso_80] ≥ 0)



    We simplified constraint (6) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_79 + (-1)Bound*bni_79] + [bni_79]x3[8] ≥ 0∧[(-1)bso_80] ≥ 0)



    We simplified constraint (7) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_79 + (-1)Bound*bni_79] + [bni_79]x3[8] ≥ 0∧[(-1)bso_80] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_79 + (-1)Bound*bni_79] + [bni_79]x3[8] ≥ 0∧[(-1)bso_80] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_79 + (-1)Bound*bni_79] + [bni_79]x3[8] ≥ 0∧[(-1)bso_80] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (12)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_79 + (-1)Bound*bni_79] + [bni_79]x3[8] ≥ 0∧[(-1)bso_80] ≥ 0)



    We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (13)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_79 + (-1)Bound*bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_80] ≥ 0)



    We simplified constraint (12) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (14)    (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_79 + (-1)Bound*bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_80] ≥ 0)







For Pair 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) the following chains were created:
  • We consider the chain 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))), COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))) which results in the following constraint:

    (15)    (<=(x4[8], x0[8])=TRUE2066_0_length_Return(x0[8])=2066_0_length_Return(x0[9])∧x1[8]=x1[9]x2[8]=x2[9]x4[8]=x4[9]java.lang.Object(List(x3[8]))=java.lang.Object(List(x3[9])) ⇒ 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥))



    We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint:

    (16)    (<=(x4[8], x0[8])=TRUE2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥NonInfC∧2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))≥COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))∧(UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥))



    We simplified constraint (16) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (17)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(2)bni_81 + (-1)Bound*bni_81] + [bni_81]x3[8] + [bni_81]x4[8] + [bni_81]x0[8] ≥ 0∧[1 + (-1)bso_82] + x4[8] + x0[8] ≥ 0)



    We simplified constraint (17) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(2)bni_81 + (-1)Bound*bni_81] + [bni_81]x3[8] + [bni_81]x4[8] + [bni_81]x0[8] ≥ 0∧[1 + (-1)bso_82] + x4[8] + x0[8] ≥ 0)



    We simplified constraint (18) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (19)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[(2)bni_81 + (-1)Bound*bni_81] + [bni_81]x3[8] + [bni_81]x4[8] + [bni_81]x0[8] ≥ 0∧[1 + (-1)bso_82] + x4[8] + x0[8] ≥ 0)



    We simplified constraint (19) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (20)    (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[bni_81] ≥ 0∧[bni_81] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_81] ≥ 0∧[(2)bni_81 + (-1)Bound*bni_81] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1 + (-1)bso_82] ≥ 0)







For Pair 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) the following chains were created:
  • We consider the chain COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]), 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) which results in the following constraint:

    (21)    (2233_0_length_ConstantStackPush(x2[6])=2066_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]2233_0_length_ConstantStackPush(x3[7])=2066_0_length_Return(x0[8])∧x1[7]=x1[8]x2[7]=x2[8]x0[7]=x4[8]x3[7]=java.lang.Object(List(x3[8])) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7])≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (21) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (22)    (0=x62055_0_length_NULL(x6, x2[6])=2066_0_length_Return(x0[7])∧1=x72055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), x2[6])≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), x2[6])≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], x2[6], x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (22) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x6, x2[6])=2066_0_length_Return(x0[7]) which results in the following new constraints:

    (23)    (2066_0_length_Return(x8)=2066_0_length_Return(x0[7])∧0=x81=x72055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], NULL, x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (24)    (Cond_2055_0_length_NULL(>(x10, -1), x10, java.lang.Object(List(x9)))=2066_0_length_Return(x0[7])∧0=x101=x72055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (23) using rules (I), (II), (III) which results in the following new constraint:

    (25)    (1=x72055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(x3[8])), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(x3[8])), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], NULL, 0, java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (24) using rule (VII) which results in the following new constraint:

    (26)    (>(x10, -1)=x16java.lang.Object(List(x9))=x17Cond_2055_0_length_NULL(x16, x10, x17)=2066_0_length_Return(x0[7])∧0=x101=x72055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(x3[8])), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x3[8]))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(x3[8])))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (25) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) which results in the following new constraints:

    (27)    (2066_0_length_Return(x11)=2066_0_length_Return(x0[8])∧1=x112295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], NULL, 0, java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (28)    (Cond_2055_0_length_NULL(>(x13, -1), x13, java.lang.Object(List(x12)))=2066_0_length_Return(x0[8])∧1=x132295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x12))))), x1[6], NULL, 0, java.lang.Object(List(java.lang.Object(List(x12)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (27) using rules (I), (II), (IV) which results in the following new constraint:

    (29)    (2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(NULL)), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], NULL, 0, java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (28) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (30)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x12)))=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), NULL)≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(0), x1[6], java.lang.Object(List(java.lang.Object(List(x12)))), NULL)≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x12))))), x1[6], NULL, 0, java.lang.Object(List(java.lang.Object(List(x12)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (29) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (31)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_83] = 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (26) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x7, x3[8])=2066_0_length_Return(x0[8]) which results in the following new constraints:

    (32)    (2066_0_length_Return(x18)=2066_0_length_Return(x0[8])∧>(x10, -1)=x16java.lang.Object(List(x9))=x17Cond_2055_0_length_NULL(x16, x10, x17)=2066_0_length_Return(x0[7])∧0=x101=x182295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))


    (33)    (Cond_2055_0_length_NULL(>(x20, -1), x20, java.lang.Object(List(x19)))=2066_0_length_Return(x0[8])∧>(x10, -1)=x16java.lang.Object(List(x9))=x17Cond_2055_0_length_NULL(x16, x10, x17)=2066_0_length_Return(x0[7])∧0=x101=x202295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x19))))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(java.lang.Object(List(x19)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (32) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (34)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x9)))=2066_0_length_Return(x0[7]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(NULL)), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(NULL)))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (33) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (35)    (Cond_2055_0_length_NULL(TRUE, 0, java.lang.Object(List(x9)))=2066_0_length_Return(x0[7])∧Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x19)))=2066_0_length_Return(x0[8]) ⇒ 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), java.lang.Object(List(x9)))≥NonInfC∧2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[6], java.lang.Object(List(java.lang.Object(List(x19)))), java.lang.Object(List(x9)))≥2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x19))))), x1[6], java.lang.Object(List(x9)), x0[7], java.lang.Object(List(java.lang.Object(List(x19)))))∧(UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥))



    We simplified constraint (30) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (36)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (34) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (37)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] + x0[7] ≥ 0)



    We simplified constraint (35) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (38)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] + x0[7] ≥ 0)



    We simplified constraint (31) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (39)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_83] = 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (37) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (40)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] + x0[7] ≥ 0)



    We simplified constraint (36) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (41)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (38) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (42)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] + x0[7] ≥ 0)



    We simplified constraint (39) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (43)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_83] = 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (40) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (44)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] + x0[7] ≥ 0)



    We simplified constraint (41) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (45)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (42) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (46)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧[(-1)bso_84] + x0[7] ≥ 0)



    We simplified constraint (43) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (47)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_83] = 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (44) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (48)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (45) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (49)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)



    We simplified constraint (46) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (50)    ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_84] ≥ 0)







For Pair COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) the following chains were created:
  • We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]), 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7]) which results in the following constraint:

    (51)    (=(0, %(x0[5], 2))=TRUE2066_0_length_Return(x0[5])=2066_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]2233_0_length_ConstantStackPush(x2[6])=2066_0_length_Return(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6])≥2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])∧(UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (51) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (52)    (=(0, %(x0[5], 2))=TRUE2055_0_length_NULL(0, x2[6])=2066_0_length_Return(x0[7]) ⇒ COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥NonInfC∧COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[5]), x2[6], x3[5], x1[5])≥2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[5], x3[5], x2[6])∧(UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥))



    We simplified constraint (52) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (53)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_85 + (-1)Bound*bni_85] + [bni_85]x3[5] ≥ 0∧[(-1)bso_86] ≥ 0)



    We simplified constraint (53) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (54)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_85 + (-1)Bound*bni_85] + [bni_85]x3[5] ≥ 0∧[(-1)bso_86] ≥ 0)



    We simplified constraint (54) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (55)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧[bni_85 + (-1)Bound*bni_85] + [bni_85]x3[5] ≥ 0∧[(-1)bso_86] ≥ 0)



    We simplified constraint (55) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (56)    (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_86] ≥ 0)







For Pair 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) the following chains were created:
  • We consider the chain 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]), COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6]) which results in the following constraint:

    (57)    (=(0, %(x0[5], 2))=TRUE2066_0_length_Return(x0[5])=2066_0_length_Return(x0[6])∧x2[5]=x2[6]x3[5]=x3[6]x1[5]=x1[6]2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (57) using rules (I), (II), (IV) which results in the following new constraint:

    (58)    (=(0, %(x0[5], 2))=TRUE2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥NonInfC∧2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])≥COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])∧(UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥))



    We simplified constraint (58) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (59)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_87 + (-1)Bound*bni_87] + [bni_87]x3[5] + [bni_87]x0[5] ≥ 0∧[(-1)bso_88] + x0[5] ≥ 0)



    We simplified constraint (59) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (60)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_87 + (-1)Bound*bni_87] + [bni_87]x3[5] + [bni_87]x0[5] ≥ 0∧[(-1)bso_88] + x0[5] ≥ 0)



    We simplified constraint (60) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (61)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧[bni_87 + (-1)Bound*bni_87] + [bni_87]x3[5] + [bni_87]x0[5] ≥ 0∧[(-1)bso_88] + x0[5] ≥ 0)



    We simplified constraint (61) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (62)    (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧0 ≥ 0∧[bni_87] ≥ 0∧0 ≥ 0∧[bni_87] ≥ 0∧[bni_87 + (-1)Bound*bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_88] ≥ 0)







For Pair COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) the following chains were created:
  • We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]), 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) which results in the following constraint:

    (63)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2233_0_length_ConstantStackPush(x1[4])=2066_0_length_Return(x0[5])∧x2[4]=x2[5]x3[4]=x3[5]x1[4]=x1[5]COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (63) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (64)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2055_0_length_NULL(0, x1[4])=2066_0_length_Return(x0[5]) ⇒ COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥NonInfC∧COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[3]), x1[4], x2[3], x4[3], x3[3])≥2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[3], x3[3], x1[4])∧(UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥))



    We simplified constraint (64) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (65)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_89 + (-1)Bound*bni_89] + [bni_89]x3[3] + [bni_89]x4[3] ≥ 0∧[(-1)bso_90] + x4[3] ≥ 0)



    We simplified constraint (65) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (66)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_89 + (-1)Bound*bni_89] + [bni_89]x3[3] + [bni_89]x4[3] ≥ 0∧[(-1)bso_90] + x4[3] ≥ 0)



    We simplified constraint (66) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (67)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_89 + (-1)Bound*bni_89] + [bni_89]x3[3] + [bni_89]x4[3] ≥ 0∧[(-1)bso_90] + x4[3] ≥ 0)



    We simplified constraint (67) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (68)    (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)







For Pair 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) the following chains were created:
  • We consider the chain 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]), COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4]) which results in the following constraint:

    (69)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2066_0_length_Return(x0[3])=2066_0_length_Return(x0[4])∧x1[3]=x1[4]x2[3]=x2[4]x4[3]=x4[4]x3[3]=x3[4]2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (69) using rules (I), (II), (IV) which results in the following new constraint:

    (70)    (&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5))))=TRUE2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥NonInfC∧2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])≥COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])∧(UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥))



    We simplified constraint (70) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (71)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_91 + (-1)Bound*bni_91] + [bni_91]x3[3] + [bni_91]x4[3] + [bni_91]x0[3] ≥ 0∧[(-1)bso_92] + x0[3] ≥ 0)



    We simplified constraint (71) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (72)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_91 + (-1)Bound*bni_91] + [bni_91]x3[3] + [bni_91]x4[3] + [bni_91]x0[3] ≥ 0∧[(-1)bso_92] + x0[3] ≥ 0)



    We simplified constraint (72) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (73)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_91 + (-1)Bound*bni_91] + [bni_91]x3[3] + [bni_91]x4[3] + [bni_91]x0[3] ≥ 0∧[(-1)bso_92] + x0[3] ≥ 0)



    We simplified constraint (73) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (74)    (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_91] ≥ 0∧[bni_91 + (-1)Bound*bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_92] ≥ 0)







For Pair COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) the following chains were created:
  • We consider the chain 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]), 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) which results in the following constraint:

    (75)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2066_0_length_Return(x0[1])=2066_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2233_0_length_ConstantStackPush(x3[2])=2066_0_length_Return(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]+(x4[2], x0[2])=x4[3]x3[2]=x3[3]COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥NonInfC∧COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2])≥2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])∧(UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (75) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (76)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2055_0_length_NULL(0, x3[2])=2066_0_length_Return(x0[3]) ⇒ COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥NonInfC∧COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[1]), x1[1], x3[2], x4[1], x2[1])≥2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[1], x2[1], +(x4[1], x0[1]), x3[2])∧(UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥))



    We simplified constraint (76) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (77)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_93 + (-1)Bound*bni_93] + [bni_93]x3[2] ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (77) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (78)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_93 + (-1)Bound*bni_93] + [bni_93]x3[2] ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (78) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (79)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧[bni_93 + (-1)Bound*bni_93] + [bni_93]x3[2] ≥ 0∧[(-1)bso_94] ≥ 0)



    We simplified constraint (79) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (80)    (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_93 + (-1)Bound*bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)







For Pair 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) the following chains were created:
  • We consider the chain 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]), COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2]) which results in the following constraint:

    (81)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2066_0_length_Return(x0[1])=2066_0_length_Return(x0[2])∧x1[1]=x1[2]x3[1]=x3[2]x4[1]=x4[2]x2[1]=x2[2]2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (81) using rules (I), (II), (IV) which results in the following new constraint:

    (82)    (&&(>(x4[1], -1), >(x0[1], -1))=TRUE2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥NonInfC∧2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])≥COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])∧(UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥))



    We simplified constraint (82) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (83)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[bni_95 + (-1)Bound*bni_95] + [bni_95]x4[1] + [bni_95]x3[1] + [bni_95]x0[1] ≥ 0∧[(-1)bso_96] + x4[1] + x0[1] ≥ 0)



    We simplified constraint (83) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (84)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[bni_95 + (-1)Bound*bni_95] + [bni_95]x4[1] + [bni_95]x3[1] + [bni_95]x0[1] ≥ 0∧[(-1)bso_96] + x4[1] + x0[1] ≥ 0)



    We simplified constraint (84) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (85)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧[bni_95 + (-1)Bound*bni_95] + [bni_95]x4[1] + [bni_95]x3[1] + [bni_95]x0[1] ≥ 0∧[(-1)bso_96] + x4[1] + x0[1] ≥ 0)



    We simplified constraint (85) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (86)    (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧0 ≥ 0∧[bni_95] ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧[bni_95] ≥ 0∧[bni_95 + (-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_96] ≥ 0)







For Pair 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]) the following chains were created:
  • We consider the chain COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9]))), 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0]), 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) which results in the following constraint:

    (87)    (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9])))=2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9]))=x2[0]x3[9]=x3[0]java.lang.Object(List(x1[9]))=x1[0]2233_0_length_ConstantStackPush(x2[0])=2066_0_length_Return(x0[1])∧x1[0]=x1[1]x3[0]=x3[1]x0[0]=x4[1]x2[0]=x2[1]2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0])≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (87) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (88)    (1=x232055_0_length_NULL(x23, x1[9])=2066_0_length_Return(x0[0])∧1=x242055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(x1[9])), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (88) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x23, x1[9])=2066_0_length_Return(x0[0]) which results in the following new constraints:

    (89)    (2066_0_length_Return(x25)=2066_0_length_Return(x0[0])∧1=x251=x242055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(NULL)), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (90)    (Cond_2055_0_length_NULL(>(x27, -1), x27, java.lang.Object(List(x26)))=2066_0_length_Return(x0[0])∧1=x271=x242055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (89) using rules (I), (II), (III) which results in the following new constraint:

    (91)    (1=x242055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (90) using rule (VII) which results in the following new constraint:

    (92)    (>(x27, -1)=x33java.lang.Object(List(x26))=x34Cond_2055_0_length_NULL(x33, x27, x34)=2066_0_length_Return(x0[0])∧1=x271=x242055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(x2[9]))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(x2[9])))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (91) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (93)    (2066_0_length_Return(x28)=2066_0_length_Return(x0[1])∧1=x282221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (94)    (Cond_2055_0_length_NULL(>(x30, -1), x30, java.lang.Object(List(x29)))=2066_0_length_Return(x0[1])∧1=x302221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x29)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x29)))), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x29))))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(java.lang.Object(List(x29)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (93) using rules (I), (II), (IV) which results in the following new constraint:

    (95)    (2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (94) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (96)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x29)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x29)))), x3[9], java.lang.Object(List(NULL)))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(1), java.lang.Object(List(java.lang.Object(List(x29)))), x3[9], java.lang.Object(List(NULL)))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x29))))), java.lang.Object(List(NULL)), x3[9], 1, java.lang.Object(List(java.lang.Object(List(x29)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (95) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (97)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_97] = 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (92) using rule (V) (with possible (I) afterwards) using induction on 2055_0_length_NULL(x24, x2[9])=2066_0_length_Return(x0[1]) which results in the following new constraints:

    (98)    (2066_0_length_Return(x35)=2066_0_length_Return(x0[1])∧>(x27, -1)=x33java.lang.Object(List(x26))=x34Cond_2055_0_length_NULL(x33, x27, x34)=2066_0_length_Return(x0[0])∧1=x271=x352221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))


    (99)    (Cond_2055_0_length_NULL(>(x37, -1), x37, java.lang.Object(List(x36)))=2066_0_length_Return(x0[1])∧>(x27, -1)=x33java.lang.Object(List(x26))=x34Cond_2055_0_length_NULL(x33, x27, x34)=2066_0_length_Return(x0[0])∧1=x271=x372221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x36)))), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x36)))), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x36))))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(java.lang.Object(List(x36)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (98) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (100)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x26)))=2066_0_length_Return(x0[0]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(NULL)), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(NULL)))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (99) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (101)    (Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x26)))=2066_0_length_Return(x0[0])∧Cond_2055_0_length_NULL(TRUE, 1, java.lang.Object(List(x36)))=2066_0_length_Return(x0[1]) ⇒ 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x36)))), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥NonInfC∧2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), java.lang.Object(List(java.lang.Object(List(x36)))), x3[9], java.lang.Object(List(java.lang.Object(List(x26)))))≥2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x36))))), java.lang.Object(List(java.lang.Object(List(x26)))), x3[9], x0[0], java.lang.Object(List(java.lang.Object(List(x36)))))∧(UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥))



    We simplified constraint (96) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (102)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (100) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (103)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x0[0] ≥ 0)



    We simplified constraint (101) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (104)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x0[0] ≥ 0)



    We simplified constraint (97) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (105)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_97] = 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (103) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (106)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x0[0] ≥ 0)



    We simplified constraint (102) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (107)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (104) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (108)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x0[0] ≥ 0)



    We simplified constraint (105) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (109)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_97] = 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (106) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (110)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x0[0] ≥ 0)



    We simplified constraint (107) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (111)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (108) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (112)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧[(-1)bso_98] + x0[0] ≥ 0)



    We simplified constraint (109) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (113)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_97] = 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (110) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (114)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (111) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (115)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (112) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (116)    ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_98] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_79 + (-1)Bound*bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_80] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))), ≥)∧[bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_79 + (-1)Bound*bni_79] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_80] ≥ 0)

  • 2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))), ≥)∧[bni_81] ≥ 0∧[bni_81] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_81] ≥ 0∧[(2)bni_81 + (-1)Bound*bni_81] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1 + (-1)bso_82] ≥ 0)

  • 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧[bni_83] = 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_84] ≥ 0)
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_84] ≥ 0)
    • ((UIncreasing(2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_84] ≥ 0)

  • COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
    • (0 ≥ 0 ⇒ (UIncreasing(2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])), ≥)∧0 ≥ 0∧[bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_85 + (-1)Bound*bni_85] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_86] ≥ 0)

  • 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])), ≥)∧0 ≥ 0∧[bni_87] ≥ 0∧0 ≥ 0∧[bni_87] ≥ 0∧[bni_87 + (-1)Bound*bni_87] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_88] ≥ 0)

  • COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
    • (0 ≥ 0 ⇒ (UIncreasing(2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])), ≥)∧[bni_89] ≥ 0∧[bni_89] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_89 + (-1)Bound*bni_89] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_90] ≥ 0)

  • 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])), ≥)∧[bni_91] ≥ 0∧[bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_91] ≥ 0∧[bni_91 + (-1)Bound*bni_91] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_92] ≥ 0)

  • COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
    • (0 ≥ 0 ⇒ (UIncreasing(2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_93 + (-1)Bound*bni_93] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_94] ≥ 0)

  • 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])), ≥)∧0 ≥ 0∧[bni_95] ≥ 0∧[bni_95] ≥ 0∧0 ≥ 0∧[bni_95] ≥ 0∧[bni_95 + (-1)Bound*bni_95] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_96] ≥ 0)

  • 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧[bni_97] = 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_98] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)
    • ((UIncreasing(2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-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(2221_0_length_ConstantStackPush(x1)) = 0   
POL(2055_0_length_NULL(x1, x2)) = [2]x1   
POL(0) = 0   
POL(2233_0_length_ConstantStackPush(x1)) = 0   
POL(NULL) = 0   
POL(2066_0_length_Return(x1)) = x1   
POL(java.lang.Object(x1)) = x1   
POL(List(x1)) = [1] + x1   
POL(Cond_2055_0_length_NULL(x1, x2, x3)) = x2   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(COND_2332_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = x6   
POL(2221_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [1] + x3 + [2]x1   
POL(2332_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [1] + x5 + x4 + x1   
POL(<=(x1, x2)) = 0   
POL(2295_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [1] + x3 + [2]x1   
POL(COND_2272_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [1] + x4   
POL(2272_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [1] + x3 + x1   
POL(=(x1, x2)) = 0   
POL(2) = 0   
POL(COND_2247_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [1] + x6 + x5 + x1   
POL(2247_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [1] + x5 + x4 + x1   
POL(&&(x1, x2)) = 0   
POL(*(x1, x2)) = 0   
POL(5) = 0   
POL(<(x1, x2)) = 0   
POL(COND_2233_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [1] + x4 + [2]x1   
POL(2233_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [1] + x4 + x3 + x1   

The following pairs are in P>:

2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))

The following pairs are in Pbound:

COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
2332_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8]))) → COND_2332_1_MAIN_INVOKEMETHOD(<=(x4[8], x0[8]), 2066_0_length_Return(x0[8]), x1[8], x2[8], x4[8], java.lang.Object(List(x3[8])))
COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])

The following pairs are in P:

COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(=(0, %(x0[5], 2)), 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(&&(&&(>(x4[3], -1), <=(0, *(x0[3], 5))), <(0, +(x4[3], *(x0[3], 5)))), 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], +(x4[2], x0[2]), x3[2])
2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(&&(>(x4[1], -1), >(x0[1], -1)), 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

2221_0_length_ConstantStackPush(x0)12055_0_length_NULL(0, x0)1
2055_0_length_NULL(x0, NULL)12066_0_length_Return(x0)1
2055_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_2055_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))12055_0_length_NULL(+(x1, 1), x0)1
2233_0_length_ConstantStackPush(x0)12055_0_length_NULL(0, x0)1
&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1

(43) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
2221_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2233_0_length_ConstantStackPush(x0) → 2055_0_length_NULL(0, x0)
2055_0_length_NULL(x0, NULL) → 2066_0_length_Return(x0)
2055_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_2055_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_2055_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 2055_0_length_NULL(x1 + 1, x0)

The integer pair graph contains the following rules and edges:
(9): COND_2332_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[9]), x1[9], x2[9], x4[9], java.lang.Object(List(x3[9]))) → 2221_1_MAIN_INVOKEMETHOD(2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))), java.lang.Object(List(x2[9])), x3[9], java.lang.Object(List(x1[9])))
(7): 2295_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[7]), x1[7], x3[7], x2[7]) → 2332_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[7]), x1[7], x2[7], x0[7], x3[7])
(6): COND_2272_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[6]), x2[6], x3[6], x1[6]) → 2295_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x2[6])
(5): 2272_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5]) → COND_2272_1_MAIN_INVOKEMETHOD(0 = x0[5] % 2, 2066_0_length_Return(x0[5]), x2[5], x3[5], x1[5])
(4): COND_2247_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[4]), x1[4], x2[4], x4[4], x3[4]) → 2272_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x1[4]), x2[4], x3[4], x1[4])
(3): 2247_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3]) → COND_2247_1_MAIN_INVOKEMETHOD(x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 5, 2066_0_length_Return(x0[3]), x1[3], x2[3], x4[3], x3[3])
(2): COND_2233_1_MAIN_INVOKEMETHOD(TRUE, 2066_0_length_Return(x0[2]), x1[2], x3[2], x4[2], x2[2]) → 2247_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x4[2] + x0[2], x3[2])
(1): 2233_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1]) → COND_2233_1_MAIN_INVOKEMETHOD(x4[1] > -1 && x0[1] > -1, 2066_0_length_Return(x0[1]), x1[1], x3[1], x4[1], x2[1])
(0): 2221_1_MAIN_INVOKEMETHOD(2066_0_length_Return(x0[0]), x2[0], x3[0], x1[0]) → 2233_1_MAIN_INVOKEMETHOD(2233_0_length_ConstantStackPush(x2[0]), x1[0], x3[0], x0[0], x2[0])

(9) -> (0), if (2221_0_length_ConstantStackPush(java.lang.Object(List(x1[9]))) →* 2066_0_length_Return(x0[0])∧java.lang.Object(List(x2[9])) →* x2[0]x3[9]* x3[0]java.lang.Object(List(x1[9])) →* x1[0])


(0) -> (1), if (2233_0_length_ConstantStackPush(x2[0]) →* 2066_0_length_Return(x0[1])∧x1[0]* x1[1]x3[0]* x3[1]x0[0]* x4[1]x2[0]* x2[1])


(1) -> (2), if (x4[1] > -1 && x0[1] > -12066_0_length_Return(x0[1]) →* 2066_0_length_Return(x0[2])∧x1[1]* x1[2]x3[1]* x3[2]x4[1]* x4[2]x2[1]* x2[2])


(2) -> (3), if (2233_0_length_ConstantStackPush(x3[2]) →* 2066_0_length_Return(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x4[2] + x0[2]* x4[3]x3[2]* x3[3])


(3) -> (4), if (x4[3] > -1 && 0 <= x0[3] * 5 && 0 < x4[3] + x0[3] * 52066_0_length_Return(x0[3]) →* 2066_0_length_Return(x0[4])∧x1[3]* x1[4]x2[3]* x2[4]x4[3]* x4[4]x3[3]* x3[4])


(4) -> (5), if (2233_0_length_ConstantStackPush(x1[4]) →* 2066_0_length_Return(x0[5])∧x2[4]* x2[5]x3[4]* x3[5]x1[4]* x1[5])


(5) -> (6), if (0 = x0[5] % 22066_0_length_Return(x0[5]) →* 2066_0_length_Return(x0[6])∧x2[5]* x2[6]x3[5]* x3[6]x1[5]* x1[6])


(6) -> (7), if (2233_0_length_ConstantStackPush(x2[6]) →* 2066_0_length_Return(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x2[6]* x2[7])



The set Q consists of the following terms:
2221_0_length_ConstantStackPush(x0)
2233_0_length_ConstantStackPush(x0)
2055_0_length_NULL(x0, NULL)
2055_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_2055_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))

(44) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 9 less nodes.

(45) TRUE