(0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_20 (Apple Inc.) Main-Class: Test5
public class Test5 {
public static void main(String[] args) {
List l1 = List.mk(args.length);
List l2 = List.mk(args.length + 3);
List l3 = List.mk(args.length + 5);
List temp;

while (length(l1) > 0) {
temp = l1;
l1 = l2;
l2 = l3;
l3 = temp;

if (length(l2) % 3 == 0)
temp = temp.getTail();

if (length(l3) % 5 == 0)
l3 = l3.getTail();

if (length(l1) > length(l2))
l1 = l1.getTail();
else if (length(l1) == length(l2))
l2 = l2.getTail();
else
l3 = l3.getTail();

test(l1, l2, l3);
}
}

private static int length(List list) {
int len = 0;

while (list != null) {
list = list.getTail();
len++;
}

return len;
}

private static void test(List l1, List l2, List l3) {
while (l1 != null) {
l2 = new List(l1, l2);
l3 = new List(l2, l3);
l1 = l1.getTail();
}
}
}

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:
Test5.main([Ljava/lang/String;)V: Graph of 292 nodes with 1 SCC.

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

Test5.length(LList;)I: Graph of 31 nodes with 1 SCC.

Test5.test(LList;LList;LList;)V: Graph of 54 nodes with 1 SCC.


(3) TerminationGraphToSCCProof (SOUND transformation)

Splitted TerminationGraph to 4 SCCss.

(4) Complex Obligation (AND)

(5) Obligation:

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

(6) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 50 rules for P and 0 rules for R.


P rules:
1518_0_test_NULL(EOS(STATIC_1518), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub)) → 1519_0_test_NULL(EOS(STATIC_1519), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub))
1519_0_test_NULL(EOS(STATIC_1519), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub)) → 1522_0_test_New(EOS(STATIC_1522), java.lang.Object(o921sub), o903, o904)
1522_0_test_New(EOS(STATIC_1522), java.lang.Object(o921sub), o903, o904) → 1524_0_test_Duplicate(EOS(STATIC_1524), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)))
1524_0_test_Duplicate(EOS(STATIC_1524), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL))) → 1527_0_test_Load(EOS(STATIC_1527), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
1527_0_test_Load(EOS(STATIC_1527), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 1530_0_test_Load(EOS(STATIC_1530), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub))
1530_0_test_Load(EOS(STATIC_1530), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub)) → 1534_0_test_InvokeMethod(EOS(STATIC_1534), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1534_0_test_InvokeMethod(EOS(STATIC_1534), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1535_0_<init>_Load(EOS(STATIC_1535), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1535_0_<init>_Load(EOS(STATIC_1535), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1537_0_<init>_InvokeMethod(EOS(STATIC_1537), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)))
1537_0_<init>_InvokeMethod(EOS(STATIC_1537), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL))) → 1538_0_<init>_Load(EOS(STATIC_1538), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1538_0_<init>_Load(EOS(STATIC_1538), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1540_0_<init>_Load(EOS(STATIC_1540), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)))
1540_0_<init>_Load(EOS(STATIC_1540), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL))) → 1541_0_<init>_FieldAccess(EOS(STATIC_1541), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub))
1541_0_<init>_FieldAccess(EOS(STATIC_1541), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub)) → 1543_0_<init>_Load(EOS(STATIC_1543), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903)
1543_0_<init>_Load(EOS(STATIC_1543), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903) → 1545_0_<init>_Load(EOS(STATIC_1545), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, o903, java.lang.Object(List(EOC, NULL)))
1545_0_<init>_Load(EOS(STATIC_1545), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, o903, java.lang.Object(List(EOC, NULL))) → 1546_0_<init>_FieldAccess(EOS(STATIC_1546), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903)
1546_0_<init>_FieldAccess(EOS(STATIC_1546), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903) → 1549_0_<init>_Return(EOS(STATIC_1549), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o903)), java.lang.Object(o921sub), o903)
1549_0_<init>_Return(EOS(STATIC_1549), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o903)), java.lang.Object(o921sub), o903) → 1551_0_test_Store(EOS(STATIC_1551), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)))
1551_0_test_Store(EOS(STATIC_1551), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903))) → 1552_0_test_New(EOS(STATIC_1552), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904)
1552_0_test_New(EOS(STATIC_1552), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904) → 1554_0_test_Duplicate(EOS(STATIC_1554), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1554_0_test_Duplicate(EOS(STATIC_1554), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1555_0_test_Load(EOS(STATIC_1555), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
1555_0_test_Load(EOS(STATIC_1555), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 1557_0_test_Load(EOS(STATIC_1557), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)))
1557_0_test_Load(EOS(STATIC_1557), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903))) → 1559_0_test_InvokeMethod(EOS(STATIC_1559), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1559_0_test_InvokeMethod(EOS(STATIC_1559), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1560_0_<init>_Load(EOS(STATIC_1560), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1560_0_<init>_Load(EOS(STATIC_1560), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1563_0_<init>_InvokeMethod(EOS(STATIC_1563), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1563_0_<init>_InvokeMethod(EOS(STATIC_1563), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1565_0_<init>_Load(EOS(STATIC_1565), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1565_0_<init>_Load(EOS(STATIC_1565), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1567_0_<init>_Load(EOS(STATIC_1567), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1567_0_<init>_Load(EOS(STATIC_1567), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1568_0_<init>_FieldAccess(EOS(STATIC_1568), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)))
1568_0_<init>_FieldAccess(EOS(STATIC_1568), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903))) → 1573_0_<init>_Load(EOS(STATIC_1573), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904)
1573_0_<init>_Load(EOS(STATIC_1573), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904) → 1575_0_<init>_Load(EOS(STATIC_1575), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, o904, java.lang.Object(List(EOC, NULL)))
1575_0_<init>_Load(EOS(STATIC_1575), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, o904, java.lang.Object(List(EOC, NULL))) → 1577_0_<init>_FieldAccess(EOS(STATIC_1577), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904)
1577_0_<init>_FieldAccess(EOS(STATIC_1577), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904) → 1582_0_<init>_Return(EOS(STATIC_1582), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o903)), o904)
1582_0_<init>_Return(EOS(STATIC_1582), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o903)), o904) → 1584_0_test_Store(EOS(STATIC_1584), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1584_0_test_Store(EOS(STATIC_1584), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1585_0_test_Load(EOS(STATIC_1585), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1585_0_test_Load(EOS(STATIC_1585), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1586_0_test_InvokeMethod(EOS(STATIC_1586), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub))
1586_0_test_InvokeMethod(EOS(STATIC_1586), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub)) → 1588_0_getTail_Load(EOS(STATIC_1588), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1588_0_getTail_Load(EOS(STATIC_1588), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1591_0_getTail_FieldAccess(EOS(STATIC_1591), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1591_0_getTail_FieldAccess(EOS(STATIC_1591), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1594_0_getTail_FieldAccess(EOS(STATIC_1594), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1591_0_getTail_FieldAccess(EOS(STATIC_1591), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1595_0_getTail_FieldAccess(EOS(STATIC_1595), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1594_0_getTail_FieldAccess(EOS(STATIC_1594), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977))) → 1597_0_getTail_FieldAccess(EOS(STATIC_1597), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977)))
1597_0_getTail_FieldAccess(EOS(STATIC_1597), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977))) → 1600_0_getTail_Return(EOS(STATIC_1600), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), o977)
1600_0_getTail_Return(EOS(STATIC_1600), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), o977) → 1602_0_test_Store(EOS(STATIC_1602), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o977)
1602_0_test_Store(EOS(STATIC_1602), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o977) → 1605_0_test_JMP(EOS(STATIC_1605), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1605_0_test_JMP(EOS(STATIC_1605), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1618_0_test_Load(EOS(STATIC_1618), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1618_0_test_Load(EOS(STATIC_1618), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1517_0_test_Load(EOS(STATIC_1517), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1517_0_test_Load(EOS(STATIC_1517), o902, o903, o904) → 1518_0_test_NULL(EOS(STATIC_1518), o902, o903, o904, o902)
1595_0_getTail_FieldAccess(EOS(STATIC_1595), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980))) → 1598_0_getTail_FieldAccess(EOS(STATIC_1598), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980)))
1598_0_getTail_FieldAccess(EOS(STATIC_1598), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980))) → 1601_0_getTail_Return(EOS(STATIC_1601), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), o980)
1601_0_getTail_Return(EOS(STATIC_1601), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), o980) → 1604_0_test_Store(EOS(STATIC_1604), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o980)
1604_0_test_Store(EOS(STATIC_1604), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o980) → 1607_0_test_JMP(EOS(STATIC_1607), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1607_0_test_JMP(EOS(STATIC_1607), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1630_0_test_Load(EOS(STATIC_1630), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1630_0_test_Load(EOS(STATIC_1630), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1517_0_test_Load(EOS(STATIC_1517), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
R rules:

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


P rules:
1518_0_test_NULL(EOS(STATIC_1518), java.lang.Object(List(EOC, x0)), x1, x2, java.lang.Object(List(EOC, x0))) → 1518_0_test_NULL(EOS(STATIC_1518), x0, java.lang.Object(List(EOC, x1)), java.lang.Object(List(EOC, x2)), x0)
R rules:

Filtered ground terms:



1518_0_test_NULL(x1, x2, x3, x4, x5) → 1518_0_test_NULL(x2, x3, x4, x5)
List(x1, x2) → List(x2)
EOS(x1) → EOS

Filtered duplicate args:



1518_0_test_NULL(x1, x2, x3, x4) → 1518_0_test_NULL(x2, x3, x4)

Filtered unneeded arguments:



1518_0_test_NULL(x1, x2, x3) → 1518_0_test_NULL(x3)

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


P rules:
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)
R rules:

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


P rules:
1518_0_TEST_NULL(java.lang.Object(List(x0))) → 1518_0_TEST_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): 1518_0_TEST_NULL(java.lang.Object(List(x0[0]))) → 1518_0_TEST_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:

1518_0_TEST_NULL(java.lang.Object(List(x0[0]))) → 1518_0_TEST_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:

  • 1518_0_TEST_NULL(java.lang.Object(List(x0[0]))) → 1518_0_TEST_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: Test5.length(LList;)I
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(13) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 22 rules for P and 0 rules for R.


P rules:
798_0_length_NULL(EOS(STATIC_798), java.lang.Object(o227sub), java.lang.Object(o227sub)) → 802_0_length_NULL(EOS(STATIC_802), java.lang.Object(o227sub), java.lang.Object(o227sub))
802_0_length_NULL(EOS(STATIC_802), java.lang.Object(o227sub), java.lang.Object(o227sub)) → 806_0_length_Load(EOS(STATIC_806), java.lang.Object(o227sub))
806_0_length_Load(EOS(STATIC_806), java.lang.Object(o227sub)) → 812_0_length_InvokeMethod(EOS(STATIC_812), java.lang.Object(o227sub))
812_0_length_InvokeMethod(EOS(STATIC_812), java.lang.Object(o227sub)) → 817_0_getTail_Load(EOS(STATIC_817), java.lang.Object(o227sub), java.lang.Object(o227sub))
817_0_getTail_Load(EOS(STATIC_817), java.lang.Object(o227sub), java.lang.Object(o227sub)) → 828_0_getTail_FieldAccess(EOS(STATIC_828), java.lang.Object(o227sub), java.lang.Object(o227sub))
828_0_getTail_FieldAccess(EOS(STATIC_828), java.lang.Object(o227sub), java.lang.Object(o227sub)) → 835_0_getTail_FieldAccess(EOS(STATIC_835), java.lang.Object(o227sub), java.lang.Object(o227sub))
828_0_getTail_FieldAccess(EOS(STATIC_828), java.lang.Object(o227sub), java.lang.Object(o227sub)) → 836_0_getTail_FieldAccess(EOS(STATIC_836), java.lang.Object(o227sub), java.lang.Object(o227sub))
835_0_getTail_FieldAccess(EOS(STATIC_835), java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236))) → 838_0_getTail_FieldAccess(EOS(STATIC_838), java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236)))
838_0_getTail_FieldAccess(EOS(STATIC_838), java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236))) → 846_0_getTail_Return(EOS(STATIC_846), java.lang.Object(List(EOC, o236)), o236)
846_0_getTail_Return(EOS(STATIC_846), java.lang.Object(List(EOC, o236)), o236) → 850_0_length_Store(EOS(STATIC_850), o236)
850_0_length_Store(EOS(STATIC_850), o236) → 856_0_length_Inc(EOS(STATIC_856), o236)
856_0_length_Inc(EOS(STATIC_856), o236) → 861_0_length_JMP(EOS(STATIC_861), o236)
861_0_length_JMP(EOS(STATIC_861), o236) → 869_0_length_Load(EOS(STATIC_869), o236)
869_0_length_Load(EOS(STATIC_869), o236) → 793_0_length_Load(EOS(STATIC_793), o236)
793_0_length_Load(EOS(STATIC_793), o218) → 798_0_length_NULL(EOS(STATIC_798), o218, o218)
836_0_getTail_FieldAccess(EOS(STATIC_836), java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239))) → 840_0_getTail_FieldAccess(EOS(STATIC_840), java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239)))
840_0_getTail_FieldAccess(EOS(STATIC_840), java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239))) → 847_0_getTail_Return(EOS(STATIC_847), java.lang.Object(List(EOC, o239)), o239)
847_0_getTail_Return(EOS(STATIC_847), java.lang.Object(List(EOC, o239)), o239) → 852_0_length_Store(EOS(STATIC_852), o239)
852_0_length_Store(EOS(STATIC_852), o239) → 858_0_length_Inc(EOS(STATIC_858), o239)
858_0_length_Inc(EOS(STATIC_858), o239) → 863_0_length_JMP(EOS(STATIC_863), o239)
863_0_length_JMP(EOS(STATIC_863), o239) → 871_0_length_Load(EOS(STATIC_871), o239)
871_0_length_Load(EOS(STATIC_871), o239) → 793_0_length_Load(EOS(STATIC_793), o239)
R rules:

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


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

Filtered ground terms:



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

Filtered duplicate args:



798_0_length_NULL(x1, x2) → 798_0_length_NULL(x2)

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


P rules:
798_0_length_NULL(java.lang.Object(List(x0))) → 798_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:
798_0_LENGTH_NULL(java.lang.Object(List(x0))) → 798_0_LENGTH_NULL(x0)
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:
none


R is empty.

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

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



The set Q is empty.

(15) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(16) Obligation:

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

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

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

(17) 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:

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

(18) YES

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

(20) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 23 rules for P and 0 rules for R.


P rules:
585_0_mk_Inc(EOS(STATIC_585), i75, i75) → 593_0_mk_LE(EOS(STATIC_593), +(i75, -1), i75)
593_0_mk_LE(EOS(STATIC_593), i78, i84) → 601_0_mk_LE(EOS(STATIC_601), i78, i84)
601_0_mk_LE(EOS(STATIC_601), i78, i84) → 610_0_mk_New(EOS(STATIC_610), i78) | >(i84, 0)
610_0_mk_New(EOS(STATIC_610), i78) → 623_0_mk_Duplicate(EOS(STATIC_623), i78)
623_0_mk_Duplicate(EOS(STATIC_623), i78) → 632_0_mk_New(EOS(STATIC_632), i78)
632_0_mk_New(EOS(STATIC_632), i78) → 647_0_mk_Duplicate(EOS(STATIC_647), i78)
647_0_mk_Duplicate(EOS(STATIC_647), i78) → 661_0_mk_InvokeMethod(EOS(STATIC_661), i78)
661_0_mk_InvokeMethod(EOS(STATIC_661), i78) → 669_0_mk_Load(EOS(STATIC_669), i78)
669_0_mk_Load(EOS(STATIC_669), i78) → 676_0_mk_InvokeMethod(EOS(STATIC_676), i78)
676_0_mk_InvokeMethod(EOS(STATIC_676), i78) → 683_0_<init>_Load(EOS(STATIC_683), i78)
683_0_<init>_Load(EOS(STATIC_683), i78) → 699_0_<init>_InvokeMethod(EOS(STATIC_699), i78)
699_0_<init>_InvokeMethod(EOS(STATIC_699), i78) → 706_0_<init>_Load(EOS(STATIC_706), i78)
706_0_<init>_Load(EOS(STATIC_706), i78) → 712_0_<init>_Load(EOS(STATIC_712), i78)
712_0_<init>_Load(EOS(STATIC_712), i78) → 720_0_<init>_FieldAccess(EOS(STATIC_720), i78)
720_0_<init>_FieldAccess(EOS(STATIC_720), i78) → 728_0_<init>_Load(EOS(STATIC_728), i78)
728_0_<init>_Load(EOS(STATIC_728), i78) → 734_0_<init>_Load(EOS(STATIC_734), i78)
734_0_<init>_Load(EOS(STATIC_734), i78) → 747_0_<init>_FieldAccess(EOS(STATIC_747), i78)
747_0_<init>_FieldAccess(EOS(STATIC_747), i78) → 754_0_<init>_Return(EOS(STATIC_754), i78)
754_0_<init>_Return(EOS(STATIC_754), i78) → 763_0_mk_Store(EOS(STATIC_763), i78)
763_0_mk_Store(EOS(STATIC_763), i78) → 770_0_mk_JMP(EOS(STATIC_770), i78)
770_0_mk_JMP(EOS(STATIC_770), i78) → 780_0_mk_Load(EOS(STATIC_780), i78)
780_0_mk_Load(EOS(STATIC_780), i78) → 577_0_mk_Load(EOS(STATIC_577), i78)
577_0_mk_Load(EOS(STATIC_577), i75) → 585_0_mk_Inc(EOS(STATIC_585), i75, i75)
R rules:

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


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

Filtered ground terms:



585_0_mk_Inc(x1, x2, x3) → 585_0_mk_Inc(x2, x3)
EOS(x1) → EOS
Cond_585_0_mk_Inc(x1, x2, x3, x4) → Cond_585_0_mk_Inc(x1, x3, x4)

Filtered duplicate args:



585_0_mk_Inc(x1, x2) → 585_0_mk_Inc(x2)
Cond_585_0_mk_Inc(x1, x2, x3) → Cond_585_0_mk_Inc(x1, x3)

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


P rules:
585_0_mk_Inc(x0) → 585_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:
585_0_MK_INC(x0) → COND_585_0_MK_INC(>(x0, 0), x0)
COND_585_0_MK_INC(TRUE, x0) → 585_0_MK_INC(+(x0, -1))
R rules:

(21) 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): 585_0_MK_INC(x0[0]) → COND_585_0_MK_INC(x0[0] > 0, x0[0])
(1): COND_585_0_MK_INC(TRUE, x0[1]) → 585_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.

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

    (1)    (>(x0[0], 0)=TRUEx0[0]=x0[1]585_0_MK_INC(x0[0])≥NonInfC∧585_0_MK_INC(x0[0])≥COND_585_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_585_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)=TRUE585_0_MK_INC(x0[0])≥NonInfC∧585_0_MK_INC(x0[0])≥COND_585_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_585_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_585_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_585_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_585_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_585_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_585_0_MK_INC(TRUE, x0) → 585_0_MK_INC(+(x0, -1)) the following chains were created:
  • We consider the chain COND_585_0_MK_INC(TRUE, x0[1]) → 585_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

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



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

    (8)    ((UIncreasing(585_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(585_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(585_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(585_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.
  • 585_0_MK_INC(x0) → COND_585_0_MK_INC(>(x0, 0), x0)
    • (x0[0] ≥ 0 ⇒ (UIncreasing(COND_585_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_585_0_MK_INC(TRUE, x0) → 585_0_MK_INC(+(x0, -1))
    • ((UIncreasing(585_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(585_0_MK_INC(x1)) = [2]x1   
POL(COND_585_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_585_0_MK_INC(TRUE, x0[1]) → 585_0_MK_INC(+(x0[1], -1))

The following pairs are in Pbound:

585_0_MK_INC(x0[0]) → COND_585_0_MK_INC(>(x0[0], 0), x0[0])

The following pairs are in P:

585_0_MK_INC(x0[0]) → COND_585_0_MK_INC(>(x0[0], 0), x0[0])

There are no usable rules.

(23) Complex Obligation (AND)

(24) 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): 585_0_MK_INC(x0[0]) → COND_585_0_MK_INC(x0[0] > 0, x0[0])


The set Q is empty.

(25) IDependencyGraphProof (EQUIVALENT transformation)

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

(26) TRUE

(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


R is empty.

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


The set Q is empty.

(28) IDependencyGraphProof (EQUIVALENT transformation)

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

(29) TRUE

(30) Obligation:

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

(31) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 120 rules for P and 103 rules for R.


P rules:
336_0_main_InvokeMethod(EOS(STATIC_336), o27, o15, o34, o27) → 340_1_main_InvokeMethod(340_0_length_ConstantStackPush(EOS(STATIC_340), o27), o27, o15, o34, o27)
340_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), i111), o228, o15, o34, o228) → 831_0_length_Return(EOS(STATIC_831), o228, o15, o34, o228, i111)
831_0_length_Return(EOS(STATIC_831), o228, o15, o34, o228, i111) → 745_0_length_Return(EOS(STATIC_745), o228, o15, o34, o228, i111)
745_0_length_Return(EOS(STATIC_745), o190, o191, o192, o190, i103) → 751_0_main_LE(EOS(STATIC_751), o190, o191, o192, i103)
751_0_main_LE(EOS(STATIC_751), o190, o191, o192, i107) → 761_0_main_LE(EOS(STATIC_761), o190, o191, o192, i107)
761_0_main_LE(EOS(STATIC_761), o190, o191, o192, i107) → 769_0_main_Load(EOS(STATIC_769), o190, o191, o192) | >(i107, 0)
769_0_main_Load(EOS(STATIC_769), o190, o191, o192) → 777_0_main_Store(EOS(STATIC_777), o191, o192, o190)
777_0_main_Store(EOS(STATIC_777), o191, o192, o190) → 785_0_main_Load(EOS(STATIC_785), o191, o192, o190)
785_0_main_Load(EOS(STATIC_785), o191, o192, o190) → 790_0_main_Store(EOS(STATIC_790), o192, o190, o191)
790_0_main_Store(EOS(STATIC_790), o192, o190, o191) → 796_0_main_Load(EOS(STATIC_796), o191, o192, o190)
796_0_main_Load(EOS(STATIC_796), o191, o192, o190) → 800_0_main_Store(EOS(STATIC_800), o191, o190, o192)
800_0_main_Store(EOS(STATIC_800), o191, o190, o192) → 805_0_main_Load(EOS(STATIC_805), o191, o192, o190)
805_0_main_Load(EOS(STATIC_805), o191, o192, o190) → 810_0_main_Store(EOS(STATIC_810), o191, o192, o190, o190)
810_0_main_Store(EOS(STATIC_810), o191, o192, o190, o190) → 815_0_main_Load(EOS(STATIC_815), o191, o192, o190, o190)
815_0_main_Load(EOS(STATIC_815), o191, o192, o190, o190) → 820_0_main_InvokeMethod(EOS(STATIC_820), o191, o192, o190, o190, o192)
820_0_main_InvokeMethod(EOS(STATIC_820), o191, o192, o190, o190, o192) → 824_1_main_InvokeMethod(824_0_length_ConstantStackPush(EOS(STATIC_824), o192), o191, o192, o190, o190, o192)
824_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), i111), o191, o242, o190, o190, o242) → 849_0_length_Return(EOS(STATIC_849), o191, o242, o190, o190, o242, i111)
849_0_length_Return(EOS(STATIC_849), o191, o242, o190, o190, o242, i111) → 853_0_main_ConstantStackPush(EOS(STATIC_853), o191, o242, o190, o190, i111)
853_0_main_ConstantStackPush(EOS(STATIC_853), o191, o242, o190, o190, i111) → 860_0_main_IntArithmetic(EOS(STATIC_860), o191, o242, o190, o190, i111, 3)
860_0_main_IntArithmetic(EOS(STATIC_860), o191, o242, o190, o190, i111, matching1) → 865_0_main_NE(EOS(STATIC_865), o191, o242, o190, o190, %(i111, 3)) | =(matching1, 3)
865_0_main_NE(EOS(STATIC_865), o191, o242, o190, o190, i123) → 872_0_main_NE(EOS(STATIC_872), o191, o242, o190, o190, i123)
865_0_main_NE(EOS(STATIC_865), o191, o242, o190, o190, matching1) → 873_0_main_NE(EOS(STATIC_873), o191, o242, o190, o190, 0) | =(matching1, 0)
872_0_main_NE(EOS(STATIC_872), o191, o242, o190, o190, i123) → 875_0_main_Load(EOS(STATIC_875), o191, o242, o190) | >(i123, 0)
875_0_main_Load(EOS(STATIC_875), o191, o242, o190) → 878_0_main_InvokeMethod(EOS(STATIC_878), o191, o242, o190, o190)
878_0_main_InvokeMethod(EOS(STATIC_878), o191, o242, o190, o190) → 882_1_main_InvokeMethod(882_0_length_ConstantStackPush(EOS(STATIC_882), o190), o191, o242, o190, o190)
882_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), i111), o191, o242, o261, o261) → 899_0_length_Return(EOS(STATIC_899), o191, o242, o261, o261, i111)
899_0_length_Return(EOS(STATIC_899), o191, o242, o261, o261, i111) → 904_0_main_ConstantStackPush(EOS(STATIC_904), o191, o242, o261, i111)
904_0_main_ConstantStackPush(EOS(STATIC_904), o191, o242, o261, i111) → 908_0_main_IntArithmetic(EOS(STATIC_908), o191, o242, o261, i111, 5)
908_0_main_IntArithmetic(EOS(STATIC_908), o191, o242, o261, i111, matching1) → 912_0_main_NE(EOS(STATIC_912), o191, o242, o261, %(i111, 5)) | =(matching1, 5)
912_0_main_NE(EOS(STATIC_912), o191, o242, o261, i126) → 918_0_main_NE(EOS(STATIC_918), o191, o242, o261, i126)
912_0_main_NE(EOS(STATIC_912), o191, o242, o261, matching1) → 919_0_main_NE(EOS(STATIC_919), o191, o242, o261, 0) | =(matching1, 0)
918_0_main_NE(EOS(STATIC_918), o191, o242, o261, i126) → 922_0_main_Load(EOS(STATIC_922), o191, o242, o261) | >(i126, 0)
922_0_main_Load(EOS(STATIC_922), o191, o242, o261) → 993_0_main_Load(EOS(STATIC_993), o191, o242, o261)
993_0_main_Load(EOS(STATIC_993), o191, o242, o305) → 1000_0_main_InvokeMethod(EOS(STATIC_1000), o191, o242, o305, o191)
1000_0_main_InvokeMethod(EOS(STATIC_1000), o191, o242, o305, o191) → 1006_1_main_InvokeMethod(1006_0_length_ConstantStackPush(EOS(STATIC_1006), o191), o191, o242, o305, o191)
1006_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), i111), o328, o242, o305, o328) → 1023_0_length_Return(EOS(STATIC_1023), o328, o242, o305, o328, i111)
1023_0_length_Return(EOS(STATIC_1023), o328, o242, o305, o328, i111) → 1030_0_main_Load(EOS(STATIC_1030), o328, o242, o305, i111)
1030_0_main_Load(EOS(STATIC_1030), o328, o242, o305, i111) → 1036_0_main_InvokeMethod(EOS(STATIC_1036), o328, o242, o305, i111, o242)
1036_0_main_InvokeMethod(EOS(STATIC_1036), o328, o242, o305, i111, o242) → 1040_1_main_InvokeMethod(1040_0_length_ConstantStackPush(EOS(STATIC_1040), o242), o328, o242, o305, i111, o242)
1040_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), i137), o328, o349, o305, i111, o349) → 1057_0_length_Return(EOS(STATIC_1057), o328, o349, o305, i111, o349, i137)
1057_0_length_Return(EOS(STATIC_1057), o328, o349, o305, i111, o349, i137) → 1062_0_main_LE(EOS(STATIC_1062), o328, o349, o305, i111, i137)
1062_0_main_LE(EOS(STATIC_1062), o328, o349, o305, i111, i137) → 1065_0_main_LE(EOS(STATIC_1065), o328, o349, o305, i111, i137)
1062_0_main_LE(EOS(STATIC_1062), o328, o349, o305, i111, i137) → 1067_0_main_LE(EOS(STATIC_1067), o328, o349, o305, i111, i137)
1065_0_main_LE(EOS(STATIC_1065), o328, o349, o305, i111, i137) → 1071_0_main_Load(EOS(STATIC_1071), o328, o349, o305) | <=(i111, i137)
1071_0_main_Load(EOS(STATIC_1071), o328, o349, o305) → 1075_0_main_InvokeMethod(EOS(STATIC_1075), o328, o349, o305, o328)
1075_0_main_InvokeMethod(EOS(STATIC_1075), o328, o349, o305, o328) → 1080_1_main_InvokeMethod(1080_0_length_ConstantStackPush(EOS(STATIC_1080), o328), o328, o349, o305, o328)
1080_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), i111), o372, o349, o305, o372) → 1097_0_length_Return(EOS(STATIC_1097), o372, o349, o305, o372, i111)
1097_0_length_Return(EOS(STATIC_1097), o372, o349, o305, o372, i111) → 1102_0_main_Load(EOS(STATIC_1102), o372, o349, o305, i111)
1102_0_main_Load(EOS(STATIC_1102), o372, o349, o305, i111) → 1105_0_main_InvokeMethod(EOS(STATIC_1105), o372, o349, o305, i111, o349)
1105_0_main_InvokeMethod(EOS(STATIC_1105), o372, o349, o305, i111, o349) → 1107_1_main_InvokeMethod(1107_0_length_ConstantStackPush(EOS(STATIC_1107), o349), o372, o349, o305, i111, o349)
1107_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), i138), o372, o403, o305, i111, o403) → 1122_0_length_Return(EOS(STATIC_1122), o372, o403, o305, i111, o403, i138)
1122_0_length_Return(EOS(STATIC_1122), o372, o403, o305, i111, o403, i138) → 1127_0_main_NE(EOS(STATIC_1127), o372, o403, o305, i111, i138)
1127_0_main_NE(EOS(STATIC_1127), o372, o403, o305, i111, i138) → 1130_0_main_NE(EOS(STATIC_1130), o372, o403, o305, i111, i138)
1127_0_main_NE(EOS(STATIC_1127), o372, o403, o305, i138, i138) → 1131_0_main_NE(EOS(STATIC_1131), o372, o403, o305, i138, i138)
1130_0_main_NE(EOS(STATIC_1130), o372, o403, o305, i111, i138) → 1138_0_main_Load(EOS(STATIC_1138), o372, o403, o305) | !(=(i111, i138))
1138_0_main_Load(EOS(STATIC_1138), o372, o403, o305) → 1143_0_main_InvokeMethod(EOS(STATIC_1143), o372, o403, o305)
1143_0_main_InvokeMethod(EOS(STATIC_1143), o372, o403, java.lang.Object(o424sub)) → 1151_0_main_InvokeMethod(EOS(STATIC_1151), o372, o403, java.lang.Object(o424sub))
1151_0_main_InvokeMethod(EOS(STATIC_1151), o372, o403, java.lang.Object(o424sub)) → 1160_0_getTail_Load(EOS(STATIC_1160), o372, o403, java.lang.Object(o424sub), java.lang.Object(o424sub))
1160_0_getTail_Load(EOS(STATIC_1160), o372, o403, java.lang.Object(o424sub), java.lang.Object(o424sub)) → 1184_0_getTail_FieldAccess(EOS(STATIC_1184), o372, o403, java.lang.Object(o424sub), java.lang.Object(o424sub))
1184_0_getTail_FieldAccess(EOS(STATIC_1184), o372, o403, java.lang.Object(List(EOC, o483)), java.lang.Object(List(EOC, o483))) → 1195_0_getTail_FieldAccess(EOS(STATIC_1195), o372, o403, java.lang.Object(List(EOC, o483)), java.lang.Object(List(EOC, o483)))
1195_0_getTail_FieldAccess(EOS(STATIC_1195), o372, o403, java.lang.Object(List(EOC, o483)), java.lang.Object(List(EOC, o483))) → 1211_0_getTail_Return(EOS(STATIC_1211), o372, o403, java.lang.Object(List(EOC, o483)), o483)
1211_0_getTail_Return(EOS(STATIC_1211), o372, o403, java.lang.Object(List(EOC, o483)), o483) → 1223_0_main_Store(EOS(STATIC_1223), o372, o403, o483)
1223_0_main_Store(EOS(STATIC_1223), o372, o403, o483) → 1229_0_main_Load(EOS(STATIC_1229), o372, o403, o483)
1229_0_main_Load(EOS(STATIC_1229), o372, o403, o483) → 1246_0_main_Load(EOS(STATIC_1246), o372, o403, o483)
1246_0_main_Load(EOS(STATIC_1246), o372, o492, o305) → 1250_0_main_Load(EOS(STATIC_1250), o372, o492, o305, o372)
1250_0_main_Load(EOS(STATIC_1250), o372, o492, o305, o372) → 1258_0_main_Load(EOS(STATIC_1258), o372, o492, o305, o372, o492)
1258_0_main_Load(EOS(STATIC_1258), o372, o492, o305, o372, o492) → 1265_0_main_InvokeMethod(EOS(STATIC_1265), o372, o492, o305, o372, o492, o305)
1265_0_main_InvokeMethod(EOS(STATIC_1265), o372, o492, o305, o372, o492, o305) → 1270_1_main_InvokeMethod(1270_0_test_Load(EOS(STATIC_1270), o372, o492, o305), o372, o492, o305, o372, o492, o305)
1270_1_main_InvokeMethod(1523_0_test_Return(EOS(STATIC_1523)), o923, o924, o925, o923, o924, o925) → 1533_0_test_Return(EOS(STATIC_1533), o923, o924, o925, o923, o924, o925)
1533_0_test_Return(EOS(STATIC_1533), o923, o924, o925, o923, o924, o925) → 1431_0_test_Return(EOS(STATIC_1431), o923, o924, o925, o923, o924, o925)
1431_0_test_Return(EOS(STATIC_1431), o830, o831, o832, o830, o831, o832) → 1435_0_main_JMP(EOS(STATIC_1435), o830, o831, o832)
1435_0_main_JMP(EOS(STATIC_1435), o830, o831, o832) → 1439_0_main_Load(EOS(STATIC_1439), o830, o831, o832)
1439_0_main_Load(EOS(STATIC_1439), o830, o831, o832) → 332_0_main_Load(EOS(STATIC_332), o830, o831, o832)
332_0_main_Load(EOS(STATIC_332), o27, o15, o34) → 336_0_main_InvokeMethod(EOS(STATIC_336), o27, o15, o34, o27)
1131_0_main_NE(EOS(STATIC_1131), o372, o403, o305, i138, i138) → 1139_0_main_Load(EOS(STATIC_1139), o372, o403, o305)
1139_0_main_Load(EOS(STATIC_1139), o372, o403, o305) → 1145_0_main_InvokeMethod(EOS(STATIC_1145), o372, o305, o403)
1145_0_main_InvokeMethod(EOS(STATIC_1145), o372, o305, java.lang.Object(o425sub)) → 1154_0_main_InvokeMethod(EOS(STATIC_1154), o372, o305, java.lang.Object(o425sub))
1154_0_main_InvokeMethod(EOS(STATIC_1154), o372, o305, java.lang.Object(o425sub)) → 1163_0_getTail_Load(EOS(STATIC_1163), o372, o305, java.lang.Object(o425sub), java.lang.Object(o425sub))
1163_0_getTail_Load(EOS(STATIC_1163), o372, o305, java.lang.Object(o425sub), java.lang.Object(o425sub)) → 1188_0_getTail_FieldAccess(EOS(STATIC_1188), o372, o305, java.lang.Object(o425sub), java.lang.Object(o425sub))
1188_0_getTail_FieldAccess(EOS(STATIC_1188), o372, o305, java.lang.Object(List(EOC, o492)), java.lang.Object(List(EOC, o492))) → 1199_0_getTail_FieldAccess(EOS(STATIC_1199), o372, o305, java.lang.Object(List(EOC, o492)), java.lang.Object(List(EOC, o492)))
1199_0_getTail_FieldAccess(EOS(STATIC_1199), o372, o305, java.lang.Object(List(EOC, o492)), java.lang.Object(List(EOC, o492))) → 1216_0_getTail_Return(EOS(STATIC_1216), o372, o305, java.lang.Object(List(EOC, o492)), o492)
1216_0_getTail_Return(EOS(STATIC_1216), o372, o305, java.lang.Object(List(EOC, o492)), o492) → 1224_0_main_Store(EOS(STATIC_1224), o372, o305, o492)
1224_0_main_Store(EOS(STATIC_1224), o372, o305, o492) → 1234_0_main_JMP(EOS(STATIC_1234), o372, o492, o305)
1234_0_main_JMP(EOS(STATIC_1234), o372, o492, o305) → 1246_0_main_Load(EOS(STATIC_1246), o372, o492, o305)
1067_0_main_LE(EOS(STATIC_1067), o328, o349, o305, i111, i137) → 1072_0_main_Load(EOS(STATIC_1072), o328, o349, o305) | >(i111, i137)
1072_0_main_Load(EOS(STATIC_1072), o328, o349, o305) → 1077_0_main_InvokeMethod(EOS(STATIC_1077), o349, o305, o328)
1077_0_main_InvokeMethod(EOS(STATIC_1077), o349, o305, java.lang.Object(o367sub)) → 1082_0_main_InvokeMethod(EOS(STATIC_1082), o349, o305, java.lang.Object(o367sub))
1082_0_main_InvokeMethod(EOS(STATIC_1082), o349, o305, java.lang.Object(o367sub)) → 1087_0_getTail_Load(EOS(STATIC_1087), o349, o305, java.lang.Object(o367sub), java.lang.Object(o367sub))
1087_0_getTail_Load(EOS(STATIC_1087), o349, o305, java.lang.Object(o367sub), java.lang.Object(o367sub)) → 1096_0_getTail_FieldAccess(EOS(STATIC_1096), o349, o305, java.lang.Object(o367sub), java.lang.Object(o367sub))
1096_0_getTail_FieldAccess(EOS(STATIC_1096), o349, o305, java.lang.Object(List(EOC, o388)), java.lang.Object(List(EOC, o388))) → 1099_0_getTail_FieldAccess(EOS(STATIC_1099), o349, o305, java.lang.Object(List(EOC, o388)), java.lang.Object(List(EOC, o388)))
1099_0_getTail_FieldAccess(EOS(STATIC_1099), o349, o305, java.lang.Object(List(EOC, o388)), java.lang.Object(List(EOC, o388))) → 1103_0_getTail_Return(EOS(STATIC_1103), o349, o305, java.lang.Object(List(EOC, o388)), o388)
1103_0_getTail_Return(EOS(STATIC_1103), o349, o305, java.lang.Object(List(EOC, o388)), o388) → 1106_0_main_Store(EOS(STATIC_1106), o349, o305, o388)
1106_0_main_Store(EOS(STATIC_1106), o349, o305, o388) → 1108_0_main_JMP(EOS(STATIC_1108), o388, o349, o305)
1108_0_main_JMP(EOS(STATIC_1108), o388, o349, o305) → 1112_0_main_Load(EOS(STATIC_1112), o388, o349, o305)
1112_0_main_Load(EOS(STATIC_1112), o388, o349, o305) → 1229_0_main_Load(EOS(STATIC_1229), o388, o349, o305)
919_0_main_NE(EOS(STATIC_919), o191, o242, o261, matching1) → 924_0_main_Load(EOS(STATIC_924), o191, o242, o261) | =(matching1, 0)
924_0_main_Load(EOS(STATIC_924), o191, o242, o261) → 929_0_main_InvokeMethod(EOS(STATIC_929), o191, o242, o261)
929_0_main_InvokeMethod(EOS(STATIC_929), o191, o242, java.lang.Object(o280sub)) → 935_0_main_InvokeMethod(EOS(STATIC_935), o191, o242, java.lang.Object(o280sub))
935_0_main_InvokeMethod(EOS(STATIC_935), o191, o242, java.lang.Object(o280sub)) → 942_0_getTail_Load(EOS(STATIC_942), o191, o242, java.lang.Object(o280sub), java.lang.Object(o280sub))
942_0_getTail_Load(EOS(STATIC_942), o191, o242, java.lang.Object(o280sub), java.lang.Object(o280sub)) → 955_0_getTail_FieldAccess(EOS(STATIC_955), o191, o242, java.lang.Object(o280sub), java.lang.Object(o280sub))
955_0_getTail_FieldAccess(EOS(STATIC_955), o191, o242, java.lang.Object(List(EOC, o305)), java.lang.Object(List(EOC, o305))) → 962_0_getTail_FieldAccess(EOS(STATIC_962), o191, o242, java.lang.Object(List(EOC, o305)), java.lang.Object(List(EOC, o305)))
962_0_getTail_FieldAccess(EOS(STATIC_962), o191, o242, java.lang.Object(List(EOC, o305)), java.lang.Object(List(EOC, o305))) → 972_0_getTail_Return(EOS(STATIC_972), o191, o242, java.lang.Object(List(EOC, o305)), o305)
972_0_getTail_Return(EOS(STATIC_972), o191, o242, java.lang.Object(List(EOC, o305)), o305) → 983_0_main_Store(EOS(STATIC_983), o191, o242, o305)
983_0_main_Store(EOS(STATIC_983), o191, o242, o305) → 993_0_main_Load(EOS(STATIC_993), o191, o242, o305)
873_0_main_NE(EOS(STATIC_873), o191, o242, o190, o190, matching1) → 876_0_main_Load(EOS(STATIC_876), o191, o242, o190, o190) | =(matching1, 0)
876_0_main_Load(EOS(STATIC_876), o191, o242, o190, o190) → 880_0_main_InvokeMethod(EOS(STATIC_880), o191, o242, o190, o190)
880_0_main_InvokeMethod(EOS(STATIC_880), o191, o242, java.lang.Object(o255sub), java.lang.Object(o255sub)) → 884_0_main_InvokeMethod(EOS(STATIC_884), o191, o242, java.lang.Object(o255sub), java.lang.Object(o255sub))
884_0_main_InvokeMethod(EOS(STATIC_884), o191, o242, java.lang.Object(o255sub), java.lang.Object(o255sub)) → 888_0_getTail_Load(EOS(STATIC_888), o191, o242, java.lang.Object(o255sub), java.lang.Object(o255sub), java.lang.Object(o255sub))
888_0_getTail_Load(EOS(STATIC_888), o191, o242, java.lang.Object(o255sub), java.lang.Object(o255sub), java.lang.Object(o255sub)) → 897_0_getTail_FieldAccess(EOS(STATIC_897), o191, o242, java.lang.Object(o255sub), java.lang.Object(o255sub), java.lang.Object(o255sub))
897_0_getTail_FieldAccess(EOS(STATIC_897), o191, o242, java.lang.Object(List(EOC, o268)), java.lang.Object(List(EOC, o268)), java.lang.Object(List(EOC, o268))) → 900_0_getTail_FieldAccess(EOS(STATIC_900), o191, o242, java.lang.Object(List(EOC, o268)), java.lang.Object(List(EOC, o268)), java.lang.Object(List(EOC, o268)))
900_0_getTail_FieldAccess(EOS(STATIC_900), o191, o242, java.lang.Object(List(EOC, o268)), java.lang.Object(List(EOC, o268)), java.lang.Object(List(EOC, o268))) → 906_0_getTail_Return(EOS(STATIC_906), o191, o242, java.lang.Object(List(EOC, o268)), java.lang.Object(List(EOC, o268)))
906_0_getTail_Return(EOS(STATIC_906), o191, o242, java.lang.Object(List(EOC, o268)), java.lang.Object(List(EOC, o268))) → 910_0_main_Store(EOS(STATIC_910), o191, o242, java.lang.Object(List(EOC, o268)))
910_0_main_Store(EOS(STATIC_910), o191, o242, java.lang.Object(List(EOC, o268))) → 915_0_main_Load(EOS(STATIC_915), o191, o242, java.lang.Object(List(EOC, o268)))
915_0_main_Load(EOS(STATIC_915), o191, o242, java.lang.Object(List(EOC, o268))) → 920_0_main_InvokeMethod(EOS(STATIC_920), o191, o242, java.lang.Object(List(EOC, o268)), java.lang.Object(List(EOC, o268)))
920_0_main_InvokeMethod(EOS(STATIC_920), o191, o242, java.lang.Object(List(EOC, o268)), java.lang.Object(List(EOC, o268))) → 926_1_main_InvokeMethod(926_0_length_ConstantStackPush(EOS(STATIC_926), java.lang.Object(List(EOC, o268))), o191, o242, java.lang.Object(List(EOC, o268)), java.lang.Object(List(EOC, o268)))
926_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), i111), o191, o242, java.lang.Object(List(EOC, o285)), java.lang.Object(List(EOC, o285))) → 949_0_length_Return(EOS(STATIC_949), o191, o242, java.lang.Object(List(EOC, o285)), java.lang.Object(List(EOC, o285)), i111)
949_0_length_Return(EOS(STATIC_949), o191, o242, java.lang.Object(List(EOC, o285)), java.lang.Object(List(EOC, o285)), i111) → 957_0_main_ConstantStackPush(EOS(STATIC_957), o191, o242, java.lang.Object(List(EOC, o285)), i111)
957_0_main_ConstantStackPush(EOS(STATIC_957), o191, o242, java.lang.Object(List(EOC, o285)), i111) → 967_0_main_IntArithmetic(EOS(STATIC_967), o191, o242, java.lang.Object(List(EOC, o285)), i111, 5)
967_0_main_IntArithmetic(EOS(STATIC_967), o191, o242, java.lang.Object(List(EOC, o285)), i111, matching1) → 978_0_main_NE(EOS(STATIC_978), o191, o242, java.lang.Object(List(EOC, o285)), %(i111, 5)) | =(matching1, 5)
978_0_main_NE(EOS(STATIC_978), o191, o242, java.lang.Object(List(EOC, o285)), i128) → 912_0_main_NE(EOS(STATIC_912), o191, o242, java.lang.Object(List(EOC, o285)), i128)
R rules:
340_0_length_ConstantStackPush(EOS(STATIC_340), o27) → 343_0_length_ConstantStackPush(EOS(STATIC_343), o27)
343_0_length_ConstantStackPush(EOS(STATIC_343), o27) → 348_0_length_ConstantStackPush(EOS(STATIC_348), o27)
824_0_length_ConstantStackPush(EOS(STATIC_824), o192) → 832_0_length_ConstantStackPush(EOS(STATIC_832), o192)
832_0_length_ConstantStackPush(EOS(STATIC_832), o192) → 348_0_length_ConstantStackPush(EOS(STATIC_348), o192)
882_0_length_ConstantStackPush(EOS(STATIC_882), o190) → 887_0_length_ConstantStackPush(EOS(STATIC_887), o190)
887_0_length_ConstantStackPush(EOS(STATIC_887), o190) → 348_0_length_ConstantStackPush(EOS(STATIC_348), o190)
1006_0_length_ConstantStackPush(EOS(STATIC_1006), o191) → 1009_0_length_ConstantStackPush(EOS(STATIC_1009), o191)
1009_0_length_ConstantStackPush(EOS(STATIC_1009), o191) → 348_0_length_ConstantStackPush(EOS(STATIC_348), o191)
1040_0_length_ConstantStackPush(EOS(STATIC_1040), o242) → 1045_0_length_ConstantStackPush(EOS(STATIC_1045), o242)
1045_0_length_ConstantStackPush(EOS(STATIC_1045), o242) → 348_0_length_ConstantStackPush(EOS(STATIC_348), o242)
1080_0_length_ConstantStackPush(EOS(STATIC_1080), o328) → 1086_0_length_ConstantStackPush(EOS(STATIC_1086), o328)
1086_0_length_ConstantStackPush(EOS(STATIC_1086), o328) → 348_0_length_ConstantStackPush(EOS(STATIC_348), o328)
1107_0_length_ConstantStackPush(EOS(STATIC_1107), o349) → 1111_0_length_ConstantStackPush(EOS(STATIC_1111), o349)
1111_0_length_ConstantStackPush(EOS(STATIC_1111), o349) → 348_0_length_ConstantStackPush(EOS(STATIC_348), o349)
1270_0_test_Load(EOS(STATIC_1270), o372, o492, o305) → 1275_0_test_Load(EOS(STATIC_1275), o372, o492, o305)
1275_0_test_Load(EOS(STATIC_1275), o372, o492, o305) → 1146_0_test_Load(EOS(STATIC_1146), o372, o492, o305)
926_0_length_ConstantStackPush(EOS(STATIC_926), java.lang.Object(List(EOC, o268))) → 930_0_length_ConstantStackPush(EOS(STATIC_930), java.lang.Object(List(EOC, o268)))
930_0_length_ConstantStackPush(EOS(STATIC_930), java.lang.Object(List(EOC, o268))) → 348_0_length_ConstantStackPush(EOS(STATIC_348), java.lang.Object(List(EOC, o268)))
348_0_length_ConstantStackPush(EOS(STATIC_348), o27) → 352_0_length_Store(EOS(STATIC_352), o27, 0)
352_0_length_Store(EOS(STATIC_352), o27, matching1) → 354_0_length_Load(EOS(STATIC_354), o27, 0) | =(matching1, 0)
354_0_length_Load(EOS(STATIC_354), o27, matching1) → 438_0_length_Load(EOS(STATIC_438), o27, 0) | =(matching1, 0)
438_0_length_Load(EOS(STATIC_438), o74, i58) → 556_0_length_Load(EOS(STATIC_556), o74, i58)
556_0_length_Load(EOS(STATIC_556), o121, i73) → 690_0_length_Load(EOS(STATIC_690), o121, i73)
690_0_length_Load(EOS(STATIC_690), o177, i97) → 793_0_length_Load(EOS(STATIC_793), o177, i97)
793_0_length_Load(EOS(STATIC_793), o218, i111) → 798_0_length_NULL(EOS(STATIC_798), o218, i111, o218)
798_0_length_NULL(EOS(STATIC_798), java.lang.Object(o227sub), i111, java.lang.Object(o227sub)) → 802_0_length_NULL(EOS(STATIC_802), java.lang.Object(o227sub), i111, java.lang.Object(o227sub))
798_0_length_NULL(EOS(STATIC_798), NULL, i111, NULL) → 803_0_length_NULL(EOS(STATIC_803), NULL, i111, NULL)
802_0_length_NULL(EOS(STATIC_802), java.lang.Object(o227sub), i111, java.lang.Object(o227sub)) → 806_0_length_Load(EOS(STATIC_806), java.lang.Object(o227sub), i111)
803_0_length_NULL(EOS(STATIC_803), NULL, i111, NULL) → 808_0_length_Load(EOS(STATIC_808), i111)
806_0_length_Load(EOS(STATIC_806), java.lang.Object(o227sub), i111) → 812_0_length_InvokeMethod(EOS(STATIC_812), i111, java.lang.Object(o227sub))
808_0_length_Load(EOS(STATIC_808), i111) → 813_0_length_Return(EOS(STATIC_813), i111)
812_0_length_InvokeMethod(EOS(STATIC_812), i111, java.lang.Object(o227sub)) → 817_0_getTail_Load(EOS(STATIC_817), i111, java.lang.Object(o227sub), java.lang.Object(o227sub))
817_0_getTail_Load(EOS(STATIC_817), i111, java.lang.Object(o227sub), java.lang.Object(o227sub)) → 828_0_getTail_FieldAccess(EOS(STATIC_828), i111, java.lang.Object(o227sub), java.lang.Object(o227sub))
828_0_getTail_FieldAccess(EOS(STATIC_828), i111, java.lang.Object(o227sub), java.lang.Object(o227sub)) → 835_0_getTail_FieldAccess(EOS(STATIC_835), i111, java.lang.Object(o227sub), java.lang.Object(o227sub))
828_0_getTail_FieldAccess(EOS(STATIC_828), i111, java.lang.Object(o227sub), java.lang.Object(o227sub)) → 836_0_getTail_FieldAccess(EOS(STATIC_836), i111, java.lang.Object(o227sub), java.lang.Object(o227sub))
835_0_getTail_FieldAccess(EOS(STATIC_835), i111, java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236))) → 838_0_getTail_FieldAccess(EOS(STATIC_838), i111, java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236)))
836_0_getTail_FieldAccess(EOS(STATIC_836), i111, java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239))) → 840_0_getTail_FieldAccess(EOS(STATIC_840), i111, java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239)))
838_0_getTail_FieldAccess(EOS(STATIC_838), i111, java.lang.Object(List(EOC, o236)), java.lang.Object(List(EOC, o236))) → 846_0_getTail_Return(EOS(STATIC_846), i111, java.lang.Object(List(EOC, o236)), o236)
840_0_getTail_FieldAccess(EOS(STATIC_840), i111, java.lang.Object(List(EOC, o239)), java.lang.Object(List(EOC, o239))) → 847_0_getTail_Return(EOS(STATIC_847), i111, java.lang.Object(List(EOC, o239)), o239)
846_0_getTail_Return(EOS(STATIC_846), i111, java.lang.Object(List(EOC, o236)), o236) → 850_0_length_Store(EOS(STATIC_850), i111, o236)
847_0_getTail_Return(EOS(STATIC_847), i111, java.lang.Object(List(EOC, o239)), o239) → 852_0_length_Store(EOS(STATIC_852), i111, o239)
850_0_length_Store(EOS(STATIC_850), i111, o236) → 856_0_length_Inc(EOS(STATIC_856), o236, i111)
852_0_length_Store(EOS(STATIC_852), i111, o239) → 858_0_length_Inc(EOS(STATIC_858), o239, i111)
856_0_length_Inc(EOS(STATIC_856), o236, i111) → 861_0_length_JMP(EOS(STATIC_861), o236, +(i111, 1)) | >=(i111, 0)
858_0_length_Inc(EOS(STATIC_858), o239, i111) → 863_0_length_JMP(EOS(STATIC_863), o239, +(i111, 1)) | >=(i111, 0)
861_0_length_JMP(EOS(STATIC_861), o236, i117) → 869_0_length_Load(EOS(STATIC_869), o236, i117)
863_0_length_JMP(EOS(STATIC_863), o239, i118) → 871_0_length_Load(EOS(STATIC_871), o239, i118)
869_0_length_Load(EOS(STATIC_869), o236, i117) → 793_0_length_Load(EOS(STATIC_793), o236, i117)
871_0_length_Load(EOS(STATIC_871), o239, i118) → 793_0_length_Load(EOS(STATIC_793), o239, i118)
1146_0_test_Load(EOS(STATIC_1146), o388, o349, o305) → 1414_0_test_Load(EOS(STATIC_1414), o388, o349, o305)
1414_0_test_Load(EOS(STATIC_1414), o802, o803, o804) → 1517_0_test_Load(EOS(STATIC_1517), o802, o803, o804)
1517_0_test_Load(EOS(STATIC_1517), o902, o903, o904) → 1518_0_test_NULL(EOS(STATIC_1518), o902, o903, o904, o902)
1518_0_test_NULL(EOS(STATIC_1518), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub)) → 1519_0_test_NULL(EOS(STATIC_1519), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub))
1518_0_test_NULL(EOS(STATIC_1518), NULL, o903, o904, NULL) → 1520_0_test_NULL(EOS(STATIC_1520), NULL, o903, o904, NULL)
1519_0_test_NULL(EOS(STATIC_1519), java.lang.Object(o921sub), o903, o904, java.lang.Object(o921sub)) → 1522_0_test_New(EOS(STATIC_1522), java.lang.Object(o921sub), o903, o904)
1520_0_test_NULL(EOS(STATIC_1520), NULL, o903, o904, NULL) → 1523_0_test_Return(EOS(STATIC_1523))
1522_0_test_New(EOS(STATIC_1522), java.lang.Object(o921sub), o903, o904) → 1524_0_test_Duplicate(EOS(STATIC_1524), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)))
1524_0_test_Duplicate(EOS(STATIC_1524), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL))) → 1527_0_test_Load(EOS(STATIC_1527), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
1527_0_test_Load(EOS(STATIC_1527), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 1530_0_test_Load(EOS(STATIC_1530), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub))
1530_0_test_Load(EOS(STATIC_1530), java.lang.Object(o921sub), o903, o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub)) → 1534_0_test_InvokeMethod(EOS(STATIC_1534), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1534_0_test_InvokeMethod(EOS(STATIC_1534), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1535_0_<init>_Load(EOS(STATIC_1535), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1535_0_<init>_Load(EOS(STATIC_1535), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1537_0_<init>_InvokeMethod(EOS(STATIC_1537), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)))
1537_0_<init>_InvokeMethod(EOS(STATIC_1537), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL))) → 1538_0_<init>_Load(EOS(STATIC_1538), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903)
1538_0_<init>_Load(EOS(STATIC_1538), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903) → 1540_0_<init>_Load(EOS(STATIC_1540), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)))
1540_0_<init>_Load(EOS(STATIC_1540), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL))) → 1541_0_<init>_FieldAccess(EOS(STATIC_1541), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub))
1541_0_<init>_FieldAccess(EOS(STATIC_1541), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903, java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub)) → 1543_0_<init>_Load(EOS(STATIC_1543), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903)
1543_0_<init>_Load(EOS(STATIC_1543), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903) → 1545_0_<init>_Load(EOS(STATIC_1545), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, o903, java.lang.Object(List(EOC, NULL)))
1545_0_<init>_Load(EOS(STATIC_1545), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, o903, java.lang.Object(List(EOC, NULL))) → 1546_0_<init>_FieldAccess(EOS(STATIC_1546), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903)
1546_0_<init>_FieldAccess(EOS(STATIC_1546), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(o921sub), o903, java.lang.Object(List(EOC, NULL)), o903) → 1549_0_<init>_Return(EOS(STATIC_1549), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o903)), java.lang.Object(o921sub), o903)
1549_0_<init>_Return(EOS(STATIC_1549), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o903)), java.lang.Object(o921sub), o903) → 1551_0_test_Store(EOS(STATIC_1551), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903)))
1551_0_test_Store(EOS(STATIC_1551), java.lang.Object(o921sub), o904, java.lang.Object(List(EOC, o903))) → 1552_0_test_New(EOS(STATIC_1552), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904)
1552_0_test_New(EOS(STATIC_1552), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904) → 1554_0_test_Duplicate(EOS(STATIC_1554), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1554_0_test_Duplicate(EOS(STATIC_1554), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1555_0_test_Load(EOS(STATIC_1555), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)))
1555_0_test_Load(EOS(STATIC_1555), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) → 1557_0_test_Load(EOS(STATIC_1557), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)))
1557_0_test_Load(EOS(STATIC_1557), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903))) → 1559_0_test_InvokeMethod(EOS(STATIC_1559), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1559_0_test_InvokeMethod(EOS(STATIC_1559), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1560_0_<init>_Load(EOS(STATIC_1560), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1560_0_<init>_Load(EOS(STATIC_1560), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1563_0_<init>_InvokeMethod(EOS(STATIC_1563), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1563_0_<init>_InvokeMethod(EOS(STATIC_1563), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1565_0_<init>_Load(EOS(STATIC_1565), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904)
1565_0_<init>_Load(EOS(STATIC_1565), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904) → 1567_0_<init>_Load(EOS(STATIC_1567), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)))
1567_0_<init>_Load(EOS(STATIC_1567), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL))) → 1568_0_<init>_FieldAccess(EOS(STATIC_1568), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)))
1568_0_<init>_FieldAccess(EOS(STATIC_1568), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904, java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903))) → 1573_0_<init>_Load(EOS(STATIC_1573), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904)
1573_0_<init>_Load(EOS(STATIC_1573), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904) → 1575_0_<init>_Load(EOS(STATIC_1575), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, o904, java.lang.Object(List(EOC, NULL)))
1575_0_<init>_Load(EOS(STATIC_1575), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, o904, java.lang.Object(List(EOC, NULL))) → 1577_0_<init>_FieldAccess(EOS(STATIC_1577), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904)
1577_0_<init>_FieldAccess(EOS(STATIC_1577), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, o903)), o904, java.lang.Object(List(EOC, NULL)), o904) → 1582_0_<init>_Return(EOS(STATIC_1582), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o903)), o904)
1582_0_<init>_Return(EOS(STATIC_1582), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o903)), o904) → 1584_0_test_Store(EOS(STATIC_1584), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1584_0_test_Store(EOS(STATIC_1584), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1585_0_test_Load(EOS(STATIC_1585), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1585_0_test_Load(EOS(STATIC_1585), java.lang.Object(o921sub), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1586_0_test_InvokeMethod(EOS(STATIC_1586), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub))
1586_0_test_InvokeMethod(EOS(STATIC_1586), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub)) → 1588_0_getTail_Load(EOS(STATIC_1588), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1588_0_getTail_Load(EOS(STATIC_1588), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1591_0_getTail_FieldAccess(EOS(STATIC_1591), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1591_0_getTail_FieldAccess(EOS(STATIC_1591), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1594_0_getTail_FieldAccess(EOS(STATIC_1594), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1591_0_getTail_FieldAccess(EOS(STATIC_1591), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub)) → 1595_0_getTail_FieldAccess(EOS(STATIC_1595), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(o921sub), java.lang.Object(o921sub))
1594_0_getTail_FieldAccess(EOS(STATIC_1594), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977))) → 1597_0_getTail_FieldAccess(EOS(STATIC_1597), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977)))
1595_0_getTail_FieldAccess(EOS(STATIC_1595), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980))) → 1598_0_getTail_FieldAccess(EOS(STATIC_1598), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980)))
1597_0_getTail_FieldAccess(EOS(STATIC_1597), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), java.lang.Object(List(EOC, o977))) → 1600_0_getTail_Return(EOS(STATIC_1600), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), o977)
1598_0_getTail_FieldAccess(EOS(STATIC_1598), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), java.lang.Object(List(EOC, o980))) → 1601_0_getTail_Return(EOS(STATIC_1601), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), o980)
1600_0_getTail_Return(EOS(STATIC_1600), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o977)), o977) → 1602_0_test_Store(EOS(STATIC_1602), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o977)
1601_0_getTail_Return(EOS(STATIC_1601), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), java.lang.Object(List(EOC, o980)), o980) → 1604_0_test_Store(EOS(STATIC_1604), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o980)
1602_0_test_Store(EOS(STATIC_1602), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o977) → 1605_0_test_JMP(EOS(STATIC_1605), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1604_0_test_Store(EOS(STATIC_1604), java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)), o980) → 1607_0_test_JMP(EOS(STATIC_1607), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1605_0_test_JMP(EOS(STATIC_1605), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1618_0_test_Load(EOS(STATIC_1618), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1607_0_test_JMP(EOS(STATIC_1607), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1630_0_test_Load(EOS(STATIC_1630), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1618_0_test_Load(EOS(STATIC_1618), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1517_0_test_Load(EOS(STATIC_1517), o977, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))
1630_0_test_Load(EOS(STATIC_1630), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904))) → 1517_0_test_Load(EOS(STATIC_1517), o980, java.lang.Object(List(EOC, o903)), java.lang.Object(List(EOC, o904)))

Combined rules. Obtained 14 conditional rules for P and 13 conditional rules for R.


P rules:
340_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), x0), x1, x2, x3, x1) → 824_1_main_InvokeMethod(824_0_length_ConstantStackPush(EOS(STATIC_824), x3), x2, x3, x1, x1, x3) | >(x0, 0)
824_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), x0), x1, x2, x3, x3, x2) → 882_1_main_InvokeMethod(882_0_length_ConstantStackPush(EOS(STATIC_882), x3), x1, x2, x3, x3) | <(0, %(x0, 3))
882_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), x0), x1, x2, x3, x3) → 912_0_main_NE(EOS(STATIC_912), x1, x2, x3, %(x0, 5))
912_0_main_NE(EOS(STATIC_912), x0, x1, x2, x3) → 1006_1_main_InvokeMethod(1006_0_length_ConstantStackPush(EOS(STATIC_1006), x0), x0, x1, x2, x0) | >(x3, 0)
1006_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), x0), x1, x2, x3, x1) → 1040_1_main_InvokeMethod(1040_0_length_ConstantStackPush(EOS(STATIC_1040), x2), x1, x2, x3, x0, x2)
1040_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), x0), x1, x2, x3, x4, x2) → 1080_1_main_InvokeMethod(1080_0_length_ConstantStackPush(EOS(STATIC_1080), x1), x1, x2, x3, x1) | <=(x4, x0)
1080_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), x0), x1, x2, x3, x1) → 1107_1_main_InvokeMethod(1107_0_length_ConstantStackPush(EOS(STATIC_1107), x2), x1, x2, x3, x0, x2)
1107_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), x0), x1, x2, java.lang.Object(List(EOC, x3)), x4, x2) → 1270_1_main_InvokeMethod(1270_0_test_Load(EOS(STATIC_1270), x1, x2, x3), x1, x2, x3, x1, x2, x3) | !(=(x4, x0))
1270_1_main_InvokeMethod(1523_0_test_Return(EOS(STATIC_1523)), x0, x1, x2, x0, x1, x2) → 340_1_main_InvokeMethod(340_0_length_ConstantStackPush(EOS(STATIC_340), x0), x0, x1, x2, x0)
1107_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), x0), x1, java.lang.Object(List(EOC, x2)), x3, x0, java.lang.Object(List(EOC, x2))) → 1270_1_main_InvokeMethod(1270_0_test_Load(EOS(STATIC_1270), x1, x2, x3), x1, x2, x3, x1, x2, x3)
1040_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), x0), java.lang.Object(List(EOC, x1)), x2, x3, x4, x2) → 1270_1_main_InvokeMethod(1270_0_test_Load(EOS(STATIC_1270), x1, x2, x3), x1, x2, x3, x1, x2, x3) | >(x4, x0)
912_0_main_NE(EOS(STATIC_912), x0, x1, java.lang.Object(List(EOC, x2)), 0) → 1006_1_main_InvokeMethod(1006_0_length_ConstantStackPush(EOS(STATIC_1006), x0), x0, x1, x2, x0)
824_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), x0), x1, x2, java.lang.Object(List(EOC, x3)), java.lang.Object(List(EOC, x3)), x2) → 926_1_main_InvokeMethod(926_0_length_ConstantStackPush(EOS(STATIC_926), java.lang.Object(List(EOC, x3))), x1, x2, java.lang.Object(List(EOC, x3)), java.lang.Object(List(EOC, x3))) | =(0, %(x0, 3))
926_1_main_InvokeMethod(813_0_length_Return(EOS(STATIC_813), x0), x1, x2, java.lang.Object(List(EOC, x3)), java.lang.Object(List(EOC, x3))) → 912_0_main_NE(EOS(STATIC_912), x1, x2, java.lang.Object(List(EOC, x3)), %(x0, 5))
R rules:
340_0_length_ConstantStackPush(EOS(STATIC_340), x0) → 798_0_length_NULL(EOS(STATIC_798), x0, 0, x0)
824_0_length_ConstantStackPush(EOS(STATIC_824), x0) → 798_0_length_NULL(EOS(STATIC_798), x0, 0, x0)
882_0_length_ConstantStackPush(EOS(STATIC_882), x0) → 798_0_length_NULL(EOS(STATIC_798), x0, 0, x0)
1006_0_length_ConstantStackPush(EOS(STATIC_1006), x0) → 798_0_length_NULL(EOS(STATIC_798), x0, 0, x0)
1040_0_length_ConstantStackPush(EOS(STATIC_1040), x0) → 798_0_length_NULL(EOS(STATIC_798), x0, 0, x0)
1080_0_length_ConstantStackPush(EOS(STATIC_1080), x0) → 798_0_length_NULL(EOS(STATIC_798), x0, 0, x0)
1107_0_length_ConstantStackPush(EOS(STATIC_1107), x0) → 798_0_length_NULL(EOS(STATIC_798), x0, 0, x0)
926_0_length_ConstantStackPush(EOS(STATIC_926), java.lang.Object(List(EOC, x0))) → 798_0_length_NULL(EOS(STATIC_798), java.lang.Object(List(EOC, x0)), 0, java.lang.Object(List(EOC, x0)))
798_0_length_NULL(EOS(STATIC_798), NULL, x0, NULL) → 813_0_length_Return(EOS(STATIC_813), x0)
798_0_length_NULL(EOS(STATIC_798), java.lang.Object(List(EOC, x0)), x1, java.lang.Object(List(EOC, x0))) → 798_0_length_NULL(EOS(STATIC_798), x0, +(x1, 1), x0) | >(+(x1, 1), 0)
1270_0_test_Load(EOS(STATIC_1270), x0, x1, x2) → 1518_0_test_NULL(EOS(STATIC_1518), x0, x1, x2, x0)
1518_0_test_NULL(EOS(STATIC_1518), NULL, x0, x1, NULL) → 1523_0_test_Return(EOS(STATIC_1523))
1518_0_test_NULL(EOS(STATIC_1518), java.lang.Object(List(EOC, x0)), x1, x2, java.lang.Object(List(EOC, x0))) → 1518_0_test_NULL(EOS(STATIC_1518), x0, java.lang.Object(List(EOC, x1)), java.lang.Object(List(EOC, x2)), x0)

Filtered ground terms:



912_0_main_NE(x1, x2, x3, x4, x5) → 912_0_main_NE(x2, x3, x4, x5)
List(x1, x2) → List(x2)
813_0_length_Return(x1, x2) → 813_0_length_Return(x2)
926_0_length_ConstantStackPush(x1, x2) → 926_0_length_ConstantStackPush(x2)
1006_0_length_ConstantStackPush(x1, x2) → 1006_0_length_ConstantStackPush(x2)
1270_0_test_Load(x1, x2, x3, x4) → 1270_0_test_Load(x2, x3, x4)
340_0_length_ConstantStackPush(x1, x2) → 340_0_length_ConstantStackPush(x2)
1523_0_test_Return(x1) → 1523_0_test_Return
1107_0_length_ConstantStackPush(x1, x2) → 1107_0_length_ConstantStackPush(x2)
1080_0_length_ConstantStackPush(x1, x2) → 1080_0_length_ConstantStackPush(x2)
1040_0_length_ConstantStackPush(x1, x2) → 1040_0_length_ConstantStackPush(x2)
Cond_912_0_main_NE(x1, x2, x3, x4, x5, x6) → Cond_912_0_main_NE(x1, x3, x4, x5, x6)
882_0_length_ConstantStackPush(x1, x2) → 882_0_length_ConstantStackPush(x2)
824_0_length_ConstantStackPush(x1, x2) → 824_0_length_ConstantStackPush(x2)
1518_0_test_NULL(x1, x2, x3, x4, x5) → 1518_0_test_NULL(x2, x3, x4, x5)
798_0_length_NULL(x1, x2, x3, x4) → 798_0_length_NULL(x2, x3, x4)
Cond_798_0_length_NULL(x1, x2, x3, x4, x5) → Cond_798_0_length_NULL(x1, x3, x4, x5)

Filtered duplicate args:



340_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 340_1_main_InvokeMethod(x1, x3, x4, x5)
Cond_340_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_340_1_main_InvokeMethod(x1, x2, x4, x5, x6)
824_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 824_1_main_InvokeMethod(x1, x2, x5, x6)
Cond_824_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_824_1_main_InvokeMethod(x1, x2, x3, x6, x7)
882_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 882_1_main_InvokeMethod(x1, x2, x3, x5)
1006_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 1006_1_main_InvokeMethod(x1, x3, x4, x5)
1040_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 1040_1_main_InvokeMethod(x1, x2, x4, x5, x6)
Cond_1040_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_1040_1_main_InvokeMethod(x1, x2, x3, x5, x6, x7)
1080_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 1080_1_main_InvokeMethod(x1, x3, x4, x5)
1107_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → 1107_1_main_InvokeMethod(x1, x2, x4, x5, x6)
Cond_1107_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_1107_1_main_InvokeMethod(x1, x2, x3, x5, x6, x7)
1270_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 1270_1_main_InvokeMethod(x1, x5, x6, x7)
Cond_1040_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7) → Cond_1040_1_main_InvokeMethod1(x1, x2, x3, x5, x6, x7)
Cond_824_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6, x7) → Cond_824_1_main_InvokeMethod1(x1, x2, x3, x6, x7)
926_1_main_InvokeMethod(x1, x2, x3, x4, x5) → 926_1_main_InvokeMethod(x1, x2, x3, x5)
798_0_length_NULL(x1, x2, x3) → 798_0_length_NULL(x2, x3)
Cond_798_0_length_NULL(x1, x2, x3, x4) → Cond_798_0_length_NULL(x1, x3, x4)
1518_0_test_NULL(x1, x2, x3, x4) → 1518_0_test_NULL(x2, x3, x4)

Filtered unneeded arguments:



Cond_340_1_main_InvokeMethod(x1, x2, x3, x4, x5) → Cond_340_1_main_InvokeMethod(x1, x3, x4, x5)
Cond_824_1_main_InvokeMethod(x1, x2, x3, x4, x5) → Cond_824_1_main_InvokeMethod(x1, x3, x4, x5)
Cond_912_0_main_NE(x1, x2, x3, x4, x5) → Cond_912_0_main_NE(x1, x2, x3, x4)
Cond_1040_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_1040_1_main_InvokeMethod(x1, x3, x4, x6)
Cond_1107_1_main_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_1107_1_main_InvokeMethod(x1, x3, x4, x6)
Cond_1040_1_main_InvokeMethod1(x1, x2, x3, x4, x5, x6) → Cond_1040_1_main_InvokeMethod1(x1, x3, x4, x6)
Cond_824_1_main_InvokeMethod1(x1, x2, x3, x4, x5) → Cond_824_1_main_InvokeMethod1(x1, x3, x4, x5)
1518_0_test_NULL(x1, x2, x3) → 1518_0_test_NULL(x3)
1270_0_test_Load(x1, x2, x3) → 1270_0_test_Load(x1)

Filtered modulo operations.


Combined rules. Obtained 14 conditional rules for P and 13 conditional rules for R.


P rules:
340_1_main_InvokeMethod(813_0_length_Return(x0), x2, x3, x1) → 824_1_main_InvokeMethod(824_0_length_ConstantStackPush(x3), x2, x1, x3) | >(x0, 0)
824_1_main_InvokeMethod(813_0_length_Return(x0), x1, x3, x2) → 882_1_main_InvokeMethod(882_0_length_ConstantStackPush(x3), x1, x2, x3)
882_1_main_InvokeMethod(813_0_length_Return(x0), x1, x2, x3) → 912_0_main_NE(x1, x2, x3, fresh2)
912_0_main_NE(x0, x1, x2, x3) → 1006_1_main_InvokeMethod(1006_0_length_ConstantStackPush(x0), x1, x2, x0) | >(x3, 0)
1006_1_main_InvokeMethod(813_0_length_Return(x0), x2, x3, x1) → 1040_1_main_InvokeMethod(1040_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
1040_1_main_InvokeMethod(813_0_length_Return(x0), x1, x3, x4, x2) → 1080_1_main_InvokeMethod(1080_0_length_ConstantStackPush(x1), x2, x3, x1) | <=(x4, x0)
1080_1_main_InvokeMethod(813_0_length_Return(x0), x2, x3, x1) → 1107_1_main_InvokeMethod(1107_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
1107_1_main_InvokeMethod(813_0_length_Return(x0), x1, java.lang.Object(List(x3)), x4, x2) → 1270_1_main_InvokeMethod(1270_0_test_Load(x1), x1, x2, x3) | !(=(x4, x0))
1270_1_main_InvokeMethod(1523_0_test_Return, x0, x1, x2) → 340_1_main_InvokeMethod(340_0_length_ConstantStackPush(x0), x1, x2, x0)
1107_1_main_InvokeMethod(813_0_length_Return(x0), x1, x3, x0, java.lang.Object(List(x2))) → 1270_1_main_InvokeMethod(1270_0_test_Load(x1), x1, x2, x3)
1040_1_main_InvokeMethod(813_0_length_Return(x0), java.lang.Object(List(x1)), x3, x4, x2) → 1270_1_main_InvokeMethod(1270_0_test_Load(x1), x1, x2, x3) | >(x4, x0)
912_0_main_NE(x0, x1, java.lang.Object(List(x2)), 0) → 1006_1_main_InvokeMethod(1006_0_length_ConstantStackPush(x0), x1, x2, x0)
824_1_main_InvokeMethod(813_0_length_Return(x0), x1, java.lang.Object(List(x3)), x2) → 926_1_main_InvokeMethod(926_0_length_ConstantStackPush(java.lang.Object(List(x3))), x1, x2, java.lang.Object(List(x3)))
926_1_main_InvokeMethod(813_0_length_Return(x0), x1, x2, java.lang.Object(List(x3))) → 912_0_main_NE(x1, x2, java.lang.Object(List(x3)), fresh2)
R rules:
340_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
824_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
882_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
1006_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
1040_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
1080_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
1107_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 798_0_length_NULL(0, java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL) → 813_0_length_Return(x0)
798_0_length_NULL(x1, java.lang.Object(List(x0))) → 798_0_length_NULL(+(x1, 1), x0) | >(x1, -1)
1270_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1523_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

Performed bisimulation on rules. Used the following equivalence classes: {[340_0_length_ConstantStackPush_1, 824_0_length_ConstantStackPush_1, 882_0_length_ConstantStackPush_1, 1006_0_length_ConstantStackPush_1, 1040_0_length_ConstantStackPush_1, 1080_0_length_ConstantStackPush_1, 1107_0_length_ConstantStackPush_1]=340_0_length_ConstantStackPush_1, [List_1, 813_0_length_Return_1]=List_1}


Finished conversion. Obtained 19 rules for P and 8 rules for R. System has predefined symbols.


P rules:
340_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → COND_340_1_MAIN_INVOKEMETHOD(>(x0, 0), List(x0), x2, x3, x1)
COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x2, x3, x1) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3), x2, x1, x3)
824_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x2) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3), x1, x2, x3)
882_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, x3) → 912_0_MAIN_NE(x1, x2, x3, fresh2)
912_0_MAIN_NE(x0, x1, x2, x3) → COND_912_0_MAIN_NE(>(x3, 0), x0, x1, x2, x3)
COND_912_0_MAIN_NE(TRUE, x0, x1, x2, x3) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0), x1, x2, x0)
1006_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
1040_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x4, x2) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4, x0), List(x0), x1, x3, x4, x2)
COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, x3, x4, x2) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1), x2, x3, x1)
1080_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
1107_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x4, x2) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4, x0)), List(x0), x1, java.lang.Object(List(x3)), x4, x2)
COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, java.lang.Object(List(x3)), x4, x2) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1), x1, x2, x3)
1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0, x1, x2) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0), x1, x2, x0)
1107_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x0, java.lang.Object(List(x2))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1), x1, x2, x3)
1040_1_MAIN_INVOKEMETHOD(List(x0), java.lang.Object(List(x1)), x3, x4, x2) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4, x0), List(x0), java.lang.Object(List(x1)), x3, x4, x2)
COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0), java.lang.Object(List(x1)), x3, x4, x2) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1), x1, x2, x3)
912_0_MAIN_NE(x0, x1, java.lang.Object(List(x2)), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0), x1, x2, x0)
824_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x2) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3))), x1, x2, java.lang.Object(List(x3)))
926_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, java.lang.Object(List(x3))) → 912_0_MAIN_NE(x1, x2, java.lang.Object(List(x3)), fresh2)
R rules:
340_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 798_0_length_NULL(0, java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL) → List(x0)
798_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_798_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 798_0_length_NULL(+(x1, 1), x0)
1270_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1523_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

(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:
340_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 798_0_length_NULL(0, java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL) → List(x0)
798_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_798_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 798_0_length_NULL(x1 + 1, x0)
1270_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1523_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(0): 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(1): COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(2): 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(3): 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(4): 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(5): COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(6): 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(7): 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(8): COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(9): 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(10): 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(11): COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(12): 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(13): 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(14): 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(15): COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
(16): 912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])
(17): 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))
(18): 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])

(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (340_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(1) -> (17), if (340_0_length_ConstantStackPush(x3[1]) →* List(x0[17])∧x2[1]* x1[17]x1[1]* java.lang.Object(List(x3[17]))∧x3[1]* x2[17])


(2) -> (3), if (340_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(3) -> (16), if (x1[3]* x0[16]x2[3]* x1[16]x3[3]* java.lang.Object(List(x2[16]))∧fresh2[3]* 0)


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (340_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(6) -> (14), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (340_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


(9) -> (13), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


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


(11) -> (12), if (1270_0_test_Load(x1[11]) →* 1523_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(12) -> (0), if (340_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(13) -> (12), if (1270_0_test_Load(x1[13]) →* 1523_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


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


(15) -> (12), if (1270_0_test_Load(x1[15]) →* 1523_0_test_Returnx1[15]* x0[12]x2[15]* x1[12]x3[15]* x2[12])


(16) -> (6), if (340_0_length_ConstantStackPush(x0[16]) →* List(x0[6])∧x1[16]* x2[6]x2[16]* x3[6]x0[16]* x1[6])


(17) -> (18), if (926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))) →* List(x0[18])∧x1[17]* x1[18]x2[17]* x2[18]java.lang.Object(List(x3[17])) →* java.lang.Object(List(x3[18])))


(18) -> (4), if (x1[18]* x0[4]x2[18]* x1[4]java.lang.Object(List(x3[18])) →* x2[4]fresh2[18]* x3[4])


(18) -> (16), if (x1[18]* x0[16]x2[18]* x1[16]java.lang.Object(List(x3[18])) →* java.lang.Object(List(x2[16]))∧fresh2[18]* 0)



The set Q consists of the following terms:
340_0_length_ConstantStackPush(x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL)
798_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_798_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1270_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(33) 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@3c8cd587 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 340_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → COND_340_1_MAIN_INVOKEMETHOD(>(x0, 0), List(x0), x2, x3, x1) the following chains were created:
  • We consider the chain 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) which results in the following constraint:

    (1)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



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

    (2)    (>(x0[0], 0)=TRUE340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



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

    (3)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_107 + (-1)Bound*bni_107] + [bni_107]x1[0] ≥ 0∧[(-1)bso_108] ≥ 0)



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

    (4)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_107 + (-1)Bound*bni_107] + [bni_107]x1[0] ≥ 0∧[(-1)bso_108] ≥ 0)



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

    (5)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_107 + (-1)Bound*bni_107] + [bni_107]x1[0] ≥ 0∧[(-1)bso_108] ≥ 0)



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

    (6)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_107 + (-1)Bound*bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)







For Pair COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x2, x3, x1) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3), x2, x1, x3) the following chains were created:
  • We consider the chain 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) which results in the following constraint:

    (7)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]340_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥NonInfC∧COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])∧(UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



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

    (8)    (>(x0[0], 0)=TRUE798_0_length_NULL(0, x3[1])=List(x0[2]) ⇒ COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥NonInfC∧COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[0], x1[0], x3[1])∧(UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



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

    (9)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_109 + (-1)Bound*bni_109] + [bni_109]x1[0] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (10)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_109 + (-1)Bound*bni_109] + [bni_109]x1[0] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (11)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_109 + (-1)Bound*bni_109] + [bni_109]x1[0] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (12)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_109 + (-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)



  • We consider the chain 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))) which results in the following constraint:

    (13)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]340_0_length_ConstantStackPush(x3[1])=List(x0[17])∧x2[1]=x1[17]x1[1]=java.lang.Object(List(x3[17]))∧x3[1]=x2[17]COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥NonInfC∧COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])∧(UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



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

    (14)    (>(x0[0], 0)=TRUE798_0_length_NULL(0, x3[1])=List(x0[17]) ⇒ COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], java.lang.Object(List(x3[17])))≥NonInfC∧COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], java.lang.Object(List(x3[17])))≥824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[0], java.lang.Object(List(x3[17])), x3[1])∧(UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



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

    (15)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)Bound*bni_109] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (16)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)Bound*bni_109] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (17)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)Bound*bni_109] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (18)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)







For Pair 824_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x2) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3), x1, x2, x3) the following chains were created:
  • We consider the chain COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) which results in the following constraint:

    (19)    (340_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]340_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (20)    (0=x0798_0_length_NULL(x0, x3[1])=List(x0[2])∧0=x1798_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], x3[1], x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (20) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x0, x3[1])=List(x0[2]) which results in the following new constraints:

    (21)    (List(x2)=List(x0[2])∧0=x20=x1798_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (22)    (Cond_798_0_length_NULL(>(x4, -1), x4, java.lang.Object(List(x3)))=List(x0[2])∧0=x40=x1798_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x3)), x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (23)    (0=x1798_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (24)    (>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_798_0_length_NULL(x10, x4, x11)=List(x0[2])∧0=x40=x1798_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x3)), x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (23) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x1, x3[2])=List(x0[3]) which results in the following new constraints:

    (25)    (List(x5)=List(x0[3])∧0=x5824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (26)    (Cond_798_0_length_NULL(>(x7, -1), x7, java.lang.Object(List(x6)))=List(x0[3])∧0=x7824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x6))), x2[1], NULL, java.lang.Object(List(x6)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (27)    (824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (28)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x6)))=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x6))), x2[1], NULL, java.lang.Object(List(x6)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (29)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (24) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x1, x3[2])=List(x0[3]) which results in the following new constraints:

    (30)    (List(x12)=List(x0[3])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_798_0_length_NULL(x10, x4, x11)=List(x0[2])∧0=x40=x12824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x3)), NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (31)    (Cond_798_0_length_NULL(>(x14, -1), x14, java.lang.Object(List(x13)))=List(x0[3])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_798_0_length_NULL(x10, x4, x11)=List(x0[2])∧0=x40=x14824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x13))), x2[1], java.lang.Object(List(x3)), java.lang.Object(List(x13)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (32)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x3)))=List(x0[2]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x3)), NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (33)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x3)))=List(x0[2])∧Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x13)))=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x13))), x2[1], java.lang.Object(List(x3)), java.lang.Object(List(x13)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (34)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (35)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (36)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (37)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



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

    (38)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (39)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (40)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (41)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



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

    (42)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (43)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (44)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (45)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (46)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (47)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (48)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)







For Pair 882_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, x3) → 912_0_MAIN_NE(x1, x2, x3, fresh2) the following chains were created:
  • We consider the chain 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) which results in the following constraint:

    (49)    (340_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]x1[3]=x0[4]x2[3]=x1[4]x3[3]=x2[4]fresh2[3]=x3[4]882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (50)    (0=x17798_0_length_NULL(x17, x3[2])=List(x0[3]) ⇒ 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥912_0_MAIN_NE(x1[2], x2[2], x3[2], fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (50) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x17, x3[2])=List(x0[3]) which results in the following new constraints:

    (51)    (List(x18)=List(x0[3])∧0=x18882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥912_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))


    (52)    (Cond_798_0_length_NULL(>(x20, -1), x20, java.lang.Object(List(x19)))=List(x0[3])∧0=x20882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥912_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x19)), fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (53)    (882_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥912_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (54)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x19)))=List(x0[3]) ⇒ 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥912_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x19)), fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (55)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



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

    (56)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



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

    (57)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



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

    (58)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



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

    (59)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



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

    (60)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



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

    (61)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



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

    (62)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



  • We consider the chain 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]) which results in the following constraint:

    (63)    (340_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]x1[3]=x0[16]x2[3]=x1[16]x3[3]=java.lang.Object(List(x2[16]))∧fresh2[3]=0882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (64)    (1=x23798_0_length_NULL(x23, x2[16])=List(x0[3]) ⇒ 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x2[16])))≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x2[16])))≥912_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x2[16])), 0)∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (64) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x23, x2[16])=List(x0[3]) which results in the following new constraints:

    (65)    (List(x24)=List(x0[3])∧1=x24882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(NULL)))≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(NULL)))≥912_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(NULL)), 0)∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))


    (66)    (Cond_798_0_length_NULL(>(x26, -1), x26, java.lang.Object(List(x25)))=List(x0[3])∧1=x26882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))))≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))))≥912_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))), 0)∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (67)    (882_1_MAIN_INVOKEMETHOD(List(1), x1[2], x2[2], java.lang.Object(List(NULL)))≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(1), x1[2], x2[2], java.lang.Object(List(NULL)))≥912_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(NULL)), 0)∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (68)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x25)))=List(x0[3]) ⇒ 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))))≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))))≥912_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(java.lang.Object(List(x25)))), 0)∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (69)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



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

    (70)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



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

    (71)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



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

    (72)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



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

    (73)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



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

    (74)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



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

    (75)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



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

    (76)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)







For Pair 912_0_MAIN_NE(x0, x1, x2, x3) → COND_912_0_MAIN_NE(>(x3, 0), x0, x1, x2, x3) the following chains were created:
  • We consider the chain 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) which results in the following constraint:

    (77)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



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

    (78)    (>(x3[4], 0)=TRUE912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



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

    (79)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] + [bni_115]x2[4] ≥ 0∧[(-1)bso_116] + x2[4] ≥ 0)



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

    (80)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] + [bni_115]x2[4] ≥ 0∧[(-1)bso_116] + x2[4] ≥ 0)



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

    (81)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] + [bni_115]x2[4] ≥ 0∧[(-1)bso_116] + x2[4] ≥ 0)



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

    (82)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_115] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0)







For Pair COND_912_0_MAIN_NE(TRUE, x0, x1, x2, x3) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0), x1, x2, x0) the following chains were created:
  • We consider the chain 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (83)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]340_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥NonInfC∧COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



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

    (84)    (>(x3[4], 0)=TRUE798_0_length_NULL(0, x0[5])=List(x0[6]) ⇒ COND_912_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥NonInfC∧COND_912_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[4], x2[4], x0[5])∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



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

    (85)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧[(-1)bso_118] ≥ 0)



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

    (86)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧[(-1)bso_118] ≥ 0)



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

    (87)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧[(-1)bso_118] ≥ 0)



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

    (88)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)







For Pair 1006_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2), x1, x3, x0, x2) the following chains were created:
  • We consider the chain COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) which results in the following constraint:

    (89)    (340_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]340_0_length_ConstantStackPush(x2[6])=List(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x0[6]=x4[7]x2[6]=x2[7]1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (90)    (0=x29798_0_length_NULL(x29, x0[5])=List(x0[6])∧0=x30798_0_length_NULL(x30, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x0[5], x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (90) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x29, x0[5])=List(x0[6]) which results in the following new constraints:

    (91)    (List(x31)=List(x0[6])∧0=x310=x30798_0_length_NULL(x30, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), NULL, x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (92)    (Cond_798_0_length_NULL(>(x33, -1), x33, java.lang.Object(List(x32)))=List(x0[6])∧0=x330=x30798_0_length_NULL(x30, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x32)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x32)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x32)), x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (93)    (0=x30798_0_length_NULL(x30, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), NULL, x2[5], 0, x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (94)    (>(x33, -1)=x39java.lang.Object(List(x32))=x40Cond_798_0_length_NULL(x39, x33, x40)=List(x0[6])∧0=x330=x30798_0_length_NULL(x30, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x32)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x32)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x32)), x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (93) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x30, x2[6])=List(x0[7]) which results in the following new constraints:

    (95)    (List(x34)=List(x0[7])∧0=x341006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (96)    (Cond_798_0_length_NULL(>(x36, -1), x36, java.lang.Object(List(x35)))=List(x0[7])∧0=x361006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x35)), x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x35)), x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x35))), NULL, x2[5], 0, java.lang.Object(List(x35)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (97)    (1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (98)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x35)))=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x35)), x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x35)), x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x35))), NULL, x2[5], 0, java.lang.Object(List(x35)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (99)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (94) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x30, x2[6])=List(x0[7]) which results in the following new constraints:

    (100)    (List(x41)=List(x0[7])∧>(x33, -1)=x39java.lang.Object(List(x32))=x40Cond_798_0_length_NULL(x39, x33, x40)=List(x0[6])∧0=x330=x411006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x32)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x32)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x32)), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (101)    (Cond_798_0_length_NULL(>(x43, -1), x43, java.lang.Object(List(x42)))=List(x0[7])∧>(x33, -1)=x39java.lang.Object(List(x32))=x40Cond_798_0_length_NULL(x39, x33, x40)=List(x0[6])∧0=x330=x431006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x42)), x2[5], java.lang.Object(List(x32)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x42)), x2[5], java.lang.Object(List(x32)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x42))), java.lang.Object(List(x32)), x2[5], x0[6], java.lang.Object(List(x42)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (102)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x32)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x32)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x32)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x32)), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (103)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x32)))=List(x0[6])∧Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x42)))=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x42)), x2[5], java.lang.Object(List(x32)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x42)), x2[5], java.lang.Object(List(x32)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x42))), java.lang.Object(List(x32)), x2[5], x0[6], java.lang.Object(List(x42)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (104)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (105)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (106)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (107)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (108)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (109)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (110)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (111)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (112)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (113)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (114)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (115)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (116)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (117)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (118)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



  • We consider the chain 912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) which results in the following constraint:

    (119)    (340_0_length_ConstantStackPush(x0[16])=List(x0[6])∧x1[16]=x2[6]x2[16]=x3[6]x0[16]=x1[6]340_0_length_ConstantStackPush(x2[6])=List(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x0[6]=x4[7]x2[6]=x2[7]1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (120)    (0=x46798_0_length_NULL(x46, x0[16])=List(x0[6])∧0=x47798_0_length_NULL(x47, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], x0[16])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], x0[16])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x0[16], x2[16], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (120) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x46, x0[16])=List(x0[6]) which results in the following new constraints:

    (121)    (List(x48)=List(x0[6])∧0=x480=x47798_0_length_NULL(x47, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), NULL, x2[16], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (122)    (Cond_798_0_length_NULL(>(x50, -1), x50, java.lang.Object(List(x49)))=List(x0[6])∧0=x500=x47798_0_length_NULL(x47, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x49)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x49)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x49)), x2[16], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (123)    (0=x47798_0_length_NULL(x47, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[16], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[16], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), NULL, x2[16], 0, x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (124)    (>(x50, -1)=x56java.lang.Object(List(x49))=x57Cond_798_0_length_NULL(x56, x50, x57)=List(x0[6])∧0=x500=x47798_0_length_NULL(x47, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x49)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x49)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x49)), x2[16], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (123) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x47, x2[6])=List(x0[7]) which results in the following new constraints:

    (125)    (List(x51)=List(x0[7])∧0=x511006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, x2[16], 0, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (126)    (Cond_798_0_length_NULL(>(x53, -1), x53, java.lang.Object(List(x52)))=List(x0[7])∧0=x531006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x52)), x2[16], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x52)), x2[16], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x52))), NULL, x2[16], 0, java.lang.Object(List(x52)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (127)    (1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[16], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, x2[16], 0, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (128)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x52)))=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x52)), x2[16], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x52)), x2[16], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x52))), NULL, x2[16], 0, java.lang.Object(List(x52)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (129)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (124) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x47, x2[6])=List(x0[7]) which results in the following new constraints:

    (130)    (List(x58)=List(x0[7])∧>(x50, -1)=x56java.lang.Object(List(x49))=x57Cond_798_0_length_NULL(x56, x50, x57)=List(x0[6])∧0=x500=x581006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x49)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x49)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x49)), x2[16], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (131)    (Cond_798_0_length_NULL(>(x60, -1), x60, java.lang.Object(List(x59)))=List(x0[7])∧>(x50, -1)=x56java.lang.Object(List(x49))=x57Cond_798_0_length_NULL(x56, x50, x57)=List(x0[6])∧0=x500=x601006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x59)), x2[16], java.lang.Object(List(x49)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x59)), x2[16], java.lang.Object(List(x49)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x59))), java.lang.Object(List(x49)), x2[16], x0[6], java.lang.Object(List(x59)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (132)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x49)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x49)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x49)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x49)), x2[16], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (133)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x49)))=List(x0[6])∧Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x59)))=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x59)), x2[16], java.lang.Object(List(x49)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x59)), x2[16], java.lang.Object(List(x49)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x59))), java.lang.Object(List(x49)), x2[16], x0[6], java.lang.Object(List(x59)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (134)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (135)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (136)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (137)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (138)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (139)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (140)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (141)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (142)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (143)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (144)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (145)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (146)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (147)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (148)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



  • We consider the chain COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) which results in the following constraint:

    (149)    (340_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]340_0_length_ConstantStackPush(x2[6])=List(x0[14])∧x1[6]=java.lang.Object(List(x1[14]))∧x3[6]=x3[14]x0[6]=x4[14]x2[6]=x2[14]1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (150)    (0=x63798_0_length_NULL(x63, x2[6])=List(x0[14])∧1=x64798_0_length_NULL(x64, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x1[14])), x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (150) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x63, x2[6])=List(x0[14]) which results in the following new constraints:

    (151)    (List(x65)=List(x0[14])∧0=x651=x64798_0_length_NULL(x64, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (152)    (Cond_798_0_length_NULL(>(x67, -1), x67, java.lang.Object(List(x66)))=List(x0[14])∧0=x671=x64798_0_length_NULL(x64, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x66)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (153)    (1=x64798_0_length_NULL(x64, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (154)    (>(x67, -1)=x73java.lang.Object(List(x66))=x74Cond_798_0_length_NULL(x73, x67, x74)=List(x0[14])∧0=x671=x64798_0_length_NULL(x64, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x66)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (153) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x64, x1[14])=List(x0[6]) which results in the following new constraints:

    (155)    (List(x68)=List(x0[6])∧1=x681006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (156)    (Cond_798_0_length_NULL(>(x70, -1), x70, java.lang.Object(List(x69)))=List(x0[6])∧1=x701006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x69)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x69)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x69)))), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (157)    (1006_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], 1, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (158)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x69)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x69)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x69)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x69)))), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (159)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (154) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x64, x1[14])=List(x0[6]) which results in the following new constraints:

    (160)    (List(x75)=List(x0[6])∧>(x67, -1)=x73java.lang.Object(List(x66))=x74Cond_798_0_length_NULL(x73, x67, x74)=List(x0[14])∧0=x671=x751006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(NULL)), x2[5], x0[6], java.lang.Object(List(x66)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (161)    (Cond_798_0_length_NULL(>(x77, -1), x77, java.lang.Object(List(x76)))=List(x0[6])∧>(x67, -1)=x73java.lang.Object(List(x66))=x74Cond_798_0_length_NULL(x73, x67, x74)=List(x0[14])∧0=x671=x771006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(java.lang.Object(List(x76)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(java.lang.Object(List(x76)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(java.lang.Object(List(x76)))), x2[5], x0[6], java.lang.Object(List(x66)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (162)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x66)))=List(x0[14]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(NULL)), x2[5], 1, java.lang.Object(List(x66)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (163)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x66)))=List(x0[14])∧Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x76)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(java.lang.Object(List(x76)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x66)), x2[5], java.lang.Object(List(java.lang.Object(List(x76)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x66))), java.lang.Object(List(java.lang.Object(List(x76)))), x2[5], x0[6], java.lang.Object(List(x66)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (164)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (165)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (166)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (167)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (168)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (169)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (170)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (171)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (172)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (173)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (174)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (175)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (176)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (177)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (178)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



  • We consider the chain 912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) which results in the following constraint:

    (179)    (340_0_length_ConstantStackPush(x0[16])=List(x0[6])∧x1[16]=x2[6]x2[16]=x3[6]x0[16]=x1[6]340_0_length_ConstantStackPush(x2[6])=List(x0[14])∧x1[6]=java.lang.Object(List(x1[14]))∧x3[6]=x3[14]x0[6]=x4[14]x2[6]=x2[14]1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (180)    (0=x80798_0_length_NULL(x80, x2[6])=List(x0[14])∧1=x81798_0_length_NULL(x81, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[16], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x1[14])), x2[16], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (180) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x80, x2[6])=List(x0[14]) which results in the following new constraints:

    (181)    (List(x82)=List(x0[14])∧0=x821=x81798_0_length_NULL(x81, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[16], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (182)    (Cond_798_0_length_NULL(>(x84, -1), x84, java.lang.Object(List(x83)))=List(x0[14])∧0=x841=x81798_0_length_NULL(x81, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(x1[14])), x2[16], x0[6], java.lang.Object(List(x83)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (183)    (1=x81798_0_length_NULL(x81, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[16], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (184)    (>(x84, -1)=x90java.lang.Object(List(x83))=x91Cond_798_0_length_NULL(x90, x84, x91)=List(x0[14])∧0=x841=x81798_0_length_NULL(x81, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(x1[14])), x2[16], x0[6], java.lang.Object(List(x83)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (183) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x81, x1[14])=List(x0[6]) which results in the following new constraints:

    (185)    (List(x85)=List(x0[6])∧1=x851006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[16], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (186)    (Cond_798_0_length_NULL(>(x87, -1), x87, java.lang.Object(List(x86)))=List(x0[6])∧1=x871006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x86)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x86)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x86)))), x2[16], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (187)    (1006_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[16], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[16], 1, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (188)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x86)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x86)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[16], java.lang.Object(List(java.lang.Object(List(x86)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x86)))), x2[16], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (189)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (184) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x81, x1[14])=List(x0[6]) which results in the following new constraints:

    (190)    (List(x92)=List(x0[6])∧>(x84, -1)=x90java.lang.Object(List(x83))=x91Cond_798_0_length_NULL(x90, x84, x91)=List(x0[14])∧0=x841=x921006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(NULL)), x2[16], x0[6], java.lang.Object(List(x83)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (191)    (Cond_798_0_length_NULL(>(x94, -1), x94, java.lang.Object(List(x93)))=List(x0[6])∧>(x84, -1)=x90java.lang.Object(List(x83))=x91Cond_798_0_length_NULL(x90, x84, x91)=List(x0[14])∧0=x841=x941006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(java.lang.Object(List(x93)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(java.lang.Object(List(x93)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(java.lang.Object(List(x93)))), x2[16], x0[6], java.lang.Object(List(x83)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (192)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x83)))=List(x0[14]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(NULL)), x2[16], 1, java.lang.Object(List(x83)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (193)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x83)))=List(x0[14])∧Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x93)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(java.lang.Object(List(x93)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x83)), x2[16], java.lang.Object(List(java.lang.Object(List(x93)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x83))), java.lang.Object(List(java.lang.Object(List(x93)))), x2[16], x0[6], java.lang.Object(List(x83)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (194)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (195)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (196)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (197)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (198)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (199)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (200)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (201)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (202)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (203)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (204)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (205)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (206)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (207)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (208)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)







For Pair 1040_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x4, x2) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4, x0), List(x0), x1, x3, x4, x2) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) which results in the following constraint:

    (209)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



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

    (210)    (<=(x4[7], x0[7])=TRUE1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



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

    (211)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧[(-1)bso_122] + x1[7] ≥ 0)



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

    (212)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧[(-1)bso_122] + x1[7] ≥ 0)



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

    (213)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧[(-1)bso_122] + x1[7] ≥ 0)



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

    (214)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0)







For Pair COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, x3, x4, x2) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1), x2, x3, x1) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) which results in the following constraint:

    (215)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]340_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



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

    (216)    (<=(x4[7], x0[7])=TRUE0=x97798_0_length_NULL(x97, x1[8])=List(x0[9]) ⇒ COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[7], x3[7], x1[8])∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (216) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x97, x1[8])=List(x0[9]) which results in the following new constraints:

    (217)    (List(x98)=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x98COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))


    (218)    (Cond_798_0_length_NULL(>(x100, -1), x100, java.lang.Object(List(x99)))=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x100COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x99)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x99)), x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x99))), x2[7], x3[7], java.lang.Object(List(x99)))∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



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

    (219)    (<=(x4[7], x0[7])=TRUECOND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



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

    (220)    (<=(x4[7], x0[7])=TRUECond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x99)))=List(x0[9]) ⇒ COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x99)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x99)), x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x99))), x2[7], x3[7], java.lang.Object(List(x99)))∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



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

    (221)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (222)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-2)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (223)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (224)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-2)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (225)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (226)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-2)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (227)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (228)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-2)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)







For Pair 1080_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2), x1, x3, x0, x2) the following chains were created:
  • We consider the chain COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) which results in the following constraint:

    (229)    (340_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]340_0_length_ConstantStackPush(x2[9])=List(x0[10])∧x1[9]=x1[10]x3[9]=java.lang.Object(List(x3[10]))∧x0[9]=x4[10]x2[9]=x2[10]1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (230)    (0=x103798_0_length_NULL(x103, x1[8])=List(x0[9])∧0=x104798_0_length_NULL(x104, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[8], java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (230) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x103, x1[8])=List(x0[9]) which results in the following new constraints:

    (231)    (List(x105)=List(x0[9])∧0=x1050=x104798_0_length_NULL(x104, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (232)    (Cond_798_0_length_NULL(>(x107, -1), x107, java.lang.Object(List(x106)))=List(x0[9])∧0=x1070=x104798_0_length_NULL(x104, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (233)    (0=x104798_0_length_NULL(x104, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), 0, x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (234)    (>(x107, -1)=x113java.lang.Object(List(x106))=x114Cond_798_0_length_NULL(x113, x107, x114)=List(x0[9])∧0=x1070=x104798_0_length_NULL(x104, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (233) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x104, x2[9])=List(x0[10]) which results in the following new constraints:

    (235)    (List(x108)=List(x0[10])∧0=x1081080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (236)    (Cond_798_0_length_NULL(>(x110, -1), x110, java.lang.Object(List(x109)))=List(x0[10])∧0=x1101080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x109)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x109)), java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x109))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x109)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (237)    (1080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (238)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x109)))=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x109)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x109)), java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x109))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x109)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (239)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (234) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x104, x2[9])=List(x0[10]) which results in the following new constraints:

    (240)    (List(x115)=List(x0[10])∧>(x107, -1)=x113java.lang.Object(List(x106))=x114Cond_798_0_length_NULL(x113, x107, x114)=List(x0[9])∧0=x1070=x1151080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (241)    (Cond_798_0_length_NULL(>(x117, -1), x117, java.lang.Object(List(x116)))=List(x0[10])∧>(x107, -1)=x113java.lang.Object(List(x106))=x114Cond_798_0_length_NULL(x113, x107, x114)=List(x0[9])∧0=x1070=x1171080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x116)), java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x116)), java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x116))), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x116)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (242)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x106)))=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (243)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x106)))=List(x0[9])∧Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x116)))=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x116)), java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x116)), java.lang.Object(List(x3[10])), java.lang.Object(List(x106)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x116))), java.lang.Object(List(x106)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x116)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (244)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (245)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (246)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (247)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧[(-1)bso_126] ≥ 0)



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

    (248)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (249)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (250)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (251)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧[(-1)bso_126] ≥ 0)



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

    (252)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (253)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (254)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (255)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (256)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (257)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (258)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



  • We consider the chain COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) which results in the following constraint:

    (259)    (340_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]340_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13])) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (260)    (0=x120798_0_length_NULL(x120, x1[8])=List(x0[9])∧1=x121798_0_length_NULL(x121, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), x1[8], x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (260) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x120, x1[8])=List(x0[9]) which results in the following new constraints:

    (261)    (List(x122)=List(x0[9])∧0=x1221=x121798_0_length_NULL(x121, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (262)    (Cond_798_0_length_NULL(>(x124, -1), x124, java.lang.Object(List(x123)))=List(x0[9])∧0=x1241=x121798_0_length_NULL(x121, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x123)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x123)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (263)    (1=x121798_0_length_NULL(x121, x2[13])=List(0) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], 0, java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (264)    (>(x124, -1)=x130java.lang.Object(List(x123))=x131Cond_798_0_length_NULL(x130, x124, x131)=List(x0[9])∧0=x1241=x121798_0_length_NULL(x121, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x123)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x123)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (263) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x121, x2[13])=List(0) which results in the following new constraints:

    (265)    (List(x125)=List(0)∧1=x1251080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(NULL))), NULL, x3[8], 0, java.lang.Object(List(NULL)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (266)    (Cond_798_0_length_NULL(>(x127, -1), x127, java.lang.Object(List(x126)))=List(0)∧1=x1271080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x126)))), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x126)))), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x126))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x126)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We solved constraint (265) using rules (I), (II), (III).We simplified constraint (266) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (267)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x126)))=List(0) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x126)))), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x126)))), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x126))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x126)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (264) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x121, x2[13])=List(x0[9]) which results in the following new constraints:

    (268)    (List(x132)=List(x0[9])∧>(x124, -1)=x130java.lang.Object(List(x123))=x131Cond_798_0_length_NULL(x130, x124, x131)=List(x0[9])∧0=x1241=x1321080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x123)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x123)), x3[8], x0[9], java.lang.Object(List(NULL)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (269)    (Cond_798_0_length_NULL(>(x134, -1), x134, java.lang.Object(List(x133)))=List(x0[9])∧>(x124, -1)=x130java.lang.Object(List(x123))=x131Cond_798_0_length_NULL(x130, x124, x131)=List(x0[9])∧0=x1241=x1341080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x133)))), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x133)))), x3[8], java.lang.Object(List(x123)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x133))))), java.lang.Object(List(x123)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x133)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (270)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x123)))=List(1) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x123)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x123)), x3[8], 1, java.lang.Object(List(NULL)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (271)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x123)))=List(x0[9])∧Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x133)))=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x133)))), x3[8], java.lang.Object(List(x123)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x133)))), x3[8], java.lang.Object(List(x123)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x133))))), java.lang.Object(List(x123)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x133)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (272)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (273)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (274)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (275)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (276)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (277)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (278)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (279)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (280)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (281)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (282)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (283)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)







For Pair 1107_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x4, x2) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4, x0)), List(x0), x1, java.lang.Object(List(x3)), x4, x2) the following chains were created:
  • We consider the chain 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) which results in the following constraint:

    (284)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



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

    (285)    (!(=(x4[10], x0[10]))=TRUE1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



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

    (286)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_127 + (-1)Bound*bni_127] + [(-1)bni_127]x1[10] ≥ 0∧[(-1)bso_128] ≥ 0)



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

    (287)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_127 + (-1)Bound*bni_127] + [(-1)bni_127]x1[10] ≥ 0∧[(-1)bso_128] ≥ 0)



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

    (288)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_127 + (-1)Bound*bni_127] + [(-1)bni_127]x1[10] ≥ 0∧[(-1)bso_128] ≥ 0)



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

    (289)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_127] ≥ 0∧0 ≥ 0∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)







For Pair COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, java.lang.Object(List(x3)), x4, x2) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1), x1, x2, x3) the following chains were created:
  • We consider the chain 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (290)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1270_0_test_Load(x1[11])=1523_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



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

    (291)    (!(=(x4[10], x0[10]))=TRUE1518_0_test_NULL(x1[11])=1523_0_test_ReturnCOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (291) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1523_0_test_Return which results in the following new constraints:

    (292)    (1523_0_test_Return=1523_0_test_Return!(=(x4[10], x0[10]))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))


    (293)    (1518_0_test_NULL(x137)=1523_0_test_Return!(=(x4[10], x0[10]))=TRUE∧(∀x138,x139,x140,x141:1518_0_test_NULL(x137)=1523_0_test_Return!(=(x138, x139))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x139), x137, java.lang.Object(List(x140)), x138, x141)≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x139), x137, java.lang.Object(List(x140)), x138, x141)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x137), x137, x141, x140)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) ⇒ COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x137)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x137)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x137))), java.lang.Object(List(x137)), x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



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

    (294)    (!(=(x4[10], x0[10]))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (293) using rule (VI) where we applied the induction hypothesis (∀x138,x139,x140,x141:1518_0_test_NULL(x137)=1523_0_test_Return!(=(x138, x139))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x139), x137, java.lang.Object(List(x140)), x138, x141)≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x139), x137, java.lang.Object(List(x140)), x138, x141)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x137), x137, x141, x140)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) with σ = [x138 / x4[10], x139 / x0[10]] which results in the following new constraint:

    (295)    (COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x137, java.lang.Object(List(x140)), x4[10], x141)≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x137, java.lang.Object(List(x140)), x4[10], x141)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x137), x137, x141, x140)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥) ⇒ COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x137)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x137)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x137))), java.lang.Object(List(x137)), x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



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

    (296)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[(-1)bso_130] ≥ 0)



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

    (297)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + [-1]x137 ≥ 0∧[-1] + [-2]x137 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-2)bni_129 + (-1)Bound*bni_129] ≥ 0∧[-2 + (-1)bso_130] ≥ 0)



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

    (298)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[(-1)bso_130] ≥ 0)



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

    (299)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + [-1]x137 ≥ 0∧[-1] + [-2]x137 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-2)bni_129 + (-1)Bound*bni_129] ≥ 0∧[-2 + (-1)bso_130] ≥ 0)



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

    (300)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[(-1)bso_130] ≥ 0)



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

    (301)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + [-1]x137 ≥ 0∧[-1] + [-2]x137 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-2)bni_129 + (-1)Bound*bni_129] ≥ 0∧[-2 + (-1)bso_130] ≥ 0)



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

    (302)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_130] ≥ 0)



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

    (303)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] + [-1]x137 ≥ 0∧[-1] + [-2]x137 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-2)bni_129 + (-1)Bound*bni_129] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-2 + (-1)bso_130] ≥ 0)



    We solved constraint (303) using rule (IDP_SMT_SPLIT).




For Pair 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0, x1, x2) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0), x1, x2, x0) the following chains were created:
  • We consider the chain COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (304)    (1270_0_test_Load(x1[11])=1523_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]340_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (305)    (1518_0_test_NULL(x1[11])=1523_0_test_Return0=x145798_0_length_NULL(x145, x1[11])=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[11], x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[11], x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (305) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1523_0_test_Return which results in the following new constraints:

    (306)    (1523_0_test_Return=1523_0_test_Return0=x145798_0_length_NULL(x145, NULL)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (307)    (1518_0_test_NULL(x146)=1523_0_test_Return0=x145798_0_length_NULL(x145, java.lang.Object(List(x146)))=List(x0[0])∧(∀x147,x148,x149,x150:1518_0_test_NULL(x146)=1523_0_test_Return0=x147798_0_length_NULL(x147, x146)=List(x148) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x146, x149, x150)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x146, x149, x150)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x146), x149, x150, x146)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x146))), x2[11], x3[11], java.lang.Object(List(x146)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (308)    (1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (309)    (1518_0_test_NULL(x146)=1523_0_test_Return0=x145∧(∀x147,x148,x149,x150:1518_0_test_NULL(x146)=1523_0_test_Return0=x147798_0_length_NULL(x147, x146)=List(x148) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x146, x149, x150)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x146, x149, x150)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x146), x149, x150, x146)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x145, -1)=x154java.lang.Object(List(x146))=x155Cond_798_0_length_NULL(x154, x145, x155)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x146))), x2[11], x3[11], java.lang.Object(List(x146)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (310)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (309) using rule (V) (with possible (I) afterwards) using induction on Cond_798_0_length_NULL(x154, x145, x155)=List(x0[0]) which results in the following new constraint:

    (311)    (798_0_length_NULL(+(x157, 1), x156)=List(x0[0])∧1518_0_test_NULL(x146)=1523_0_test_Return0=x157∧(∀x147,x148,x149,x150:1518_0_test_NULL(x146)=1523_0_test_Return0=x147798_0_length_NULL(x147, x146)=List(x148) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x146, x149, x150)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x146, x149, x150)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x146), x149, x150, x146)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x157, -1)=TRUEjava.lang.Object(List(x146))=java.lang.Object(List(x156)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x146)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x146))), x2[11], x3[11], java.lang.Object(List(x146)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (312)    (1518_0_test_NULL(x156)=1523_0_test_Return∧(∀x147,x148,x149,x150:1518_0_test_NULL(x156)=1523_0_test_Return0=x147798_0_length_NULL(x147, x156)=List(x148) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x156, x149, x150)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x156, x149, x150)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x156), x149, x150, x156)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧798_0_length_NULL(1, x156)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x156)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x156)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x156))), x2[11], x3[11], java.lang.Object(List(x156)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (313)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (314)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (315)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (316)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (317)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (318)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (319)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



  • We consider the chain 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (320)    (1270_0_test_Load(x1[13])=1523_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]340_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (321)    (1518_0_test_NULL(x1[13])=1523_0_test_Return0=x159798_0_length_NULL(x159, x1[13])=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[13], x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[13], x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (321) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1523_0_test_Return which results in the following new constraints:

    (322)    (1523_0_test_Return=1523_0_test_Return0=x159798_0_length_NULL(x159, NULL)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (323)    (1518_0_test_NULL(x160)=1523_0_test_Return0=x159798_0_length_NULL(x159, java.lang.Object(List(x160)))=List(x0[0])∧(∀x161,x162,x163,x164:1518_0_test_NULL(x160)=1523_0_test_Return0=x161798_0_length_NULL(x161, x160)=List(x162) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x160, x163, x164)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x160, x163, x164)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x160), x163, x164, x160)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x160))), x2[13], x3[13], java.lang.Object(List(x160)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (324)    (1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (325)    (1518_0_test_NULL(x160)=1523_0_test_Return0=x159∧(∀x161,x162,x163,x164:1518_0_test_NULL(x160)=1523_0_test_Return0=x161798_0_length_NULL(x161, x160)=List(x162) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x160, x163, x164)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x160, x163, x164)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x160), x163, x164, x160)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x159, -1)=x168java.lang.Object(List(x160))=x169Cond_798_0_length_NULL(x168, x159, x169)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x160))), x2[13], x3[13], java.lang.Object(List(x160)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (326)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (325) using rule (V) (with possible (I) afterwards) using induction on Cond_798_0_length_NULL(x168, x159, x169)=List(x0[0]) which results in the following new constraint:

    (327)    (798_0_length_NULL(+(x171, 1), x170)=List(x0[0])∧1518_0_test_NULL(x160)=1523_0_test_Return0=x171∧(∀x161,x162,x163,x164:1518_0_test_NULL(x160)=1523_0_test_Return0=x161798_0_length_NULL(x161, x160)=List(x162) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x160, x163, x164)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x160, x163, x164)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x160), x163, x164, x160)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x171, -1)=TRUEjava.lang.Object(List(x160))=java.lang.Object(List(x170)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x160)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x160))), x2[13], x3[13], java.lang.Object(List(x160)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (328)    (1518_0_test_NULL(x170)=1523_0_test_Return∧(∀x161,x162,x163,x164:1518_0_test_NULL(x170)=1523_0_test_Return0=x161798_0_length_NULL(x161, x170)=List(x162) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x170, x163, x164)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x170, x163, x164)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x170), x163, x164, x170)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧798_0_length_NULL(1, x170)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x170)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x170)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x170))), x2[13], x3[13], java.lang.Object(List(x170)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (329)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (330)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (331)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (332)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (333)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (334)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (335)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



  • We consider the chain COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (336)    (1270_0_test_Load(x1[15])=1523_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]340_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (337)    (1518_0_test_NULL(x1[15])=1523_0_test_Return0=x173798_0_length_NULL(x173, x1[15])=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[15], x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[15], x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[15]), x2[15], x3[15], x1[15])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (337) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1523_0_test_Return which results in the following new constraints:

    (338)    (1523_0_test_Return=1523_0_test_Return0=x173798_0_length_NULL(x173, NULL)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (339)    (1518_0_test_NULL(x174)=1523_0_test_Return0=x173798_0_length_NULL(x173, java.lang.Object(List(x174)))=List(x0[0])∧(∀x175,x176,x177,x178:1518_0_test_NULL(x174)=1523_0_test_Return0=x175798_0_length_NULL(x175, x174)=List(x176) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x174, x177, x178)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x174, x177, x178)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x174), x177, x178, x174)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x174))), x2[15], x3[15], java.lang.Object(List(x174)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (340)    (1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (341)    (1518_0_test_NULL(x174)=1523_0_test_Return0=x173∧(∀x175,x176,x177,x178:1518_0_test_NULL(x174)=1523_0_test_Return0=x175798_0_length_NULL(x175, x174)=List(x176) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x174, x177, x178)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x174, x177, x178)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x174), x177, x178, x174)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x173, -1)=x182java.lang.Object(List(x174))=x183Cond_798_0_length_NULL(x182, x173, x183)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x174))), x2[15], x3[15], java.lang.Object(List(x174)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (342)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (341) using rule (V) (with possible (I) afterwards) using induction on Cond_798_0_length_NULL(x182, x173, x183)=List(x0[0]) which results in the following new constraint:

    (343)    (798_0_length_NULL(+(x185, 1), x184)=List(x0[0])∧1518_0_test_NULL(x174)=1523_0_test_Return0=x185∧(∀x175,x176,x177,x178:1518_0_test_NULL(x174)=1523_0_test_Return0=x175798_0_length_NULL(x175, x174)=List(x176) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x174, x177, x178)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x174, x177, x178)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x174), x177, x178, x174)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x185, -1)=TRUEjava.lang.Object(List(x174))=java.lang.Object(List(x184)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x174)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x174))), x2[15], x3[15], java.lang.Object(List(x174)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (344)    (1518_0_test_NULL(x184)=1523_0_test_Return∧(∀x175,x176,x177,x178:1518_0_test_NULL(x184)=1523_0_test_Return0=x175798_0_length_NULL(x175, x184)=List(x176) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x184, x177, x178)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x184, x177, x178)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x184), x177, x178, x184)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧798_0_length_NULL(1, x184)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x184)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x184)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x184))), x2[15], x3[15], java.lang.Object(List(x184)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (345)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (346)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (347)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (348)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (349)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (350)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (351)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)







For Pair 1107_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x0, java.lang.Object(List(x2))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1), x1, x2, x3) the following chains were created:
  • We consider the chain 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (352)    (340_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13]))∧1270_0_test_Load(x1[13])=1523_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (353)    (1518_0_test_NULL(x1[13])=1523_0_test_Return1=x187798_0_length_NULL(x187, x2[13])=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (353) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1523_0_test_Return which results in the following new constraints:

    (354)    (1523_0_test_Return=1523_0_test_Return1=x187798_0_length_NULL(x187, x2[13])=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (355)    (1518_0_test_NULL(x188)=1523_0_test_Return1=x187798_0_length_NULL(x187, x2[13])=List(x0[9])∧(∀x189,x190,x191,x192:1518_0_test_NULL(x188)=1523_0_test_Return1=x189798_0_length_NULL(x189, x190)=List(x191) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x191), x188, x192, x191, java.lang.Object(List(x190)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x191), x188, x192, x191, java.lang.Object(List(x190)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x188), x188, x190, x192)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x188)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x188)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x188))), java.lang.Object(List(x188)), x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (356)    (1=x187798_0_length_NULL(x187, x2[13])=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (355) using rule (VI) where we applied the induction hypothesis (∀x189,x190,x191,x192:1518_0_test_NULL(x188)=1523_0_test_Return1=x189798_0_length_NULL(x189, x190)=List(x191) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x191), x188, x192, x191, java.lang.Object(List(x190)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x191), x188, x192, x191, java.lang.Object(List(x190)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x188), x188, x190, x192)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) with σ = [x189 / x187, x190 / x2[13], x191 / x0[9]] which results in the following new constraint:

    (357)    (1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x188, x192, x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x188, x192, x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x188), x188, x2[13], x192)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x188)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x188)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x188))), java.lang.Object(List(x188)), x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (356) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x187, x2[13])=List(x0[9]) which results in the following new constraints:

    (358)    (List(x195)=List(x0[9])∧1=x1951107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (359)    (Cond_798_0_length_NULL(>(x197, -1), x197, java.lang.Object(List(x196)))=List(x0[9])∧1=x1971107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x196)))))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x196)))))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, java.lang.Object(List(x196)), x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (360)    (1107_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (361)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x196)))=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x196)))))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x196)))))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, java.lang.Object(List(x196)), x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (362)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧[(-1)bso_134] ≥ 0)



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

    (363)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [-1]x188 ≥ 0∧[-1] + [-2]x188 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_134] ≥ 0)



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

    (364)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



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

    (365)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧[(-1)bso_134] ≥ 0)



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

    (366)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



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

    (367)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [-1]x188 ≥ 0∧[-1] + [-2]x188 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_134] ≥ 0)



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

    (368)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧[(-1)bso_134] ≥ 0)



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

    (369)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



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

    (370)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [-1]x188 ≥ 0∧[-1] + [-2]x188 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-2 + (-1)bso_134] ≥ 0)



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

    (371)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



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

    (372)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



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

    (373)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] + [-1]x188 ≥ 0∧[-1] + [-2]x188 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-2 + (-1)bso_134] ≥ 0)



    We solved constraint (373) using rule (IDP_SMT_SPLIT).




For Pair 1040_1_MAIN_INVOKEMETHOD(List(x0), java.lang.Object(List(x1)), x3, x4, x2) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4, x0), List(x0), java.lang.Object(List(x1)), x3, x4, x2) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15]) which results in the following constraint:

    (374)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



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

    (375)    (>(x4[14], x0[14])=TRUE1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



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

    (376)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧[(-1)bso_136] ≥ 0)



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

    (377)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧[(-1)bso_136] ≥ 0)



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

    (378)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧[(-1)bso_136] ≥ 0)



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

    (379)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_136] ≥ 0)







For Pair COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0), java.lang.Object(List(x1)), x3, x4, x2) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1), x1, x2, x3) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (380)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1270_0_test_Load(x1[15])=1523_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



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

    (381)    (>(x4[14], x0[14])=TRUE1518_0_test_NULL(x1[15])=1523_0_test_ReturnCOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (381) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1523_0_test_Return which results in the following new constraints:

    (382)    (1523_0_test_Return=1523_0_test_Return>(x4[14], x0[14])=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))


    (383)    (1518_0_test_NULL(x200)=1523_0_test_Return>(x4[14], x0[14])=TRUE∧(∀x201,x202,x203,x204:1518_0_test_NULL(x200)=1523_0_test_Return>(x201, x202)=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x202), java.lang.Object(List(x200)), x203, x201, x204)≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x202), java.lang.Object(List(x200)), x203, x201, x204)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x200), x200, x204, x203)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) ⇒ COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x200)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x200)))), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x200))), java.lang.Object(List(x200)), x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



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

    (384)    (>(x4[14], x0[14])=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (383) using rule (VI) where we applied the induction hypothesis (∀x201,x202,x203,x204:1518_0_test_NULL(x200)=1523_0_test_Return>(x201, x202)=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x202), java.lang.Object(List(x200)), x203, x201, x204)≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x202), java.lang.Object(List(x200)), x203, x201, x204)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x200), x200, x204, x203)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) with σ = [x201 / x4[14], x202 / x0[14]] which results in the following new constraint:

    (385)    (COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x200)), x203, x4[14], x204)≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x200)), x203, x4[14], x204)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x200), x200, x204, x203)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥) ⇒ COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x200)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x200)))), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x200))), java.lang.Object(List(x200)), x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



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

    (386)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[(-1)bso_138] ≥ 0)



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

    (387)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x200 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[-1 + (-1)bso_138] ≥ 0)



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

    (388)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[(-1)bso_138] ≥ 0)



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

    (389)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x200 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[-1 + (-1)bso_138] ≥ 0)



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

    (390)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[(-1)bso_138] ≥ 0)



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

    (391)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x200 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[-1 + (-1)bso_138] ≥ 0)



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

    (392)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_138] ≥ 0)



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

    (393)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-1] + [-1]x200 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-1 + (-1)bso_138] ≥ 0)



    We solved constraint (393) using rule (IDP_SMT_SPLIT).




For Pair 912_0_MAIN_NE(x0, x1, java.lang.Object(List(x2)), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0), x1, x2, x0) the following chains were created:
  • We consider the chain 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (394)    (x1[3]=x0[16]x2[3]=x1[16]x3[3]=java.lang.Object(List(x2[16]))∧fresh2[3]=0340_0_length_ConstantStackPush(x0[16])=List(x0[6])∧x1[16]=x2[6]x2[16]=x3[6]x0[16]=x1[6]912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0)≥NonInfC∧912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



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

    (395)    (0=x208798_0_length_NULL(x208, x0[16])=List(x0[6]) ⇒ 912_0_MAIN_NE(x0[16], x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧912_0_MAIN_NE(x0[16], x2[3], java.lang.Object(List(x2[16])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x2[3], x2[16], x0[16])∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (395) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x208, x0[16])=List(x0[6]) which results in the following new constraints:

    (396)    (List(x209)=List(x0[6])∧0=x209912_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧912_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[3], x2[16], NULL)∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))


    (397)    (Cond_798_0_length_NULL(>(x211, -1), x211, java.lang.Object(List(x210)))=List(x0[6])∧0=x211912_0_MAIN_NE(java.lang.Object(List(x210)), x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧912_0_MAIN_NE(java.lang.Object(List(x210)), x2[3], java.lang.Object(List(x2[16])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x210))), x2[3], x2[16], java.lang.Object(List(x210)))∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



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

    (398)    (912_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧912_0_MAIN_NE(NULL, x2[3], java.lang.Object(List(x2[16])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[3], x2[16], NULL)∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



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

    (399)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x210)))=List(x0[6]) ⇒ 912_0_MAIN_NE(java.lang.Object(List(x210)), x2[3], java.lang.Object(List(x2[16])), 0)≥NonInfC∧912_0_MAIN_NE(java.lang.Object(List(x210)), x2[3], java.lang.Object(List(x2[16])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x210))), x2[3], x2[16], java.lang.Object(List(x210)))∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



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

    (400)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[1 + (-1)bso_140] ≥ 0)



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

    (401)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (402)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[1 + (-1)bso_140] ≥ 0)



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

    (403)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (404)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[1 + (-1)bso_140] ≥ 0)



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

    (405)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (406)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (407)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



  • We consider the chain 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18]), 912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (408)    (x1[18]=x0[16]x2[18]=x1[16]java.lang.Object(List(x3[18]))=java.lang.Object(List(x2[16]))∧fresh2[18]=0340_0_length_ConstantStackPush(x0[16])=List(x0[6])∧x1[16]=x2[6]x2[16]=x3[6]x0[16]=x1[6]912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0)≥NonInfC∧912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



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

    (409)    (0=x214798_0_length_NULL(x214, x0[16])=List(x0[6]) ⇒ 912_0_MAIN_NE(x0[16], x2[18], java.lang.Object(List(x3[18])), 0)≥NonInfC∧912_0_MAIN_NE(x0[16], x2[18], java.lang.Object(List(x3[18])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x2[18], x3[18], x0[16])∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



    We simplified constraint (409) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x214, x0[16])=List(x0[6]) which results in the following new constraints:

    (410)    (List(x215)=List(x0[6])∧0=x215912_0_MAIN_NE(NULL, x2[18], java.lang.Object(List(x3[18])), 0)≥NonInfC∧912_0_MAIN_NE(NULL, x2[18], java.lang.Object(List(x3[18])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[18], x3[18], NULL)∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))


    (411)    (Cond_798_0_length_NULL(>(x217, -1), x217, java.lang.Object(List(x216)))=List(x0[6])∧0=x217912_0_MAIN_NE(java.lang.Object(List(x216)), x2[18], java.lang.Object(List(x3[18])), 0)≥NonInfC∧912_0_MAIN_NE(java.lang.Object(List(x216)), x2[18], java.lang.Object(List(x3[18])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x216))), x2[18], x3[18], java.lang.Object(List(x216)))∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



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

    (412)    (912_0_MAIN_NE(NULL, x2[18], java.lang.Object(List(x3[18])), 0)≥NonInfC∧912_0_MAIN_NE(NULL, x2[18], java.lang.Object(List(x3[18])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[18], x3[18], NULL)∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



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

    (413)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x216)))=List(x0[6]) ⇒ 912_0_MAIN_NE(java.lang.Object(List(x216)), x2[18], java.lang.Object(List(x3[18])), 0)≥NonInfC∧912_0_MAIN_NE(java.lang.Object(List(x216)), x2[18], java.lang.Object(List(x3[18])), 0)≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x216))), x2[18], x3[18], java.lang.Object(List(x216)))∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥))



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

    (414)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[1 + (-1)bso_140] ≥ 0)



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

    (415)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (416)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[1 + (-1)bso_140] ≥ 0)



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

    (417)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (418)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧[1 + (-1)bso_140] ≥ 0)



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

    (419)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (420)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (421)    ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)







For Pair 824_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x2) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3))), x1, x2, java.lang.Object(List(x3))) the following chains were created:
  • We consider the chain COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))), 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18]) which results in the following constraint:

    (422)    (340_0_length_ConstantStackPush(x3[1])=List(x0[17])∧x2[1]=x1[17]x1[1]=java.lang.Object(List(x3[17]))∧x3[1]=x2[17]926_0_length_ConstantStackPush(java.lang.Object(List(x3[17])))=List(x0[18])∧x1[17]=x1[18]x2[17]=x2[18]java.lang.Object(List(x3[17]))=java.lang.Object(List(x3[18])) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17])≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17])≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (423)    (0=x220798_0_length_NULL(x220, x3[1])=List(x0[17])∧1=x221798_0_length_NULL(x221, x3[17])=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), x3[1])≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), x3[1])≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], x3[1], java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (423) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x220, x3[1])=List(x0[17]) which results in the following new constraints:

    (424)    (List(x222)=List(x0[17])∧0=x2221=x221798_0_length_NULL(x221, x3[17])=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], NULL, java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))


    (425)    (Cond_798_0_length_NULL(>(x224, -1), x224, java.lang.Object(List(x223)))=List(x0[17])∧0=x2241=x221798_0_length_NULL(x221, x3[17])=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x223)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x223)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (426)    (1=x221798_0_length_NULL(x221, x3[17])=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x3[17])), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x3[17])), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], NULL, java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (427)    (>(x224, -1)=x230java.lang.Object(List(x223))=x231Cond_798_0_length_NULL(x230, x224, x231)=List(x0[17])∧0=x2241=x221798_0_length_NULL(x221, x3[17])=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x223)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x223)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (426) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x221, x3[17])=List(x0[18]) which results in the following new constraints:

    (428)    (List(x225)=List(x0[18])∧1=x225824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], NULL, java.lang.Object(List(NULL)))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))


    (429)    (Cond_798_0_length_NULL(>(x227, -1), x227, java.lang.Object(List(x226)))=List(x0[18])∧1=x227824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x226)))), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x226)))), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x226))))), x2[1], NULL, java.lang.Object(List(java.lang.Object(List(x226)))))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (430)    (824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], NULL, java.lang.Object(List(NULL)))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (431)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x226)))=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x226)))), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x226)))), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x226))))), x2[1], NULL, java.lang.Object(List(java.lang.Object(List(x226)))))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (432)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_141] = 0∧[(-1)bso_142] ≥ 0)



    We simplified constraint (427) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x221, x3[17])=List(x0[18]) which results in the following new constraints:

    (433)    (List(x232)=List(x0[18])∧>(x224, -1)=x230java.lang.Object(List(x223))=x231Cond_798_0_length_NULL(x230, x224, x231)=List(x0[17])∧0=x2241=x232824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x223)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x223)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(NULL)))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))


    (434)    (Cond_798_0_length_NULL(>(x234, -1), x234, java.lang.Object(List(x233)))=List(x0[18])∧>(x224, -1)=x230java.lang.Object(List(x223))=x231Cond_798_0_length_NULL(x230, x224, x231)=List(x0[17])∧0=x2241=x234824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x233)))), java.lang.Object(List(x223)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x233)))), java.lang.Object(List(x223)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x233))))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(java.lang.Object(List(x233)))))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (435)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x223)))=List(x0[17]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x223)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x223)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(NULL)))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (436)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x223)))=List(x0[17])∧Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x233)))=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x233)))), java.lang.Object(List(x223)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x233)))), java.lang.Object(List(x223)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x233))))), x2[1], java.lang.Object(List(x223)), java.lang.Object(List(java.lang.Object(List(x233)))))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (437)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (438)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (439)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (440)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_141] = 0∧[(-1)bso_142] ≥ 0)



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

    (441)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (442)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (443)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (444)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_141] = 0∧[(-1)bso_142] ≥ 0)



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

    (445)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (446)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (447)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (448)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_141] = 0∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (449)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (450)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (451)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_142] ≥ 0)







For Pair 926_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, java.lang.Object(List(x3))) → 912_0_MAIN_NE(x1, x2, java.lang.Object(List(x3)), fresh2) the following chains were created:
  • We consider the chain 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))), 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18]), 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) which results in the following constraint:

    (452)    (926_0_length_ConstantStackPush(java.lang.Object(List(x3[17])))=List(x0[18])∧x1[17]=x1[18]x2[17]=x2[18]java.lang.Object(List(x3[17]))=java.lang.Object(List(x3[18]))∧x1[18]=x0[4]x2[18]=x1[4]java.lang.Object(List(x3[18]))=x2[4]fresh2[18]=x3[4]926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18])))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18])))≥912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (453)    (1=x237798_0_length_NULL(x237, x3[17])=List(x0[18]) ⇒ 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(x3[17])))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(x3[17])))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(x3[17])), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (453) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x237, x3[17])=List(x0[18]) which results in the following new constraints:

    (454)    (List(x238)=List(x0[18])∧1=x238926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(NULL)))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(NULL)))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(NULL)), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))


    (455)    (Cond_798_0_length_NULL(>(x240, -1), x240, java.lang.Object(List(x239)))=List(x0[18])∧1=x240926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (456)    (926_1_MAIN_INVOKEMETHOD(List(1), x1[17], x2[17], java.lang.Object(List(NULL)))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(1), x1[17], x2[17], java.lang.Object(List(NULL)))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(NULL)), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (457)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x239)))=List(x0[18]) ⇒ 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x239)))), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (458)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



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

    (459)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



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

    (460)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



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

    (461)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



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

    (462)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



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

    (463)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



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

    (464)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



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

    (465)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



  • We consider the chain 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))), 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18]), 912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16]) which results in the following constraint:

    (466)    (926_0_length_ConstantStackPush(java.lang.Object(List(x3[17])))=List(x0[18])∧x1[17]=x1[18]x2[17]=x2[18]java.lang.Object(List(x3[17]))=java.lang.Object(List(x3[18]))∧x1[18]=x0[16]x2[18]=x1[16]java.lang.Object(List(x3[18]))=java.lang.Object(List(x2[16]))∧fresh2[18]=0926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18])))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18])))≥912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (467)    (1=x243798_0_length_NULL(x243, x3[17])=List(x0[18]) ⇒ 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(x3[17])))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(x3[17])))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(x3[17])), 0)∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (467) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x243, x3[17])=List(x0[18]) which results in the following new constraints:

    (468)    (List(x244)=List(x0[18])∧1=x244926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(NULL)))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(NULL)))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(NULL)), 0)∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))


    (469)    (Cond_798_0_length_NULL(>(x246, -1), x246, java.lang.Object(List(x245)))=List(x0[18])∧1=x246926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))), 0)∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (470)    (926_1_MAIN_INVOKEMETHOD(List(1), x1[17], x2[17], java.lang.Object(List(NULL)))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(1), x1[17], x2[17], java.lang.Object(List(NULL)))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(NULL)), 0)∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (471)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x245)))=List(x0[18]) ⇒ 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x245)))), 0)∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (472)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



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

    (473)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



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

    (474)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



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

    (475)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



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

    (476)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧[(-1)bso_144] ≥ 0)



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

    (477)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



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

    (478)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)



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

    (479)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 340_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → COND_340_1_MAIN_INVOKEMETHOD(>(x0, 0), List(x0), x2, x3, x1)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_107 + (-1)Bound*bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)

  • COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x2, x3, x1) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3), x2, x1, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_109 + (-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)

  • 824_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x2) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3), x1, x2, x3)
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)

  • 882_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, x3) → 912_0_MAIN_NE(x1, x2, x3, fresh2)
    • ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)
    • ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)
    • ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)
    • ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)

  • 912_0_MAIN_NE(x0, x1, x2, x3) → COND_912_0_MAIN_NE(>(x3, 0), x0, x1, x2, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_115] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0)

  • COND_912_0_MAIN_NE(TRUE, x0, x1, x2, x3) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0), x1, x2, x0)
    • (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)

  • 1006_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)

  • 1040_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x4, x2) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4, x0), List(x0), x1, x3, x4, x2)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0)

  • COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, x3, x4, x2) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1), x2, x3, x1)
    • (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-2)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)

  • 1080_1_MAIN_INVOKEMETHOD(List(x0), x2, x3, x1) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2), x1, x3, x0, x2)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)

  • 1107_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x4, x2) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4, x0)), List(x0), x1, java.lang.Object(List(x3)), x4, x2)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_127] ≥ 0∧0 ≥ 0∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)

  • COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0), x1, java.lang.Object(List(x3)), x4, x2) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1), x1, x2, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_130] ≥ 0)

  • 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0, x1, x2) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0), x1, x2, x0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)

  • 1107_1_MAIN_INVOKEMETHOD(List(x0), x1, x3, x0, java.lang.Object(List(x2))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1), x1, x2, x3)
    • ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)
    • ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)

  • 1040_1_MAIN_INVOKEMETHOD(List(x0), java.lang.Object(List(x1)), x3, x4, x2) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4, x0), List(x0), java.lang.Object(List(x1)), x3, x4, x2)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_136] ≥ 0)

  • COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0), java.lang.Object(List(x1)), x3, x4, x2) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1), x1, x2, x3)
    • (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_138] ≥ 0)

  • 912_0_MAIN_NE(x0, x1, java.lang.Object(List(x2)), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0), x1, x2, x0)
    • ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)
    • ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)
    • ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧[bni_139] = 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)
    • ((UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)

  • 824_1_MAIN_INVOKEMETHOD(List(x0), x1, java.lang.Object(List(x3)), x2) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3))), x1, x2, java.lang.Object(List(x3)))
    • ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_141] = 0∧0 ≥ 0∧[(-1)bso_142] ≥ 0)
    • ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_142] ≥ 0)
    • ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_142] ≥ 0)
    • ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_142] ≥ 0)

  • 926_1_MAIN_INVOKEMETHOD(List(x0), x1, x2, java.lang.Object(List(x3))) → 912_0_MAIN_NE(x1, x2, java.lang.Object(List(x3)), fresh2)
    • ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)
    • ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)
    • ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_143] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 0)
    • ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_144] ≥ 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(340_0_length_ConstantStackPush(x1)) = 0   
POL(798_0_length_NULL(x1, x2)) = 0   
POL(0) = 0   
POL(926_0_length_ConstantStackPush(x1)) = 0   
POL(java.lang.Object(x1)) = [1]   
POL(List(x1)) = 0   
POL(NULL) = 0   
POL(Cond_798_0_length_NULL(x1, x2, x3)) = 0   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(1270_0_test_Load(x1)) = 0   
POL(1518_0_test_NULL(x1)) = 0   
POL(1523_0_test_Return) = 0   
POL(340_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + [-1]x1   
POL(COND_340_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + [-1]x2   
POL(824_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x3 + [-1]x1   
POL(882_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + [-1]x1   
POL(912_0_MAIN_NE(x1, x2, x3, x4)) = [-1] + x3   
POL(COND_912_0_MAIN_NE(x1, x2, x3, x4, x5)) = [-1]   
POL(1006_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x1   
POL(1040_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x1   
POL(COND_1040_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x3 + [-1]x2   
POL(<=(x1, x2)) = 0   
POL(1080_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x1   
POL(1107_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x2 + x1   
POL(COND_1107_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1   
POL(!(x1)) = 0   
POL(=(x1, x2)) = 0   
POL(1270_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x2 + [-1]x1   
POL(COND_1040_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [-1]x3 + [-1]x2   
POL(926_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [1] + [-1]x4 + [-1]x1   

The following pairs are in P>:

912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])

The following pairs are in Pbound:

340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])

The following pairs are in P:

340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))
926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])

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

340_0_length_ConstantStackPush(x0)1798_0_length_NULL(0, x0)1
798_0_length_NULL(x0, NULL)1List(x0)1
798_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_798_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1798_0_length_NULL(+(x1, 1), x0)1
!(TRUE)1FALSE1
!(FALSE)1TRUE1
1518_0_test_NULL(x0)11270_0_test_Load(x0)1
1518_0_test_NULL(NULL)11523_0_test_Return1
1518_0_test_NULL(java.lang.Object(List(x0)))11518_0_test_NULL(x0)1
798_0_length_NULL(0, java.lang.Object(List(x0)))1926_0_length_ConstantStackPush(java.lang.Object(List(x0)))1

(34) Complex Obligation (AND)

(35) Obligation:

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


The following domains are used:

Integer, Boolean


The ITRS R consists of the following rules:
340_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 798_0_length_NULL(0, java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL) → List(x0)
798_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_798_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 798_0_length_NULL(x1 + 1, x0)
1270_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1523_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(0): 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(1): COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(2): 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(3): 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(4): 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(5): COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(6): 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(7): 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(8): COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(9): 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(10): 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(11): COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(12): 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(13): 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(14): 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(15): COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
(17): 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))
(18): 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])

(12) -> (0), if (340_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (340_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (340_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(18) -> (4), if (x1[18]* x0[4]x2[18]* x1[4]java.lang.Object(List(x3[18])) →* x2[4]fresh2[18]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (340_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (340_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


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


(11) -> (12), if (1270_0_test_Load(x1[11]) →* 1523_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1270_0_test_Load(x1[13]) →* 1523_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(15) -> (12), if (1270_0_test_Load(x1[15]) →* 1523_0_test_Returnx1[15]* x0[12]x2[15]* x1[12]x3[15]* x2[12])


(9) -> (13), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(6) -> (14), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])


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


(1) -> (17), if (340_0_length_ConstantStackPush(x3[1]) →* List(x0[17])∧x2[1]* x1[17]x1[1]* java.lang.Object(List(x3[17]))∧x3[1]* x2[17])


(17) -> (18), if (926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))) →* List(x0[18])∧x1[17]* x1[18]x2[17]* x2[18]java.lang.Object(List(x3[17])) →* java.lang.Object(List(x3[18])))



The set Q consists of the following terms:
340_0_length_ConstantStackPush(x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL)
798_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_798_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1270_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(36) IDPNonInfProof (SOUND transformation)

Used the following options for this NonInfProof:
IDPGPoloSolver: Range: [(-1,2)] IsNat: true Interpretation Shape Heuristic: aprove.DPFramework.IDPProblem.Processors.nonInf.poly.IdpDefaultShapeHeuristic@3c8cd587 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 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) the following chains were created:
  • We consider the chain 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) which results in the following constraint:

    (1)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



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

    (2)    (>(x0[0], 0)=TRUE340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



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

    (3)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)Bound*bni_107] + [(-1)bni_107]x1[0] ≥ 0∧[(-1)bso_108] ≥ 0)



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

    (4)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)Bound*bni_107] + [(-1)bni_107]x1[0] ≥ 0∧[(-1)bso_108] ≥ 0)



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

    (5)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)Bound*bni_107] + [(-1)bni_107]x1[0] ≥ 0∧[(-1)bso_108] ≥ 0)



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

    (6)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)







For Pair COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) the following chains were created:
  • We consider the chain 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) which results in the following constraint:

    (7)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]340_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥NonInfC∧COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])∧(UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



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

    (8)    (>(x0[0], 0)=TRUE798_0_length_NULL(0, x3[1])=List(x0[2]) ⇒ COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥NonInfC∧COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[0], x1[0], x3[1])∧(UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



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

    (9)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)Bound*bni_109] + [(-1)bni_109]x1[0] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (10)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)Bound*bni_109] + [(-1)bni_109]x1[0] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (11)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)Bound*bni_109] + [(-1)bni_109]x1[0] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (12)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)



  • We consider the chain 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))) which results in the following constraint:

    (13)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]340_0_length_ConstantStackPush(x3[1])=List(x0[17])∧x2[1]=x1[17]x1[1]=java.lang.Object(List(x3[17]))∧x3[1]=x2[17]COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥NonInfC∧COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])∧(UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



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

    (14)    (>(x0[0], 0)=TRUE798_0_length_NULL(0, x3[1])=List(x0[17]) ⇒ COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], java.lang.Object(List(x3[17])))≥NonInfC∧COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], java.lang.Object(List(x3[17])))≥824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[0], java.lang.Object(List(x3[17])), x3[1])∧(UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



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

    (15)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)Bound*bni_109] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (16)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)Bound*bni_109] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (17)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)Bound*bni_109] ≥ 0∧[(-1)bso_110] ≥ 0)



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

    (18)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)







For Pair 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) the following chains were created:
  • We consider the chain COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) which results in the following constraint:

    (19)    (340_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]340_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (20)    (0=x0798_0_length_NULL(x0, x3[1])=List(x0[2])∧0=x1798_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], x3[1], x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (20) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x0, x3[1])=List(x0[2]) which results in the following new constraints:

    (21)    (List(x2)=List(x0[2])∧0=x20=x1798_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (22)    (Cond_798_0_length_NULL(>(x4, -1), x4, java.lang.Object(List(x3)))=List(x0[2])∧0=x40=x1798_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x3)), x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (23)    (0=x1798_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (24)    (>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_798_0_length_NULL(x10, x4, x11)=List(x0[2])∧0=x40=x1798_0_length_NULL(x1, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x3)), x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (23) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x1, x3[2])=List(x0[3]) which results in the following new constraints:

    (25)    (List(x5)=List(x0[3])∧0=x5824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (26)    (Cond_798_0_length_NULL(>(x7, -1), x7, java.lang.Object(List(x6)))=List(x0[3])∧0=x7824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x6))), x2[1], NULL, java.lang.Object(List(x6)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (27)    (824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (28)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x6)))=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x6)), NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x6))), x2[1], NULL, java.lang.Object(List(x6)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (29)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (24) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x1, x3[2])=List(x0[3]) which results in the following new constraints:

    (30)    (List(x12)=List(x0[3])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_798_0_length_NULL(x10, x4, x11)=List(x0[2])∧0=x40=x12824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x3)), NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (31)    (Cond_798_0_length_NULL(>(x14, -1), x14, java.lang.Object(List(x13)))=List(x0[3])∧>(x4, -1)=x10java.lang.Object(List(x3))=x11Cond_798_0_length_NULL(x10, x4, x11)=List(x0[2])∧0=x40=x14824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x13))), x2[1], java.lang.Object(List(x3)), java.lang.Object(List(x13)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (32)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x3)))=List(x0[2]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x3)), NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (33)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x3)))=List(x0[2])∧Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x13)))=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x13)), java.lang.Object(List(x3)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x13))), x2[1], java.lang.Object(List(x3)), java.lang.Object(List(x13)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



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

    (34)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (35)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (36)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (37)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



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

    (38)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (39)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (40)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (41)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧[(-1)bso_112] ≥ 0)



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

    (42)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (43)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (44)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (45)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (46)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (47)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)



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

    (48)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)







For Pair 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) the following chains were created:
  • We consider the chain 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) which results in the following constraint:

    (49)    (340_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]x1[3]=x0[4]x2[3]=x1[4]x3[3]=x2[4]fresh2[3]=x3[4]882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (50)    (0=x17798_0_length_NULL(x17, x3[2])=List(x0[3]) ⇒ 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥912_0_MAIN_NE(x1[2], x2[2], x3[2], fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (50) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x17, x3[2])=List(x0[3]) which results in the following new constraints:

    (51)    (List(x18)=List(x0[3])∧0=x18882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥912_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))


    (52)    (Cond_798_0_length_NULL(>(x20, -1), x20, java.lang.Object(List(x19)))=List(x0[3])∧0=x20882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥912_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x19)), fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (53)    (882_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥912_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (54)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x19)))=List(x0[3]) ⇒ 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x19)))≥912_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x19)), fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



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

    (55)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



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

    (56)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)



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

    (57)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



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

    (58)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)



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

    (59)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧[(-1)bso_114] ≥ 0)



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

    (60)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)



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

    (61)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)



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

    (62)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)







For Pair 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) the following chains were created:
  • We consider the chain 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) which results in the following constraint:

    (63)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



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

    (64)    (>(x3[4], 0)=TRUE912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



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

    (65)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧[(-1)bso_116] ≥ 0)



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

    (66)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧[(-1)bso_116] ≥ 0)



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

    (67)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧[(-1)bso_116] ≥ 0)



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

    (68)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0)







For Pair COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) the following chains were created:
  • We consider the chain 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (69)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]340_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥NonInfC∧COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



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

    (70)    (>(x3[4], 0)=TRUE798_0_length_NULL(0, x0[5])=List(x0[6]) ⇒ COND_912_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥NonInfC∧COND_912_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[4], x2[4], x0[5])∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



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

    (71)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧[(-1)bso_118] ≥ 0)



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

    (72)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧[(-1)bso_118] ≥ 0)



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

    (73)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧[(-1)bso_118] ≥ 0)



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

    (74)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)







For Pair 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) the following chains were created:
  • We consider the chain COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) which results in the following constraint:

    (75)    (340_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]340_0_length_ConstantStackPush(x2[6])=List(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x0[6]=x4[7]x2[6]=x2[7]1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (76)    (0=x23798_0_length_NULL(x23, x0[5])=List(x0[6])∧0=x24798_0_length_NULL(x24, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x0[5], x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (76) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x23, x0[5])=List(x0[6]) which results in the following new constraints:

    (77)    (List(x25)=List(x0[6])∧0=x250=x24798_0_length_NULL(x24, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), NULL, x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (78)    (Cond_798_0_length_NULL(>(x27, -1), x27, java.lang.Object(List(x26)))=List(x0[6])∧0=x270=x24798_0_length_NULL(x24, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x26)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x26)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x26)), x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (79)    (0=x24798_0_length_NULL(x24, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), NULL, x2[5], 0, x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (80)    (>(x27, -1)=x33java.lang.Object(List(x26))=x34Cond_798_0_length_NULL(x33, x27, x34)=List(x0[6])∧0=x270=x24798_0_length_NULL(x24, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x26)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x26)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x26)), x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (79) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x24, x2[6])=List(x0[7]) which results in the following new constraints:

    (81)    (List(x28)=List(x0[7])∧0=x281006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (82)    (Cond_798_0_length_NULL(>(x30, -1), x30, java.lang.Object(List(x29)))=List(x0[7])∧0=x301006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x29)), x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x29)), x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x29))), NULL, x2[5], 0, java.lang.Object(List(x29)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (83)    (1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (84)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x29)))=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x29)), x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x29)), x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x29))), NULL, x2[5], 0, java.lang.Object(List(x29)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (85)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (80) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x24, x2[6])=List(x0[7]) which results in the following new constraints:

    (86)    (List(x35)=List(x0[7])∧>(x27, -1)=x33java.lang.Object(List(x26))=x34Cond_798_0_length_NULL(x33, x27, x34)=List(x0[6])∧0=x270=x351006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x26)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x26)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x26)), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (87)    (Cond_798_0_length_NULL(>(x37, -1), x37, java.lang.Object(List(x36)))=List(x0[7])∧>(x27, -1)=x33java.lang.Object(List(x26))=x34Cond_798_0_length_NULL(x33, x27, x34)=List(x0[6])∧0=x270=x371006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x36)), x2[5], java.lang.Object(List(x26)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x36)), x2[5], java.lang.Object(List(x26)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x36))), java.lang.Object(List(x26)), x2[5], x0[6], java.lang.Object(List(x36)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (88)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x26)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x26)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x26)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x26)), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (89)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x26)))=List(x0[6])∧Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x36)))=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x36)), x2[5], java.lang.Object(List(x26)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x36)), x2[5], java.lang.Object(List(x26)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x36))), java.lang.Object(List(x26)), x2[5], x0[6], java.lang.Object(List(x36)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (90)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (91)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (92)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (93)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (94)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (95)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (96)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (97)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (98)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (99)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (100)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (101)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (102)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (103)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (104)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



  • We consider the chain COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) which results in the following constraint:

    (105)    (340_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]340_0_length_ConstantStackPush(x2[6])=List(x0[14])∧x1[6]=java.lang.Object(List(x1[14]))∧x3[6]=x3[14]x0[6]=x4[14]x2[6]=x2[14]1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (106)    (0=x40798_0_length_NULL(x40, x2[6])=List(x0[14])∧1=x41798_0_length_NULL(x41, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x1[14])), x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (106) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x40, x2[6])=List(x0[14]) which results in the following new constraints:

    (107)    (List(x42)=List(x0[14])∧0=x421=x41798_0_length_NULL(x41, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (108)    (Cond_798_0_length_NULL(>(x44, -1), x44, java.lang.Object(List(x43)))=List(x0[14])∧0=x441=x41798_0_length_NULL(x41, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x43))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x43)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (109)    (1=x41798_0_length_NULL(x41, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (110)    (>(x44, -1)=x50java.lang.Object(List(x43))=x51Cond_798_0_length_NULL(x50, x44, x51)=List(x0[14])∧0=x441=x41798_0_length_NULL(x41, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x43))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x43)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (109) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x41, x1[14])=List(x0[6]) which results in the following new constraints:

    (111)    (List(x45)=List(x0[6])∧1=x451006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (112)    (Cond_798_0_length_NULL(>(x47, -1), x47, java.lang.Object(List(x46)))=List(x0[6])∧1=x471006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x46)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x46)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x46)))), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (113)    (1006_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], 1, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (114)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x46)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x46)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x46)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x46)))), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (115)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



    We simplified constraint (110) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x41, x1[14])=List(x0[6]) which results in the following new constraints:

    (116)    (List(x52)=List(x0[6])∧>(x44, -1)=x50java.lang.Object(List(x43))=x51Cond_798_0_length_NULL(x50, x44, x51)=List(x0[14])∧0=x441=x521006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x43))), java.lang.Object(List(NULL)), x2[5], x0[6], java.lang.Object(List(x43)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (117)    (Cond_798_0_length_NULL(>(x54, -1), x54, java.lang.Object(List(x53)))=List(x0[6])∧>(x44, -1)=x50java.lang.Object(List(x43))=x51Cond_798_0_length_NULL(x50, x44, x51)=List(x0[14])∧0=x441=x541006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(java.lang.Object(List(x53)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(java.lang.Object(List(x53)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x43))), java.lang.Object(List(java.lang.Object(List(x53)))), x2[5], x0[6], java.lang.Object(List(x43)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (118)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x43)))=List(x0[14]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x43))), java.lang.Object(List(NULL)), x2[5], 1, java.lang.Object(List(x43)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (119)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x43)))=List(x0[14])∧Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x53)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(java.lang.Object(List(x53)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x43)), x2[5], java.lang.Object(List(java.lang.Object(List(x53)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x43))), java.lang.Object(List(java.lang.Object(List(x53)))), x2[5], x0[6], java.lang.Object(List(x43)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



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

    (120)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (121)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (122)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (123)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (124)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (125)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (126)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (127)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧[(-1)bso_120] ≥ 0)



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

    (128)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (129)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (130)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (131)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (132)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (133)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



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

    (134)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)







For Pair 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) which results in the following constraint:

    (135)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



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

    (136)    (<=(x4[7], x0[7])=TRUE1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



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

    (137)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧[(-1)bso_122] ≥ 0)



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

    (138)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧[(-1)bso_122] ≥ 0)



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

    (139)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧[(-1)bso_122] ≥ 0)



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

    (140)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0)







For Pair COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) which results in the following constraint:

    (141)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]340_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



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

    (142)    (<=(x4[7], x0[7])=TRUE0=x57798_0_length_NULL(x57, x1[8])=List(x0[9]) ⇒ COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[7], x3[7], x1[8])∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (142) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x57, x1[8])=List(x0[9]) which results in the following new constraints:

    (143)    (List(x58)=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x58COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))


    (144)    (Cond_798_0_length_NULL(>(x60, -1), x60, java.lang.Object(List(x59)))=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x60COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x59)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x59)), x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x59))), x2[7], x3[7], java.lang.Object(List(x59)))∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



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

    (145)    (<=(x4[7], x0[7])=TRUECOND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



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

    (146)    (<=(x4[7], x0[7])=TRUECond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x59)))=List(x0[9]) ⇒ COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x59)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x59)), x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x59))), x2[7], x3[7], java.lang.Object(List(x59)))∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



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

    (147)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (148)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (149)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (150)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (151)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (152)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (153)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)



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

    (154)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)







For Pair 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) the following chains were created:
  • We consider the chain COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) which results in the following constraint:

    (155)    (340_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]340_0_length_ConstantStackPush(x2[9])=List(x0[10])∧x1[9]=x1[10]x3[9]=java.lang.Object(List(x3[10]))∧x0[9]=x4[10]x2[9]=x2[10]1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (156)    (0=x63798_0_length_NULL(x63, x1[8])=List(x0[9])∧0=x64798_0_length_NULL(x64, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[8], java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (156) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x63, x1[8])=List(x0[9]) which results in the following new constraints:

    (157)    (List(x65)=List(x0[9])∧0=x650=x64798_0_length_NULL(x64, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (158)    (Cond_798_0_length_NULL(>(x67, -1), x67, java.lang.Object(List(x66)))=List(x0[9])∧0=x670=x64798_0_length_NULL(x64, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x66)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (159)    (0=x64798_0_length_NULL(x64, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), 0, x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (160)    (>(x67, -1)=x73java.lang.Object(List(x66))=x74Cond_798_0_length_NULL(x73, x67, x74)=List(x0[9])∧0=x670=x64798_0_length_NULL(x64, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x66)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (159) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x64, x2[9])=List(x0[10]) which results in the following new constraints:

    (161)    (List(x68)=List(x0[10])∧0=x681080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (162)    (Cond_798_0_length_NULL(>(x70, -1), x70, java.lang.Object(List(x69)))=List(x0[10])∧0=x701080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x69)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x69)), java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x69))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x69)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (163)    (1080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (164)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x69)))=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x69)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x69)), java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x69))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x69)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (165)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧[(-1)bso_126] ≥ 0)



    We simplified constraint (160) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x64, x2[9])=List(x0[10]) which results in the following new constraints:

    (166)    (List(x75)=List(x0[10])∧>(x67, -1)=x73java.lang.Object(List(x66))=x74Cond_798_0_length_NULL(x73, x67, x74)=List(x0[9])∧0=x670=x751080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x66)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (167)    (Cond_798_0_length_NULL(>(x77, -1), x77, java.lang.Object(List(x76)))=List(x0[10])∧>(x67, -1)=x73java.lang.Object(List(x66))=x74Cond_798_0_length_NULL(x73, x67, x74)=List(x0[9])∧0=x670=x771080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x76)), java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x76)), java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x76))), java.lang.Object(List(x66)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x76)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (168)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x66)))=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x66)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (169)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x66)))=List(x0[9])∧Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x76)))=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x76)), java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x76)), java.lang.Object(List(x3[10])), java.lang.Object(List(x66)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x76))), java.lang.Object(List(x66)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x76)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (170)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (171)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (172)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (173)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧[(-1)bso_126] ≥ 0)



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

    (174)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (175)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (176)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (177)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧[(-1)bso_126] ≥ 0)



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

    (178)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (179)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (180)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (181)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (182)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (183)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (184)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



  • We consider the chain COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) which results in the following constraint:

    (185)    (340_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]340_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13])) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (186)    (0=x80798_0_length_NULL(x80, x1[8])=List(x0[9])∧1=x81798_0_length_NULL(x81, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), x1[8], x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (186) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x80, x1[8])=List(x0[9]) which results in the following new constraints:

    (187)    (List(x82)=List(x0[9])∧0=x821=x81798_0_length_NULL(x81, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (188)    (Cond_798_0_length_NULL(>(x84, -1), x84, java.lang.Object(List(x83)))=List(x0[9])∧0=x841=x81798_0_length_NULL(x81, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x83)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x83)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x83)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (189)    (1=x81798_0_length_NULL(x81, x2[13])=List(0) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], 0, java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (190)    (>(x84, -1)=x90java.lang.Object(List(x83))=x91Cond_798_0_length_NULL(x90, x84, x91)=List(x0[9])∧0=x841=x81798_0_length_NULL(x81, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x83)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x83)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x83)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (189) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x81, x2[13])=List(0) which results in the following new constraints:

    (191)    (List(x85)=List(0)∧1=x851080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(NULL))), NULL, x3[8], 0, java.lang.Object(List(NULL)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (192)    (Cond_798_0_length_NULL(>(x87, -1), x87, java.lang.Object(List(x86)))=List(0)∧1=x871080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x86)))), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x86)))), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x86))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x86)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We solved constraint (191) using rules (I), (II), (III).We simplified constraint (192) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (193)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x86)))=List(0) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x86)))), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x86)))), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x86))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x86)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (190) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x81, x2[13])=List(x0[9]) which results in the following new constraints:

    (194)    (List(x92)=List(x0[9])∧>(x84, -1)=x90java.lang.Object(List(x83))=x91Cond_798_0_length_NULL(x90, x84, x91)=List(x0[9])∧0=x841=x921080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x83)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x83)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x83)), x3[8], x0[9], java.lang.Object(List(NULL)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (195)    (Cond_798_0_length_NULL(>(x94, -1), x94, java.lang.Object(List(x93)))=List(x0[9])∧>(x84, -1)=x90java.lang.Object(List(x83))=x91Cond_798_0_length_NULL(x90, x84, x91)=List(x0[9])∧0=x841=x941080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x93)))), x3[8], java.lang.Object(List(x83)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x93)))), x3[8], java.lang.Object(List(x83)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x93))))), java.lang.Object(List(x83)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x93)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (196)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x83)))=List(1) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x83)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x83)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x83)), x3[8], 1, java.lang.Object(List(NULL)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (197)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x83)))=List(x0[9])∧Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x93)))=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x93)))), x3[8], java.lang.Object(List(x83)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x93)))), x3[8], java.lang.Object(List(x83)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x93))))), java.lang.Object(List(x83)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x93)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (198)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (199)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (200)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (201)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (202)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (203)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (204)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (205)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (206)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (207)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (208)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)



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

    (209)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)







For Pair 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) the following chains were created:
  • We consider the chain 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) which results in the following constraint:

    (210)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



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

    (211)    (!(=(x4[10], x0[10]))=TRUE1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



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

    (212)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧[(-1)bso_128] ≥ 0)



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

    (213)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧[(-1)bso_128] ≥ 0)



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

    (214)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧[(-1)bso_128] ≥ 0)



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

    (215)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)







For Pair COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) the following chains were created:
  • We consider the chain 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (216)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1270_0_test_Load(x1[11])=1523_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



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

    (217)    (!(=(x4[10], x0[10]))=TRUE1518_0_test_NULL(x1[11])=1523_0_test_ReturnCOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (217) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1523_0_test_Return which results in the following new constraints:

    (218)    (1523_0_test_Return=1523_0_test_Return!(=(x4[10], x0[10]))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))


    (219)    (1518_0_test_NULL(x97)=1523_0_test_Return!(=(x4[10], x0[10]))=TRUE∧(∀x98,x99,x100,x101:1518_0_test_NULL(x97)=1523_0_test_Return!(=(x98, x99))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x99), x97, java.lang.Object(List(x100)), x98, x101)≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x99), x97, java.lang.Object(List(x100)), x98, x101)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x97), x97, x101, x100)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) ⇒ COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x97)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x97)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x97))), java.lang.Object(List(x97)), x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



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

    (220)    (!(=(x4[10], x0[10]))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (219) using rule (VI) where we applied the induction hypothesis (∀x98,x99,x100,x101:1518_0_test_NULL(x97)=1523_0_test_Return!(=(x98, x99))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x99), x97, java.lang.Object(List(x100)), x98, x101)≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x99), x97, java.lang.Object(List(x100)), x98, x101)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x97), x97, x101, x100)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) with σ = [x98 / x4[10], x99 / x0[10]] which results in the following new constraint:

    (221)    (COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x97, java.lang.Object(List(x100)), x4[10], x101)≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x97, java.lang.Object(List(x100)), x4[10], x101)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x97), x97, x101, x100)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥) ⇒ COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x97)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x97)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x97))), java.lang.Object(List(x97)), x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



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

    (222)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[(-1)bso_130] ≥ 0)



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

    (223)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-2] + x97 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[-1 + (-1)bso_130] ≥ 0)



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

    (224)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[(-1)bso_130] ≥ 0)



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

    (225)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-2] + x97 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[-1 + (-1)bso_130] ≥ 0)



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

    (226)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[(-1)bso_130] ≥ 0)



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

    (227)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-2] + x97 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧[-1 + (-1)bso_130] ≥ 0)



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

    (228)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_130] ≥ 0)



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

    (229)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[-2] ≥ 0∧[-2] + x97 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-1 + (-1)bso_130] ≥ 0)



    We solved constraint (229) using rule (IDP_SMT_SPLIT).




For Pair 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) the following chains were created:
  • We consider the chain COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (230)    (1270_0_test_Load(x1[11])=1523_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]340_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (231)    (1518_0_test_NULL(x1[11])=1523_0_test_Return0=x105798_0_length_NULL(x105, x1[11])=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[11], x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[11], x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (231) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1523_0_test_Return which results in the following new constraints:

    (232)    (1523_0_test_Return=1523_0_test_Return0=x105798_0_length_NULL(x105, NULL)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (233)    (1518_0_test_NULL(x106)=1523_0_test_Return0=x105798_0_length_NULL(x105, java.lang.Object(List(x106)))=List(x0[0])∧(∀x107,x108,x109,x110:1518_0_test_NULL(x106)=1523_0_test_Return0=x107798_0_length_NULL(x107, x106)=List(x108) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x106, x109, x110)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x106, x109, x110)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x106), x109, x110, x106)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x106)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x106)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x106))), x2[11], x3[11], java.lang.Object(List(x106)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (234)    (1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (235)    (1518_0_test_NULL(x106)=1523_0_test_Return0=x105∧(∀x107,x108,x109,x110:1518_0_test_NULL(x106)=1523_0_test_Return0=x107798_0_length_NULL(x107, x106)=List(x108) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x106, x109, x110)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x106, x109, x110)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x106), x109, x110, x106)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x105, -1)=x114java.lang.Object(List(x106))=x115Cond_798_0_length_NULL(x114, x105, x115)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x106)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x106)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x106))), x2[11], x3[11], java.lang.Object(List(x106)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (236)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (235) using rule (V) (with possible (I) afterwards) using induction on Cond_798_0_length_NULL(x114, x105, x115)=List(x0[0]) which results in the following new constraint:

    (237)    (798_0_length_NULL(+(x117, 1), x116)=List(x0[0])∧1518_0_test_NULL(x106)=1523_0_test_Return0=x117∧(∀x107,x108,x109,x110:1518_0_test_NULL(x106)=1523_0_test_Return0=x107798_0_length_NULL(x107, x106)=List(x108) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x106, x109, x110)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x106, x109, x110)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x106), x109, x110, x106)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x117, -1)=TRUEjava.lang.Object(List(x106))=java.lang.Object(List(x116)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x106)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x106)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x106))), x2[11], x3[11], java.lang.Object(List(x106)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (238)    (1518_0_test_NULL(x116)=1523_0_test_Return∧(∀x107,x108,x109,x110:1518_0_test_NULL(x116)=1523_0_test_Return0=x107798_0_length_NULL(x107, x116)=List(x108) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x116, x109, x110)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x116, x109, x110)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x116), x109, x110, x116)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧798_0_length_NULL(1, x116)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x116)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x116)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x116))), x2[11], x3[11], java.lang.Object(List(x116)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (239)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (240)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (241)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (242)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (243)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (244)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (245)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



  • We consider the chain 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (246)    (1270_0_test_Load(x1[13])=1523_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]340_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (247)    (1518_0_test_NULL(x1[13])=1523_0_test_Return0=x119798_0_length_NULL(x119, x1[13])=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[13], x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[13], x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (247) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1523_0_test_Return which results in the following new constraints:

    (248)    (1523_0_test_Return=1523_0_test_Return0=x119798_0_length_NULL(x119, NULL)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (249)    (1518_0_test_NULL(x120)=1523_0_test_Return0=x119798_0_length_NULL(x119, java.lang.Object(List(x120)))=List(x0[0])∧(∀x121,x122,x123,x124:1518_0_test_NULL(x120)=1523_0_test_Return0=x121798_0_length_NULL(x121, x120)=List(x122) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x120, x123, x124)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x120, x123, x124)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x120), x123, x124, x120)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x120)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x120)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x120))), x2[13], x3[13], java.lang.Object(List(x120)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (250)    (1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (251)    (1518_0_test_NULL(x120)=1523_0_test_Return0=x119∧(∀x121,x122,x123,x124:1518_0_test_NULL(x120)=1523_0_test_Return0=x121798_0_length_NULL(x121, x120)=List(x122) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x120, x123, x124)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x120, x123, x124)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x120), x123, x124, x120)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x119, -1)=x128java.lang.Object(List(x120))=x129Cond_798_0_length_NULL(x128, x119, x129)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x120)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x120)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x120))), x2[13], x3[13], java.lang.Object(List(x120)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (252)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (251) using rule (V) (with possible (I) afterwards) using induction on Cond_798_0_length_NULL(x128, x119, x129)=List(x0[0]) which results in the following new constraint:

    (253)    (798_0_length_NULL(+(x131, 1), x130)=List(x0[0])∧1518_0_test_NULL(x120)=1523_0_test_Return0=x131∧(∀x121,x122,x123,x124:1518_0_test_NULL(x120)=1523_0_test_Return0=x121798_0_length_NULL(x121, x120)=List(x122) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x120, x123, x124)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x120, x123, x124)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x120), x123, x124, x120)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x131, -1)=TRUEjava.lang.Object(List(x120))=java.lang.Object(List(x130)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x120)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x120)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x120))), x2[13], x3[13], java.lang.Object(List(x120)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (254)    (1518_0_test_NULL(x130)=1523_0_test_Return∧(∀x121,x122,x123,x124:1518_0_test_NULL(x130)=1523_0_test_Return0=x121798_0_length_NULL(x121, x130)=List(x122) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x130, x123, x124)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x130, x123, x124)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x130), x123, x124, x130)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧798_0_length_NULL(1, x130)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x130)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x130)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x130))), x2[13], x3[13], java.lang.Object(List(x130)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (255)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (256)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (257)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (258)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (259)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (260)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (261)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



  • We consider the chain COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (262)    (1270_0_test_Load(x1[15])=1523_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]340_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (263)    (1518_0_test_NULL(x1[15])=1523_0_test_Return0=x133798_0_length_NULL(x133, x1[15])=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[15], x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[15], x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[15]), x2[15], x3[15], x1[15])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (263) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1523_0_test_Return which results in the following new constraints:

    (264)    (1523_0_test_Return=1523_0_test_Return0=x133798_0_length_NULL(x133, NULL)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (265)    (1518_0_test_NULL(x134)=1523_0_test_Return0=x133798_0_length_NULL(x133, java.lang.Object(List(x134)))=List(x0[0])∧(∀x135,x136,x137,x138:1518_0_test_NULL(x134)=1523_0_test_Return0=x135798_0_length_NULL(x135, x134)=List(x136) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x134, x137, x138)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x134, x137, x138)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x134), x137, x138, x134)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x134)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x134)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x134))), x2[15], x3[15], java.lang.Object(List(x134)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (266)    (1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (267)    (1518_0_test_NULL(x134)=1523_0_test_Return0=x133∧(∀x135,x136,x137,x138:1518_0_test_NULL(x134)=1523_0_test_Return0=x135798_0_length_NULL(x135, x134)=List(x136) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x134, x137, x138)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x134, x137, x138)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x134), x137, x138, x134)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x133, -1)=x142java.lang.Object(List(x134))=x143Cond_798_0_length_NULL(x142, x133, x143)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x134)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x134)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x134))), x2[15], x3[15], java.lang.Object(List(x134)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (268)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



    We simplified constraint (267) using rule (V) (with possible (I) afterwards) using induction on Cond_798_0_length_NULL(x142, x133, x143)=List(x0[0]) which results in the following new constraint:

    (269)    (798_0_length_NULL(+(x145, 1), x144)=List(x0[0])∧1518_0_test_NULL(x134)=1523_0_test_Return0=x145∧(∀x135,x136,x137,x138:1518_0_test_NULL(x134)=1523_0_test_Return0=x135798_0_length_NULL(x135, x134)=List(x136) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x134, x137, x138)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x134, x137, x138)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x134), x137, x138, x134)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x145, -1)=TRUEjava.lang.Object(List(x134))=java.lang.Object(List(x144)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x134)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x134)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x134))), x2[15], x3[15], java.lang.Object(List(x134)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (270)    (1518_0_test_NULL(x144)=1523_0_test_Return∧(∀x135,x136,x137,x138:1518_0_test_NULL(x144)=1523_0_test_Return0=x135798_0_length_NULL(x135, x144)=List(x136) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x144, x137, x138)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x144, x137, x138)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x144), x137, x138, x144)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧798_0_length_NULL(1, x144)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x144)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x144)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x144))), x2[15], x3[15], java.lang.Object(List(x144)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (271)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (272)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (273)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (274)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧[(-1)bso_132] ≥ 0)



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

    (275)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (276)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



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

    (277)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)







For Pair 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) the following chains were created:
  • We consider the chain 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (278)    (340_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13]))∧1270_0_test_Load(x1[13])=1523_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (279)    (1518_0_test_NULL(x1[13])=1523_0_test_Return1=x147798_0_length_NULL(x147, x2[13])=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (279) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1523_0_test_Return which results in the following new constraints:

    (280)    (1523_0_test_Return=1523_0_test_Return1=x147798_0_length_NULL(x147, x2[13])=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (281)    (1518_0_test_NULL(x148)=1523_0_test_Return1=x147798_0_length_NULL(x147, x2[13])=List(x0[9])∧(∀x149,x150,x151,x152:1518_0_test_NULL(x148)=1523_0_test_Return1=x149798_0_length_NULL(x149, x150)=List(x151) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x151), x148, x152, x151, java.lang.Object(List(x150)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x151), x148, x152, x151, java.lang.Object(List(x150)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x148), x148, x150, x152)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x148)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x148)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x148))), java.lang.Object(List(x148)), x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (282)    (1=x147798_0_length_NULL(x147, x2[13])=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (281) using rule (VI) where we applied the induction hypothesis (∀x149,x150,x151,x152:1518_0_test_NULL(x148)=1523_0_test_Return1=x149798_0_length_NULL(x149, x150)=List(x151) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x151), x148, x152, x151, java.lang.Object(List(x150)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x151), x148, x152, x151, java.lang.Object(List(x150)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x148), x148, x150, x152)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) with σ = [x149 / x147, x150 / x2[13], x151 / x0[9]] which results in the following new constraint:

    (283)    (1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x148, x152, x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x148, x152, x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x148), x148, x2[13], x152)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x148)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x148)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x148))), java.lang.Object(List(x148)), x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (282) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x147, x2[13])=List(x0[9]) which results in the following new constraints:

    (284)    (List(x155)=List(x0[9])∧1=x1551107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (285)    (Cond_798_0_length_NULL(>(x157, -1), x157, java.lang.Object(List(x156)))=List(x0[9])∧1=x1571107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x156)))))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x156)))))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, java.lang.Object(List(x156)), x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (286)    (1107_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (287)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x156)))=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x156)))))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x156)))))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, java.lang.Object(List(x156)), x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (288)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧[(-1)bso_134] ≥ 0)



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

    (289)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-2] + x148 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-1 + (-1)bso_134] ≥ 0)



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

    (290)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



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

    (291)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧[(-1)bso_134] ≥ 0)



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

    (292)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



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

    (293)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-2] + x148 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-1 + (-1)bso_134] ≥ 0)



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

    (294)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧[(-1)bso_134] ≥ 0)



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

    (295)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



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

    (296)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-2] + x148 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[-1 + (-1)bso_134] ≥ 0)



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

    (297)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



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

    (298)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)



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

    (299)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[-2] ≥ 0∧[-2] + x148 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-1 + (-1)bso_134] ≥ 0)



    We solved constraint (299) using rule (IDP_SMT_SPLIT).




For Pair 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15]) which results in the following constraint:

    (300)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



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

    (301)    (>(x4[14], x0[14])=TRUE1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



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

    (302)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧[(-1)bso_136] ≥ 0)



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

    (303)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧[(-1)bso_136] ≥ 0)



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

    (304)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧[(-1)bso_136] ≥ 0)



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

    (305)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_136] ≥ 0)







For Pair COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15]) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (306)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1270_0_test_Load(x1[15])=1523_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



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

    (307)    (>(x4[14], x0[14])=TRUE1518_0_test_NULL(x1[15])=1523_0_test_ReturnCOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (307) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1523_0_test_Return which results in the following new constraints:

    (308)    (1523_0_test_Return=1523_0_test_Return>(x4[14], x0[14])=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))


    (309)    (1518_0_test_NULL(x160)=1523_0_test_Return>(x4[14], x0[14])=TRUE∧(∀x161,x162,x163,x164:1518_0_test_NULL(x160)=1523_0_test_Return>(x161, x162)=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x162), java.lang.Object(List(x160)), x163, x161, x164)≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x162), java.lang.Object(List(x160)), x163, x161, x164)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x160), x160, x164, x163)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) ⇒ COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x160)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x160)))), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x160))), java.lang.Object(List(x160)), x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



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

    (310)    (>(x4[14], x0[14])=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (309) using rule (VI) where we applied the induction hypothesis (∀x161,x162,x163,x164:1518_0_test_NULL(x160)=1523_0_test_Return>(x161, x162)=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x162), java.lang.Object(List(x160)), x163, x161, x164)≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x162), java.lang.Object(List(x160)), x163, x161, x164)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x160), x160, x164, x163)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) with σ = [x161 / x4[14], x162 / x0[14]] which results in the following new constraint:

    (311)    (COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x160)), x163, x4[14], x164)≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x160)), x163, x4[14], x164)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x160), x160, x164, x163)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥) ⇒ COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x160)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x160)))), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x160))), java.lang.Object(List(x160)), x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



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

    (312)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[(-1)bso_138] ≥ 0)



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

    (313)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-2] + x160 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[-1 + (-1)bso_138] ≥ 0)



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

    (314)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[(-1)bso_138] ≥ 0)



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

    (315)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-2] + x160 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[-1 + (-1)bso_138] ≥ 0)



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

    (316)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[(-1)bso_138] ≥ 0)



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

    (317)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-2] + x160 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧[-1 + (-1)bso_138] ≥ 0)



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

    (318)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_138] ≥ 0)



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

    (319)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[-2] ≥ 0∧[-2] + x160 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[-1 + (-1)bso_138] ≥ 0)



    We solved constraint (319) using rule (IDP_SMT_SPLIT).




For Pair 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))) the following chains were created:
  • We consider the chain COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))), 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18]) which results in the following constraint:

    (320)    (340_0_length_ConstantStackPush(x3[1])=List(x0[17])∧x2[1]=x1[17]x1[1]=java.lang.Object(List(x3[17]))∧x3[1]=x2[17]926_0_length_ConstantStackPush(java.lang.Object(List(x3[17])))=List(x0[18])∧x1[17]=x1[18]x2[17]=x2[18]java.lang.Object(List(x3[17]))=java.lang.Object(List(x3[18])) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17])≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17])≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (321)    (0=x168798_0_length_NULL(x168, x3[1])=List(x0[17])∧1=x169798_0_length_NULL(x169, x3[17])=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), x3[1])≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), x3[1])≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], x3[1], java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (321) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x168, x3[1])=List(x0[17]) which results in the following new constraints:

    (322)    (List(x170)=List(x0[17])∧0=x1701=x169798_0_length_NULL(x169, x3[17])=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], NULL, java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))


    (323)    (Cond_798_0_length_NULL(>(x172, -1), x172, java.lang.Object(List(x171)))=List(x0[17])∧0=x1721=x169798_0_length_NULL(x169, x3[17])=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x171)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x171)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], java.lang.Object(List(x171)), java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (324)    (1=x169798_0_length_NULL(x169, x3[17])=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x3[17])), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x3[17])), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], NULL, java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (325)    (>(x172, -1)=x178java.lang.Object(List(x171))=x179Cond_798_0_length_NULL(x178, x172, x179)=List(x0[17])∧0=x1721=x169798_0_length_NULL(x169, x3[17])=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x171)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(x3[17])), java.lang.Object(List(x171)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x2[1], java.lang.Object(List(x171)), java.lang.Object(List(x3[17])))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



    We simplified constraint (324) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x169, x3[17])=List(x0[18]) which results in the following new constraints:

    (326)    (List(x173)=List(x0[18])∧1=x173824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], NULL, java.lang.Object(List(NULL)))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))


    (327)    (Cond_798_0_length_NULL(>(x175, -1), x175, java.lang.Object(List(x174)))=List(x0[18])∧1=x175824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x174)))), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x174)))), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x174))))), x2[1], NULL, java.lang.Object(List(java.lang.Object(List(x174)))))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (328)    (824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(NULL)), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], NULL, java.lang.Object(List(NULL)))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (329)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x174)))=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x174)))), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(java.lang.Object(List(x174)))), NULL)≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x174))))), x2[1], NULL, java.lang.Object(List(java.lang.Object(List(x174)))))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (330)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_139] = 0∧[1 + (-1)bso_140] ≥ 0)



    We simplified constraint (325) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x169, x3[17])=List(x0[18]) which results in the following new constraints:

    (331)    (List(x180)=List(x0[18])∧>(x172, -1)=x178java.lang.Object(List(x171))=x179Cond_798_0_length_NULL(x178, x172, x179)=List(x0[17])∧0=x1721=x180824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x171)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x171)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], java.lang.Object(List(x171)), java.lang.Object(List(NULL)))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))


    (332)    (Cond_798_0_length_NULL(>(x182, -1), x182, java.lang.Object(List(x181)))=List(x0[18])∧>(x172, -1)=x178java.lang.Object(List(x171))=x179Cond_798_0_length_NULL(x178, x172, x179)=List(x0[17])∧0=x1721=x182824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x181)))), java.lang.Object(List(x171)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x181)))), java.lang.Object(List(x171)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x181))))), x2[1], java.lang.Object(List(x171)), java.lang.Object(List(java.lang.Object(List(x181)))))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (333)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x171)))=List(x0[17]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x171)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(NULL)), java.lang.Object(List(x171)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(NULL))), x2[1], java.lang.Object(List(x171)), java.lang.Object(List(NULL)))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (334)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x171)))=List(x0[17])∧Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x181)))=List(x0[18]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x181)))), java.lang.Object(List(x171)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[17]), x2[1], java.lang.Object(List(java.lang.Object(List(x181)))), java.lang.Object(List(x171)))≥926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x181))))), x2[1], java.lang.Object(List(x171)), java.lang.Object(List(java.lang.Object(List(x181)))))∧(UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥))



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

    (335)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (336)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (337)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (338)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_139] = 0∧[1 + (-1)bso_140] ≥ 0)



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

    (339)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (340)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (341)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (342)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_139] = 0∧[1 + (-1)bso_140] ≥ 0)



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

    (343)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (344)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (345)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (346)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_139] = 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (347)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (348)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)



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

    (349)    ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)







For Pair 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18]) the following chains were created:
  • We consider the chain 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17]))), 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18]), 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) which results in the following constraint:

    (350)    (926_0_length_ConstantStackPush(java.lang.Object(List(x3[17])))=List(x0[18])∧x1[17]=x1[18]x2[17]=x2[18]java.lang.Object(List(x3[17]))=java.lang.Object(List(x3[18]))∧x1[18]=x0[4]x2[18]=x1[4]java.lang.Object(List(x3[18]))=x2[4]fresh2[18]=x3[4]926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18])))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18])))≥912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (351)    (1=x185798_0_length_NULL(x185, x3[17])=List(x0[18]) ⇒ 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(x3[17])))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(x3[17])))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(x3[17])), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



    We simplified constraint (351) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x185, x3[17])=List(x0[18]) which results in the following new constraints:

    (352)    (List(x186)=List(x0[18])∧1=x186926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(NULL)))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(NULL)))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(NULL)), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))


    (353)    (Cond_798_0_length_NULL(>(x188, -1), x188, java.lang.Object(List(x187)))=List(x0[18])∧1=x188926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x187)))))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x187)))))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x187)))), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (354)    (926_1_MAIN_INVOKEMETHOD(List(1), x1[17], x2[17], java.lang.Object(List(NULL)))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(1), x1[17], x2[17], java.lang.Object(List(NULL)))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(NULL)), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (355)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x187)))=List(x0[18]) ⇒ 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x187)))))≥NonInfC∧926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x187)))))≥912_0_MAIN_NE(x1[17], x2[17], java.lang.Object(List(java.lang.Object(List(x187)))), fresh2[18])∧(UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥))



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

    (356)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_141] = 0∧[(-1)bso_142] ≥ 0)



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

    (357)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (358)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_141] = 0∧[(-1)bso_142] ≥ 0)



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

    (359)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (360)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_141] = 0∧[(-1)bso_142] ≥ 0)



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

    (361)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (362)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_141] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_142] ≥ 0)



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

    (363)    ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_142] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)

  • COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
    • (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_109] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)

  • 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_111] = 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)

  • 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
    • ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_113] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_114] ≥ 0)
    • ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)

  • 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_115 + (-1)Bound*bni_115] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0)

  • COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
    • (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_117 + (-1)Bound*bni_117] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)

  • 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_119] = 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)

  • 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_121 + (-1)Bound*bni_121] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0)

  • COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
    • (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_123 + (-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)

  • 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_125] = 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)

  • 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_127 + (-1)Bound*bni_127] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)

  • COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
    • (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_129 + (-1)Bound*bni_129] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_130] ≥ 0)

  • 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_131] = 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)

  • 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
    • ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_133] = 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)
    • ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0)

  • 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_135 + (-1)Bound*bni_135] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_136] ≥ 0)

  • COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
    • (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_137 + (-1)Bound*bni_137] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_138] ≥ 0)

  • 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))
    • ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧[bni_139] = 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)
    • ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)
    • ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)
    • ((UIncreasing(926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_140] ≥ 0)

  • 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])
    • ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧[bni_141] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_142] ≥ 0)
    • ((UIncreasing(912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_142] ≥ 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(340_0_length_ConstantStackPush(x1)) = 0   
POL(798_0_length_NULL(x1, x2)) = 0   
POL(0) = 0   
POL(926_0_length_ConstantStackPush(x1)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(List(x1)) = 0   
POL(NULL) = [1]   
POL(Cond_798_0_length_NULL(x1, x2, x3)) = 0   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(1270_0_test_Load(x1)) = 0   
POL(1518_0_test_NULL(x1)) = 0   
POL(1523_0_test_Return) = 0   
POL(340_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1]x4 + [-1]x1   
POL(COND_340_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1]x5 + [-1]x2   
POL(824_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1]x3 + [-1]x1   
POL(882_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1]x4 + [-1]x1   
POL(912_0_MAIN_NE(x1, x2, x3, x4)) = [-1]   
POL(COND_912_0_MAIN_NE(x1, x2, x3, x4, x5)) = [-1]   
POL(1006_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x1   
POL(1040_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x1   
POL(COND_1040_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x2   
POL(<=(x1, x2)) = 0   
POL(1080_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x1   
POL(1107_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x1   
POL(COND_1107_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x4 + [-1]x2 + x1   
POL(!(x1)) = 0   
POL(=(x1, x2)) = 0   
POL(1270_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1]x2 + [-1]x1   
POL(COND_1040_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x3 + [-1]x2   
POL(926_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x1   

The following pairs are in P>:

824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))

The following pairs are in Pbound:

912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])

The following pairs are in P:

340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])

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

340_0_length_ConstantStackPush(x0)1798_0_length_NULL(0, x0)1
798_0_length_NULL(x0, NULL)1List(x0)1
798_0_length_NULL(x1, java.lang.Object(List(x0)))1Cond_798_0_length_NULL(>(x1, -1), x1, java.lang.Object(List(x0)))1
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0)))1798_0_length_NULL(+(x1, 1), x0)1
!(TRUE)1FALSE1
!(FALSE)1TRUE1
1270_0_test_Load(x0)11518_0_test_NULL(x0)1
1518_0_test_NULL(NULL)11523_0_test_Return1
1518_0_test_NULL(java.lang.Object(List(x0)))11518_0_test_NULL(x0)1
926_0_length_ConstantStackPush(java.lang.Object(List(x0)))1798_0_length_NULL(0, java.lang.Object(List(x0)))1

(37) Complex Obligation (AND)

(38) 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:
340_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 798_0_length_NULL(0, java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL) → List(x0)
798_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_798_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 798_0_length_NULL(x1 + 1, x0)
1270_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1523_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(0): 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(1): COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(2): 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(3): 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(4): 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(5): COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(6): 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(7): 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(8): COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(9): 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(10): 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(11): COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(12): 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(13): 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(14): 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(15): COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
(18): 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])

(12) -> (0), if (340_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (340_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (340_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(18) -> (4), if (x1[18]* x0[4]x2[18]* x1[4]java.lang.Object(List(x3[18])) →* x2[4]fresh2[18]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (340_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (340_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


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


(11) -> (12), if (1270_0_test_Load(x1[11]) →* 1523_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1270_0_test_Load(x1[13]) →* 1523_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(15) -> (12), if (1270_0_test_Load(x1[15]) →* 1523_0_test_Returnx1[15]* x0[12]x2[15]* x1[12]x3[15]* x2[12])


(9) -> (13), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(6) -> (14), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])


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



The set Q consists of the following terms:
340_0_length_ConstantStackPush(x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL)
798_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_798_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1270_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(39) IDependencyGraphProof (EQUIVALENT transformation)

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

(40) 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:
340_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 798_0_length_NULL(0, java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL) → List(x0)
798_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_798_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 798_0_length_NULL(x1 + 1, x0)
1270_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1523_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(15): COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
(14): 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(13): 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(12): 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(11): COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(10): 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(9): 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(8): COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(7): 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])

(12) -> (0), if (340_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (340_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (340_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (340_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (340_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


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


(11) -> (12), if (1270_0_test_Load(x1[11]) →* 1523_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1270_0_test_Load(x1[13]) →* 1523_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(15) -> (12), if (1270_0_test_Load(x1[15]) →* 1523_0_test_Returnx1[15]* x0[12]x2[15]* x1[12]x3[15]* x2[12])


(9) -> (13), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(6) -> (14), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])


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



The set Q consists of the following terms:
340_0_length_ConstantStackPush(x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL)
798_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_798_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1270_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(41) UsableRulesProof (EQUIVALENT transformation)

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

(42) 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:
1270_0_test_Load(x0) → 1518_0_test_NULL(x0)
340_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
798_0_length_NULL(x0, NULL) → List(x0)
798_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_798_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 798_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1523_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(15): COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
(14): 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(13): 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(12): 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(11): COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(10): 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(9): 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(8): COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(7): 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])

(12) -> (0), if (340_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (340_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (340_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (340_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (340_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


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


(11) -> (12), if (1270_0_test_Load(x1[11]) →* 1523_0_test_Returnx1[11]* x0[12]x2[11]* x1[12]x3[11]* x2[12])


(13) -> (12), if (1270_0_test_Load(x1[13]) →* 1523_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(15) -> (12), if (1270_0_test_Load(x1[15]) →* 1523_0_test_Returnx1[15]* x0[12]x2[15]* x1[12]x3[15]* x2[12])


(9) -> (13), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(6) -> (14), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])


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



The set Q consists of the following terms:
340_0_length_ConstantStackPush(x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL)
798_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_798_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1270_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(43) 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@3c8cd587 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_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15]) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (1)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1270_0_test_Load(x1[15])=1523_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



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

    (2)    (>(x4[14], x0[14])=TRUE1518_0_test_NULL(x1[15])=1523_0_test_ReturnCOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x1[15])), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1523_0_test_Return which results in the following new constraints:

    (3)    (1523_0_test_Return=1523_0_test_Return>(x4[14], x0[14])=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))


    (4)    (1518_0_test_NULL(x0)=1523_0_test_Return>(x4[14], x0[14])=TRUE∧(∀x1,x2,x3,x4:1518_0_test_NULL(x0)=1523_0_test_Return>(x1, x2)=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x2), java.lang.Object(List(x0)), x3, x1, x4)≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x2), java.lang.Object(List(x0)), x3, x1, x4)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x0), x0, x4, x3)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) ⇒ COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x0)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x0)))), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x0))), java.lang.Object(List(x0)), x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



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

    (5)    (>(x4[14], x0[14])=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(NULL)), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



    We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (∀x1,x2,x3,x4:1518_0_test_NULL(x0)=1523_0_test_Return>(x1, x2)=TRUECOND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x2), java.lang.Object(List(x0)), x3, x1, x4)≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x2), java.lang.Object(List(x0)), x3, x1, x4)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x0), x0, x4, x3)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)) with σ = [x1 / x4[14], x2 / x0[14]] which results in the following new constraint:

    (6)    (COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x0)), x3, x4[14], x4)≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(x0)), x3, x4[14], x4)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x0), x0, x4, x3)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥) ⇒ COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x0)))), x3[14], x4[14], x2[14])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[14]), java.lang.Object(List(java.lang.Object(List(x0)))), x3[14], x4[14], x2[14])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x0))), java.lang.Object(List(x0)), x2[14], x3[14])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥))



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

    (7)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (8)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧x4 + x3 + [4]x0 ≥ 0∧[-1] + [3]x0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(9)bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] + [(16)bni_100]x0 ≥ 0∧[6 + (-1)bso_101] + [12]x0 ≥ 0)



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

    (9)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (10)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧x4 + x3 + [4]x0 ≥ 0∧[-1] + [3]x0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(9)bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] + [(16)bni_100]x0 ≥ 0∧[6 + (-1)bso_101] + [12]x0 ≥ 0)



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

    (11)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (12)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧x4 + x3 + [4]x0 ≥ 0∧[-1] + [3]x0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[(9)bni_100 + (-1)Bound*bni_100] + [bni_100]x2[14] + [bni_100]x3[14] + [(16)bni_100]x0 ≥ 0∧[6 + (-1)bso_101] + [12]x0 ≥ 0)



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

    (13)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧[bni_100] ≥ 0∧0 ≥ 0∧[bni_100 + (-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)



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

    (14)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧x4 + x3 + [4]x0 ≥ 0∧[-1] + [3]x0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[bni_100] ≥ 0∧[bni_100] ≥ 0∧[(9)bni_100 + (-1)Bound*bni_100] + [(16)bni_100]x0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[6 + (-1)bso_101] + [12]x0 ≥ 0)







For Pair 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]), COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15]) which results in the following constraint:

    (15)    (>(x4[14], x0[14])=TRUEList(x0[14])=List(x0[15])∧java.lang.Object(List(x1[14]))=java.lang.Object(List(x1[15]))∧x3[14]=x3[15]x4[14]=x4[15]x2[14]=x2[15]1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



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

    (16)    (>(x4[14], x0[14])=TRUE1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])≥COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥))



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

    (17)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[bni_102 + (-1)Bound*bni_102] + [bni_102]x2[14] + [bni_102]x3[14] + [(4)bni_102]x1[14] ≥ 0∧[(-1)bso_103] ≥ 0)



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

    (18)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[bni_102 + (-1)Bound*bni_102] + [bni_102]x2[14] + [bni_102]x3[14] + [(4)bni_102]x1[14] ≥ 0∧[(-1)bso_103] ≥ 0)



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

    (19)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[bni_102 + (-1)Bound*bni_102] + [bni_102]x2[14] + [bni_102]x3[14] + [(4)bni_102]x1[14] ≥ 0∧[(-1)bso_103] ≥ 0)



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

    (20)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[bni_102] ≥ 0∧0 ≥ 0∧[bni_102] ≥ 0∧[(4)bni_102] ≥ 0∧0 ≥ 0∧[bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)







For Pair 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) the following chains were created:
  • We consider the chain 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (21)    (340_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13]))∧1270_0_test_Load(x1[13])=1523_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (22)    (1518_0_test_NULL(x1[13])=1523_0_test_Return1=x8798_0_length_NULL(x8, x2[13])=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x1[13], x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (22) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1523_0_test_Return which results in the following new constraints:

    (23)    (1523_0_test_Return=1523_0_test_Return1=x8798_0_length_NULL(x8, x2[13])=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (24)    (1518_0_test_NULL(x9)=1523_0_test_Return1=x8798_0_length_NULL(x8, x2[13])=List(x0[9])∧(∀x10,x11,x12,x13:1518_0_test_NULL(x9)=1523_0_test_Return1=x10798_0_length_NULL(x10, x11)=List(x12) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x12), x9, x13, x12, java.lang.Object(List(x11)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x12), x9, x13, x12, java.lang.Object(List(x11)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x9), x9, x11, x13)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x9)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x9)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x9))), java.lang.Object(List(x9)), x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (25)    (1=x8798_0_length_NULL(x8, x2[13])=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (24) using rule (VI) where we applied the induction hypothesis (∀x10,x11,x12,x13:1518_0_test_NULL(x9)=1523_0_test_Return1=x10798_0_length_NULL(x10, x11)=List(x12) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x12), x9, x13, x12, java.lang.Object(List(x11)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x12), x9, x13, x12, java.lang.Object(List(x11)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x9), x9, x11, x13)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)) with σ = [x10 / x8, x11 / x2[13], x12 / x0[9]] which results in the following new constraint:

    (26)    (1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x9, x13, x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), x9, x13, x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x9), x9, x2[13], x13)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x9)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x9)), x3[9], x0[9], java.lang.Object(List(x2[13])))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x9))), java.lang.Object(List(x9)), x2[13], x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



    We simplified constraint (25) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x8, x2[13])=List(x0[9]) which results in the following new constraints:

    (27)    (List(x16)=List(x0[9])∧1=x161107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(NULL)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))


    (28)    (Cond_798_0_length_NULL(>(x18, -1), x18, java.lang.Object(List(x17)))=List(x0[9])∧1=x181107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x17)))))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x17)))))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, java.lang.Object(List(x17)), x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (29)    (1107_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(1), NULL, x3[9], 1, java.lang.Object(List(NULL)))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, NULL, x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (30)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x17)))=List(x0[9]) ⇒ 1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x17)))))≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, x3[9], x0[9], java.lang.Object(List(java.lang.Object(List(x17)))))≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, java.lang.Object(List(x17)), x3[9])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥))



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

    (31)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_104] = 0∧[(-1)bso_105] ≥ 0)



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

    (32)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[4]x2[13] + x13 + x9 ≥ 0∧[-1] + [3]x2[13] ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_105] + [3]x2[13] ≥ 0)



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

    (33)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[6 + (-1)bso_105] + [12]x17 ≥ 0)



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

    (34)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_104] = 0∧[(-1)bso_105] ≥ 0)



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

    (35)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[6 + (-1)bso_105] + [12]x17 ≥ 0)



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

    (36)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[4]x2[13] + x13 + x9 ≥ 0∧[-1] + [3]x2[13] ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_105] + [3]x2[13] ≥ 0)



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

    (37)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_104] = 0∧[(-1)bso_105] ≥ 0)



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

    (38)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[6 + (-1)bso_105] + [12]x17 ≥ 0)



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

    (39)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[4]x2[13] + x13 + x9 ≥ 0∧[-1] + [3]x2[13] ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧[(-1)bso_105] + [3]x2[13] ≥ 0)



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

    (40)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_104] = 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)



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

    (41)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[6 + (-1)bso_105] ≥ 0∧[1] ≥ 0)



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

    (42)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[4]x2[13] + x13 + x9 ≥ 0∧[-1] + [3]x2[13] ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] + [3]x2[13] ≥ 0)







For Pair 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) the following chains were created:
  • We consider the chain COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (43)    (1270_0_test_Load(x1[11])=1523_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]340_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (44)    (1518_0_test_NULL(x1[11])=1523_0_test_Return0=x21798_0_length_NULL(x21, x1[11])=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[11], x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[11], x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[11]), x2[11], x3[11], x1[11])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (44) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1523_0_test_Return which results in the following new constraints:

    (45)    (1523_0_test_Return=1523_0_test_Return0=x21798_0_length_NULL(x21, NULL)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (46)    (1518_0_test_NULL(x22)=1523_0_test_Return0=x21798_0_length_NULL(x21, java.lang.Object(List(x22)))=List(x0[0])∧(∀x23,x24,x25,x26:1518_0_test_NULL(x22)=1523_0_test_Return0=x23798_0_length_NULL(x23, x22)=List(x24) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x22, x25, x26)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x22, x25, x26)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x22), x25, x26, x22)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x22))), x2[11], x3[11], java.lang.Object(List(x22)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (47)    (1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[11], x3[11], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (48)    (1518_0_test_NULL(x22)=1523_0_test_Return0=x21∧(∀x23,x24,x25,x26:1518_0_test_NULL(x22)=1523_0_test_Return0=x23798_0_length_NULL(x23, x22)=List(x24) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x22, x25, x26)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x22, x25, x26)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x22), x25, x26, x22)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x21, -1)=x30java.lang.Object(List(x22))=x31Cond_798_0_length_NULL(x30, x21, x31)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x22))), x2[11], x3[11], java.lang.Object(List(x22)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (49)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[2 + (-1)bso_107] ≥ 0)



    We simplified constraint (48) using rule (V) (with possible (I) afterwards) using induction on Cond_798_0_length_NULL(x30, x21, x31)=List(x0[0]) which results in the following new constraint:

    (50)    (798_0_length_NULL(+(x33, 1), x32)=List(x0[0])∧1518_0_test_NULL(x22)=1523_0_test_Return0=x33∧(∀x23,x24,x25,x26:1518_0_test_NULL(x22)=1523_0_test_Return0=x23798_0_length_NULL(x23, x22)=List(x24) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x22, x25, x26)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x22, x25, x26)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x22), x25, x26, x22)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x33, -1)=TRUEjava.lang.Object(List(x22))=java.lang.Object(List(x32)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x22)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x22))), x2[11], x3[11], java.lang.Object(List(x22)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (51)    (1518_0_test_NULL(x32)=1523_0_test_Return∧(∀x23,x24,x25,x26:1518_0_test_NULL(x32)=1523_0_test_Return0=x23798_0_length_NULL(x23, x32)=List(x24) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x32, x25, x26)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x32, x25, x26)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x32), x25, x26, x32)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧798_0_length_NULL(1, x32)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x32)), x2[11], x3[11])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x32)), x2[11], x3[11])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x32))), x2[11], x3[11], java.lang.Object(List(x32)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (52)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (53)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[2 + (-1)bso_107] ≥ 0)



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

    (54)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (55)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[2 + (-1)bso_107] ≥ 0)



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

    (56)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (57)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (58)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



  • We consider the chain 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (59)    (1270_0_test_Load(x1[13])=1523_0_test_Returnx1[13]=x0[12]x2[13]=x1[12]x3[13]=x2[12]340_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (60)    (1518_0_test_NULL(x1[13])=1523_0_test_Return0=x35798_0_length_NULL(x35, x1[13])=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[13], x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[13], x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[13]), x2[13], x3[13], x1[13])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (60) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[13])=1523_0_test_Return which results in the following new constraints:

    (61)    (1523_0_test_Return=1523_0_test_Return0=x35798_0_length_NULL(x35, NULL)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (62)    (1518_0_test_NULL(x36)=1523_0_test_Return0=x35798_0_length_NULL(x35, java.lang.Object(List(x36)))=List(x0[0])∧(∀x37,x38,x39,x40:1518_0_test_NULL(x36)=1523_0_test_Return0=x37798_0_length_NULL(x37, x36)=List(x38) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x36, x39, x40)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x36, x39, x40)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x36), x39, x40, x36)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x36))), x2[13], x3[13], java.lang.Object(List(x36)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (63)    (1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[13], x3[13], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (64)    (1518_0_test_NULL(x36)=1523_0_test_Return0=x35∧(∀x37,x38,x39,x40:1518_0_test_NULL(x36)=1523_0_test_Return0=x37798_0_length_NULL(x37, x36)=List(x38) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x36, x39, x40)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x36, x39, x40)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x36), x39, x40, x36)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x35, -1)=x44java.lang.Object(List(x36))=x45Cond_798_0_length_NULL(x44, x35, x45)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x36))), x2[13], x3[13], java.lang.Object(List(x36)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (65)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[2 + (-1)bso_107] ≥ 0)



    We simplified constraint (64) using rule (V) (with possible (I) afterwards) using induction on Cond_798_0_length_NULL(x44, x35, x45)=List(x0[0]) which results in the following new constraint:

    (66)    (798_0_length_NULL(+(x47, 1), x46)=List(x0[0])∧1518_0_test_NULL(x36)=1523_0_test_Return0=x47∧(∀x37,x38,x39,x40:1518_0_test_NULL(x36)=1523_0_test_Return0=x37798_0_length_NULL(x37, x36)=List(x38) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x36, x39, x40)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x36, x39, x40)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x36), x39, x40, x36)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x47, -1)=TRUEjava.lang.Object(List(x36))=java.lang.Object(List(x46)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x36)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x36))), x2[13], x3[13], java.lang.Object(List(x36)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (67)    (1518_0_test_NULL(x46)=1523_0_test_Return∧(∀x37,x38,x39,x40:1518_0_test_NULL(x46)=1523_0_test_Return0=x37798_0_length_NULL(x37, x46)=List(x38) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x46, x39, x40)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x46, x39, x40)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x46), x39, x40, x46)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧798_0_length_NULL(1, x46)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x46)), x2[13], x3[13])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x46)), x2[13], x3[13])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x46))), x2[13], x3[13], java.lang.Object(List(x46)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (68)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (69)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[2 + (-1)bso_107] ≥ 0)



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

    (70)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (71)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[2 + (-1)bso_107] ≥ 0)



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

    (72)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (73)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (74)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



  • We consider the chain COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]), 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) which results in the following constraint:

    (75)    (1270_0_test_Load(x1[15])=1523_0_test_Returnx1[15]=x0[12]x2[15]=x1[12]x3[15]=x2[12]340_0_length_ConstantStackPush(x0[12])=List(x0[0])∧x1[12]=x2[0]x2[12]=x3[0]x0[12]=x1[0]1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (76)    (1518_0_test_NULL(x1[15])=1523_0_test_Return0=x49798_0_length_NULL(x49, x1[15])=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[15], x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x1[15], x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[15]), x2[15], x3[15], x1[15])∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



    We simplified constraint (76) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[15])=1523_0_test_Return which results in the following new constraints:

    (77)    (1523_0_test_Return=1523_0_test_Return0=x49798_0_length_NULL(x49, NULL)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))


    (78)    (1518_0_test_NULL(x50)=1523_0_test_Return0=x49798_0_length_NULL(x49, java.lang.Object(List(x50)))=List(x0[0])∧(∀x51,x52,x53,x54:1518_0_test_NULL(x50)=1523_0_test_Return0=x51798_0_length_NULL(x51, x50)=List(x52) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x50, x53, x54)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x50, x53, x54)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x50), x53, x54, x50)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x50))), x2[15], x3[15], java.lang.Object(List(x50)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (79)    (1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, NULL, x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[15], x3[15], NULL)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (80)    (1518_0_test_NULL(x50)=1523_0_test_Return0=x49∧(∀x51,x52,x53,x54:1518_0_test_NULL(x50)=1523_0_test_Return0=x51798_0_length_NULL(x51, x50)=List(x52) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x50, x53, x54)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x50, x53, x54)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x50), x53, x54, x50)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x49, -1)=x58java.lang.Object(List(x50))=x59Cond_798_0_length_NULL(x58, x49, x59)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x50))), x2[15], x3[15], java.lang.Object(List(x50)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (81)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[2 + (-1)bso_107] ≥ 0)



    We simplified constraint (80) using rule (V) (with possible (I) afterwards) using induction on Cond_798_0_length_NULL(x58, x49, x59)=List(x0[0]) which results in the following new constraint:

    (82)    (798_0_length_NULL(+(x61, 1), x60)=List(x0[0])∧1518_0_test_NULL(x50)=1523_0_test_Return0=x61∧(∀x51,x52,x53,x54:1518_0_test_NULL(x50)=1523_0_test_Return0=x51798_0_length_NULL(x51, x50)=List(x52) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x50, x53, x54)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x50, x53, x54)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x50), x53, x54, x50)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧>(x61, -1)=TRUEjava.lang.Object(List(x50))=java.lang.Object(List(x60)) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x50)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x50))), x2[15], x3[15], java.lang.Object(List(x50)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (83)    (1518_0_test_NULL(x60)=1523_0_test_Return∧(∀x51,x52,x53,x54:1518_0_test_NULL(x60)=1523_0_test_Return0=x51798_0_length_NULL(x51, x60)=List(x52) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x60, x53, x54)≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x60, x53, x54)≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x60), x53, x54, x60)∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))∧798_0_length_NULL(1, x60)=List(x0[0]) ⇒ 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x60)), x2[15], x3[15])≥NonInfC∧1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, java.lang.Object(List(x60)), x2[15], x3[15])≥340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x60))), x2[15], x3[15], java.lang.Object(List(x60)))∧(UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥))



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

    (84)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (85)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[2 + (-1)bso_107] ≥ 0)



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

    (86)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (87)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧[2 + (-1)bso_107] ≥ 0)



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

    (88)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (89)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)



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

    (90)    ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)







For Pair COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) the following chains were created:
  • We consider the chain 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11]), 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12]) which results in the following constraint:

    (91)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1270_0_test_Load(x1[11])=1523_0_test_Returnx1[11]=x0[12]x2[11]=x1[12]x3[11]=x2[12]COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



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

    (92)    (!(=(x4[10], x0[10]))=TRUE1518_0_test_NULL(x1[11])=1523_0_test_ReturnCOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x1[11], java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (92) using rule (V) (with possible (I) afterwards) using induction on 1518_0_test_NULL(x1[11])=1523_0_test_Return which results in the following new constraints:

    (93)    (1523_0_test_Return=1523_0_test_Return!(=(x4[10], x0[10]))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))


    (94)    (1518_0_test_NULL(x63)=1523_0_test_Return!(=(x4[10], x0[10]))=TRUE∧(∀x64,x65,x66,x67:1518_0_test_NULL(x63)=1523_0_test_Return!(=(x64, x65))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x65), x63, java.lang.Object(List(x66)), x64, x67)≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x65), x63, java.lang.Object(List(x66)), x64, x67)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x63), x63, x67, x66)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) ⇒ COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x63)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x63)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x63))), java.lang.Object(List(x63)), x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



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

    (95)    (!(=(x4[10], x0[10]))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), NULL, java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(NULL), NULL, x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



    We simplified constraint (94) using rule (VI) where we applied the induction hypothesis (∀x64,x65,x66,x67:1518_0_test_NULL(x63)=1523_0_test_Return!(=(x64, x65))=TRUECOND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x65), x63, java.lang.Object(List(x66)), x64, x67)≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x65), x63, java.lang.Object(List(x66)), x64, x67)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x63), x63, x67, x66)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)) with σ = [x64 / x4[10], x65 / x0[10]] which results in the following new constraint:

    (96)    (COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x63, java.lang.Object(List(x66)), x4[10], x67)≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), x63, java.lang.Object(List(x66)), x4[10], x67)≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x63), x63, x67, x66)∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥) ⇒ COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x63)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[10]), java.lang.Object(List(x63)), java.lang.Object(List(x3[10])), x4[10], x2[10])≥1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(java.lang.Object(List(x63))), java.lang.Object(List(x63)), x2[10], x3[10])∧(UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥))



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

    (97)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(4)bni_108]x3[10] ≥ 0∧[(-1)bso_109] + [3]x3[10] ≥ 0)



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

    (98)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧x67 + [4]x66 + x63 ≥ 0∧[-1] + [3]x66 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(3)bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(4)bni_108]x3[10] + [(4)bni_108]x63 ≥ 0∧[(-1)bso_109] + [3]x3[10] ≥ 0)



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

    (99)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(4)bni_108]x3[10] ≥ 0∧[(-1)bso_109] + [3]x3[10] ≥ 0)



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

    (100)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧x67 + [4]x66 + x63 ≥ 0∧[-1] + [3]x66 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(3)bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(4)bni_108]x3[10] + [(4)bni_108]x63 ≥ 0∧[(-1)bso_109] + [3]x3[10] ≥ 0)



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

    (101)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(4)bni_108]x3[10] ≥ 0∧[(-1)bso_109] + [3]x3[10] ≥ 0)



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

    (102)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧x67 + [4]x66 + x63 ≥ 0∧[-1] + [3]x66 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[(3)bni_108 + (-1)Bound*bni_108] + [bni_108]x2[10] + [(4)bni_108]x3[10] + [(4)bni_108]x63 ≥ 0∧[(-1)bso_109] + [3]x3[10] ≥ 0)



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

    (103)    (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108] ≥ 0∧0 ≥ 0∧[(4)bni_108] ≥ 0∧0 ≥ 0∧[bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0∧[1] ≥ 0)



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

    (104)    ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧x67 + [4]x66 + x63 ≥ 0∧[-1] + [3]x66 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108] ≥ 0∧[(4)bni_108] ≥ 0∧[(3)bni_108 + (-1)Bound*bni_108] + [(4)bni_108]x63 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0∧[1] ≥ 0)







For Pair 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) the following chains were created:
  • We consider the chain 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]), COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11]) which results in the following constraint:

    (105)    (!(=(x4[10], x0[10]))=TRUEList(x0[10])=List(x0[11])∧x1[10]=x1[11]java.lang.Object(List(x3[10]))=java.lang.Object(List(x3[11]))∧x4[10]=x4[11]x2[10]=x2[11]1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



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

    (106)    (!(=(x4[10], x0[10]))=TRUE1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥NonInfC∧1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])≥COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])∧(UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥))



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

    (107)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[bni_110 + (-1)Bound*bni_110] + [bni_110]x2[10] + [(4)bni_110]x3[10] + [bni_110]x1[10] ≥ 0∧[(-1)bso_111] ≥ 0)



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

    (108)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[bni_110 + (-1)Bound*bni_110] + [bni_110]x2[10] + [(4)bni_110]x3[10] + [bni_110]x1[10] ≥ 0∧[(-1)bso_111] ≥ 0)



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

    (109)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[bni_110 + (-1)Bound*bni_110] + [bni_110]x2[10] + [(4)bni_110]x3[10] + [bni_110]x1[10] ≥ 0∧[(-1)bso_111] ≥ 0)



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

    (110)    (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧[(4)bni_110] ≥ 0∧[bni_110] ≥ 0∧0 ≥ 0∧[bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)







For Pair 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) the following chains were created:
  • We consider the chain COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) which results in the following constraint:

    (111)    (340_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]340_0_length_ConstantStackPush(x2[9])=List(x0[10])∧x1[9]=x1[10]x3[9]=java.lang.Object(List(x3[10]))∧x0[9]=x4[10]x2[9]=x2[10]1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (112)    (0=x71798_0_length_NULL(x71, x1[8])=List(x0[9])∧0=x72798_0_length_NULL(x72, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), x1[8])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[8], java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (112) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x71, x1[8])=List(x0[9]) which results in the following new constraints:

    (113)    (List(x73)=List(x0[9])∧0=x730=x72798_0_length_NULL(x72, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (114)    (Cond_798_0_length_NULL(>(x75, -1), x75, java.lang.Object(List(x74)))=List(x0[9])∧0=x750=x72798_0_length_NULL(x72, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (115)    (0=x72798_0_length_NULL(x72, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), x2[9], java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), NULL, java.lang.Object(List(x3[10])), 0, x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (116)    (>(x75, -1)=x81java.lang.Object(List(x74))=x82Cond_798_0_length_NULL(x81, x75, x82)=List(x0[9])∧0=x750=x72798_0_length_NULL(x72, x2[9])=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (115) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x72, x2[9])=List(x0[10]) which results in the following new constraints:

    (117)    (List(x76)=List(x0[10])∧0=x761080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (118)    (Cond_798_0_length_NULL(>(x78, -1), x78, java.lang.Object(List(x77)))=List(x0[10])∧0=x781080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x77)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x77)), java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x77))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x77)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (119)    (1080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), NULL, java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, java.lang.Object(List(x3[10])), 0, NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (120)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x77)))=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x77)), java.lang.Object(List(x3[10])), NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x77)), java.lang.Object(List(x3[10])), NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x77))), NULL, java.lang.Object(List(x3[10])), 0, java.lang.Object(List(x77)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (121)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_112] = 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (116) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x72, x2[9])=List(x0[10]) which results in the following new constraints:

    (122)    (List(x83)=List(x0[10])∧>(x75, -1)=x81java.lang.Object(List(x74))=x82Cond_798_0_length_NULL(x81, x75, x82)=List(x0[9])∧0=x750=x831080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (123)    (Cond_798_0_length_NULL(>(x85, -1), x85, java.lang.Object(List(x84)))=List(x0[10])∧>(x75, -1)=x81java.lang.Object(List(x74))=x82Cond_798_0_length_NULL(x81, x75, x82)=List(x0[9])∧0=x750=x851080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x84)), java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x84)), java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x84))), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x84)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (124)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x74)))=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), NULL, java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], NULL)∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (125)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x74)))=List(x0[9])∧Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x84)))=List(x0[10]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x84)), java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x84)), java.lang.Object(List(x3[10])), java.lang.Object(List(x74)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x84))), java.lang.Object(List(x74)), java.lang.Object(List(x3[10])), x0[9], java.lang.Object(List(x84)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (126)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (127)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (128)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (129)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_112] = 0∧[(-1)bso_113] ≥ 0)



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

    (130)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (131)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (132)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (133)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_112] = 0∧[(-1)bso_113] ≥ 0)



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

    (134)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (135)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (136)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (137)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_112] = 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (138)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (139)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (140)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



  • We consider the chain COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]), 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13]) which results in the following constraint:

    (141)    (340_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]340_0_length_ConstantStackPush(x2[9])=List(x0[13])∧x1[9]=x1[13]x3[9]=x3[13]x0[9]=x0[13]x2[9]=java.lang.Object(List(x2[13])) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (142)    (0=x88798_0_length_NULL(x88, x1[8])=List(x0[9])∧1=x89798_0_length_NULL(x89, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], x1[8])≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), x1[8], x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (142) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x88, x1[8])=List(x0[9]) which results in the following new constraints:

    (143)    (List(x90)=List(x0[9])∧0=x901=x89798_0_length_NULL(x89, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (144)    (Cond_798_0_length_NULL(>(x92, -1), x92, java.lang.Object(List(x91)))=List(x0[9])∧0=x921=x89798_0_length_NULL(x89, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x91)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x91)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (145)    (1=x89798_0_length_NULL(x89, x2[13])=List(0) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x2[13])), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), NULL, x3[8], 0, java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (146)    (>(x92, -1)=x98java.lang.Object(List(x91))=x99Cond_798_0_length_NULL(x98, x92, x99)=List(x0[9])∧0=x921=x89798_0_length_NULL(x89, x2[13])=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(x2[13])), x3[8], java.lang.Object(List(x91)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x2[13]))), java.lang.Object(List(x91)), x3[8], x0[9], java.lang.Object(List(x2[13])))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (145) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x89, x2[13])=List(0) which results in the following new constraints:

    (147)    (List(x93)=List(0)∧1=x931080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(NULL)), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(NULL))), NULL, x3[8], 0, java.lang.Object(List(NULL)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (148)    (Cond_798_0_length_NULL(>(x95, -1), x95, java.lang.Object(List(x94)))=List(0)∧1=x951080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x94)))), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x94)))), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x94))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x94)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We solved constraint (147) using rules (I), (II), (III).We simplified constraint (148) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (149)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x94)))=List(0) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x94)))), x3[8], NULL)≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(java.lang.Object(List(x94)))), x3[8], NULL)≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x94))))), NULL, x3[8], 0, java.lang.Object(List(java.lang.Object(List(x94)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



    We simplified constraint (146) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x89, x2[13])=List(x0[9]) which results in the following new constraints:

    (150)    (List(x100)=List(x0[9])∧>(x92, -1)=x98java.lang.Object(List(x91))=x99Cond_798_0_length_NULL(x98, x92, x99)=List(x0[9])∧0=x921=x1001080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x91)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x91)), x3[8], x0[9], java.lang.Object(List(NULL)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))


    (151)    (Cond_798_0_length_NULL(>(x102, -1), x102, java.lang.Object(List(x101)))=List(x0[9])∧>(x92, -1)=x98java.lang.Object(List(x91))=x99Cond_798_0_length_NULL(x98, x92, x99)=List(x0[9])∧0=x921=x1021080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x101)))), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x101)))), x3[8], java.lang.Object(List(x91)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x101))))), java.lang.Object(List(x91)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x101)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (152)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x91)))=List(1) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(NULL)), x3[8], java.lang.Object(List(x91)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(NULL))), java.lang.Object(List(x91)), x3[8], 1, java.lang.Object(List(NULL)))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (153)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x91)))=List(x0[9])∧Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x101)))=List(x0[9]) ⇒ 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x101)))), x3[8], java.lang.Object(List(x91)))≥NonInfC∧1080_1_MAIN_INVOKEMETHOD(List(x0[9]), java.lang.Object(List(java.lang.Object(List(x101)))), x3[8], java.lang.Object(List(x91)))≥1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(java.lang.Object(List(x101))))), java.lang.Object(List(x91)), x3[8], x0[9], java.lang.Object(List(java.lang.Object(List(x101)))))∧(UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥))



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

    (154)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (155)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (156)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (157)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



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

    (158)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (156) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (159)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (157) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (160)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (158) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (161)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (159) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (162)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (160) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (163)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (161) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (164)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (162) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (165)    ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)







For Pair COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]), 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9]) which results in the following constraint:

    (166)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]340_0_length_ConstantStackPush(x1[8])=List(x0[9])∧x2[8]=x2[9]x3[8]=x3[9]x1[8]=x1[9]COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (166) using rules (I), (II), (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (167)    (<=(x4[7], x0[7])=TRUE0=x105798_0_length_NULL(x105, x1[8])=List(x0[9]) ⇒ COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), x1[8], x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[7], x3[7], x1[8])∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (167) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x105, x1[8])=List(x0[9]) which results in the following new constraints:

    (168)    (List(x106)=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x106COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))


    (169)    (Cond_798_0_length_NULL(>(x108, -1), x108, java.lang.Object(List(x107)))=List(x0[9])∧<=(x4[7], x0[7])=TRUE0=x108COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x107)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x107)), x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x107))), x2[7], x3[7], java.lang.Object(List(x107)))∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (168) using rules (I), (II), (IV) which results in the following new constraint:

    (170)    (<=(x4[7], x0[7])=TRUECOND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), NULL, x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[7], x3[7], NULL)∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (169) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (171)    (<=(x4[7], x0[7])=TRUECond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x107)))=List(x0[9]) ⇒ COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x107)), x3[7], x4[7], x2[7])≥NonInfC∧COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[7]), java.lang.Object(List(x107)), x3[7], x4[7], x2[7])≥1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x107))), x2[7], x3[7], java.lang.Object(List(x107)))∧(UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥))



    We simplified constraint (170) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (172)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (171) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (173)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] + [(4)bni_114]x107 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (172) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (174)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (173) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (175)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] + [(4)bni_114]x107 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (174) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (176)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[(-1)bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (175) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (177)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114 + (-1)Bound*bni_114] + [bni_114]x2[7] + [bni_114]x3[7] + [(4)bni_114]x107 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (176) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (178)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114] ≥ 0∧0 ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (177) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (179)    (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114] ≥ 0∧0 ≥ 0∧[bni_114] ≥ 0∧[(4)bni_114] ≥ 0∧0 ≥ 0∧[bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)







For Pair 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) the following chains were created:
  • We consider the chain 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]), COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8]) which results in the following constraint:

    (180)    (<=(x4[7], x0[7])=TRUEList(x0[7])=List(x0[8])∧x1[7]=x1[8]x3[7]=x3[8]x4[7]=x4[8]x2[7]=x2[8]1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (180) using rules (I), (II), (IV) which results in the following new constraint:

    (181)    (<=(x4[7], x0[7])=TRUE1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥NonInfC∧1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7])≥COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])∧(UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥))



    We simplified constraint (181) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (182)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x2[7] + [bni_116]x3[7] + [bni_116]x1[7] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (182) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (183)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x2[7] + [bni_116]x3[7] + [bni_116]x1[7] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (183) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (184)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[(-1)bni_116 + (-1)Bound*bni_116] + [bni_116]x2[7] + [bni_116]x3[7] + [bni_116]x1[7] ≥ 0∧[(-1)bso_117] ≥ 0)



    We simplified constraint (184) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (185)    (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[bni_116] ≥ 0∧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∧0 ≥ 0∧[(-1)bso_117] ≥ 0)







For Pair 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) the following chains were created:
  • We consider the chain COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7]) which results in the following constraint:

    (186)    (340_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]340_0_length_ConstantStackPush(x2[6])=List(x0[7])∧x1[6]=x1[7]x3[6]=x3[7]x0[6]=x4[7]x2[6]=x2[7]1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (186) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (187)    (0=x111798_0_length_NULL(x111, x0[5])=List(x0[6])∧0=x112798_0_length_NULL(x112, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], x0[5])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x0[5], x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (187) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x111, x0[5])=List(x0[6]) which results in the following new constraints:

    (188)    (List(x113)=List(x0[6])∧0=x1130=x112798_0_length_NULL(x112, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), NULL, x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (189)    (Cond_798_0_length_NULL(>(x115, -1), x115, java.lang.Object(List(x114)))=List(x0[6])∧0=x1150=x112798_0_length_NULL(x112, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x114)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x114)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x114)), x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (188) using rules (I), (II), (III) which results in the following new constraint:

    (190)    (0=x112798_0_length_NULL(x112, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), x2[6], x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), NULL, x2[5], 0, x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (189) using rule (VII) which results in the following new constraint:

    (191)    (>(x115, -1)=x121java.lang.Object(List(x114))=x122Cond_798_0_length_NULL(x121, x115, x122)=List(x0[6])∧0=x1150=x112798_0_length_NULL(x112, x2[6])=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x114)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x114)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x114)), x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (190) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x112, x2[6])=List(x0[7]) which results in the following new constraints:

    (192)    (List(x116)=List(x0[7])∧0=x1161006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (193)    (Cond_798_0_length_NULL(>(x118, -1), x118, java.lang.Object(List(x117)))=List(x0[7])∧0=x1181006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x117)), x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x117)), x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x117))), NULL, x2[5], 0, java.lang.Object(List(x117)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (192) using rules (I), (II), (IV) which results in the following new constraint:

    (194)    (1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), NULL, x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), NULL, x2[5], 0, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (193) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (195)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x117)))=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x117)), x2[5], NULL)≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(0), java.lang.Object(List(x117)), x2[5], NULL)≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x117))), NULL, x2[5], 0, java.lang.Object(List(x117)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (194) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (196)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (191) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x112, x2[6])=List(x0[7]) which results in the following new constraints:

    (197)    (List(x123)=List(x0[7])∧>(x115, -1)=x121java.lang.Object(List(x114))=x122Cond_798_0_length_NULL(x121, x115, x122)=List(x0[6])∧0=x1150=x1231006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x114)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x114)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x114)), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (198)    (Cond_798_0_length_NULL(>(x125, -1), x125, java.lang.Object(List(x124)))=List(x0[7])∧>(x115, -1)=x121java.lang.Object(List(x114))=x122Cond_798_0_length_NULL(x121, x115, x122)=List(x0[6])∧0=x1150=x1251006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x124)), x2[5], java.lang.Object(List(x114)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x124)), x2[5], java.lang.Object(List(x114)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x124))), java.lang.Object(List(x114)), x2[5], x0[6], java.lang.Object(List(x124)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (197) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (199)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x114)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x114)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x114)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x114)), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (198) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (200)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x114)))=List(x0[6])∧Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x124)))=List(x0[7]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x124)), x2[5], java.lang.Object(List(x114)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x124)), x2[5], java.lang.Object(List(x114)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x124))), java.lang.Object(List(x114)), x2[5], x0[6], java.lang.Object(List(x124)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (195) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (201)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (199) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (202)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (200) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (203)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (196) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (204)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (202) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (205)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (201) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (206)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (203) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (207)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (204) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (208)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (205) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (209)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (206) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (210)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (207) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (211)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (208) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (212)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (209) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (213)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (210) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (214)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (211) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (215)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧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_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]), 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) which results in the following constraint:

    (216)    (340_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]340_0_length_ConstantStackPush(x2[6])=List(x0[14])∧x1[6]=java.lang.Object(List(x1[14]))∧x3[6]=x3[14]x0[6]=x4[14]x2[6]=x2[14]1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6])≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (216) using rules (III), (IV), (VII), (IDP_CONSTANT_FOLD), (REWRITING) which results in the following new constraint:

    (217)    (0=x128798_0_length_NULL(x128, x2[6])=List(x0[14])∧1=x129798_0_length_NULL(x129, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), java.lang.Object(List(x1[14])), x2[5], x0[6], x2[6])∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (217) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x128, x2[6])=List(x0[14]) which results in the following new constraints:

    (218)    (List(x130)=List(x0[14])∧0=x1301=x129798_0_length_NULL(x129, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (219)    (Cond_798_0_length_NULL(>(x132, -1), x132, java.lang.Object(List(x131)))=List(x0[14])∧0=x1321=x129798_0_length_NULL(x129, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x131)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (218) using rules (I), (II), (IV) which results in the following new constraint:

    (220)    (1=x129798_0_length_NULL(x129, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(x1[14])), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (219) using rule (VII) which results in the following new constraint:

    (221)    (>(x132, -1)=x138java.lang.Object(List(x131))=x139Cond_798_0_length_NULL(x138, x132, x139)=List(x0[14])∧0=x1321=x129798_0_length_NULL(x129, x1[14])=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(x1[14])))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(x1[14])))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(x1[14])), x2[5], x0[6], java.lang.Object(List(x131)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (220) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x129, x1[14])=List(x0[6]) which results in the following new constraints:

    (222)    (List(x133)=List(x0[6])∧1=x1331006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (223)    (Cond_798_0_length_NULL(>(x135, -1), x135, java.lang.Object(List(x134)))=List(x0[6])∧1=x1351006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x134)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x134)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x134)))), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (222) using rules (I), (II), (III) which results in the following new constraint:

    (224)    (1006_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(1), NULL, x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(NULL)), x2[5], 1, NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (223) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (225)    (Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x134)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x134)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), NULL, x2[5], java.lang.Object(List(java.lang.Object(List(x134)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), java.lang.Object(List(java.lang.Object(List(x134)))), x2[5], x0[6], NULL)∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (224) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (226)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (221) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x129, x1[14])=List(x0[6]) which results in the following new constraints:

    (227)    (List(x140)=List(x0[6])∧>(x132, -1)=x138java.lang.Object(List(x131))=x139Cond_798_0_length_NULL(x138, x132, x139)=List(x0[14])∧0=x1321=x1401006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(NULL)), x2[5], x0[6], java.lang.Object(List(x131)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))


    (228)    (Cond_798_0_length_NULL(>(x142, -1), x142, java.lang.Object(List(x141)))=List(x0[6])∧>(x132, -1)=x138java.lang.Object(List(x131))=x139Cond_798_0_length_NULL(x138, x132, x139)=List(x0[14])∧0=x1321=x1421006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(java.lang.Object(List(x141)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(java.lang.Object(List(x141)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(java.lang.Object(List(x141)))), x2[5], x0[6], java.lang.Object(List(x131)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (227) using rules (I), (II), (III), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (229)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x131)))=List(x0[14]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(NULL)))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(1), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(NULL)))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(NULL)), x2[5], 1, java.lang.Object(List(x131)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (228) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (230)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x131)))=List(x0[14])∧Cond_798_0_length_NULL(TRUE, 1, java.lang.Object(List(x141)))=List(x0[6]) ⇒ 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(java.lang.Object(List(x141)))))≥NonInfC∧1006_1_MAIN_INVOKEMETHOD(List(x0[6]), java.lang.Object(List(x131)), x2[5], java.lang.Object(List(java.lang.Object(List(x141)))))≥1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x131))), java.lang.Object(List(java.lang.Object(List(x141)))), x2[5], x0[6], java.lang.Object(List(x131)))∧(UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥))



    We simplified constraint (225) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (231)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (229) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (232)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (230) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (233)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (226) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (234)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (232) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (235)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (231) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (236)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (233) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (237)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (234) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (238)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (235) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (239)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (236) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (240)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (237) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (241)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (238) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (242)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (239) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (243)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (240) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (244)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (241) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (245)    ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)







For Pair COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) the following chains were created:
  • We consider the chain 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]), 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6]) which results in the following constraint:

    (246)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]340_0_length_ConstantStackPush(x0[5])=List(x0[6])∧x1[5]=x2[6]x2[5]=x3[6]x0[5]=x1[6]COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥NonInfC∧COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5])≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (246) using rules (III), (IV), (REWRITING) which results in the following new constraint:

    (247)    (>(x3[4], 0)=TRUE798_0_length_NULL(0, x0[5])=List(x0[6]) ⇒ COND_912_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥NonInfC∧COND_912_0_MAIN_NE(TRUE, x0[5], x1[4], x2[4], x3[4])≥1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[4], x2[4], x0[5])∧(UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥))



    We simplified constraint (247) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (248)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] + [bni_120]x2[4] + [bni_120]x1[4] + [bni_120]x0[5] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (248) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (249)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] + [bni_120]x2[4] + [bni_120]x1[4] + [bni_120]x0[5] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (249) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (250)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧[(-1)bni_120 + (-1)Bound*bni_120] + [bni_120]x2[4] + [bni_120]x1[4] + [bni_120]x0[5] ≥ 0∧[(-1)bso_121] ≥ 0)



    We simplified constraint (250) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (251)    (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧[bni_120] ≥ 0∧[bni_120] ≥ 0∧[bni_120] ≥ 0∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)







For Pair 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) the following chains were created:
  • We consider the chain 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]), COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5]) which results in the following constraint:

    (252)    (>(x3[4], 0)=TRUEx0[4]=x0[5]x1[4]=x1[5]x2[4]=x2[5]x3[4]=x3[5]912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (252) using rule (IV) which results in the following new constraint:

    (253)    (>(x3[4], 0)=TRUE912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥NonInfC∧912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4])≥COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])∧(UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥))



    We simplified constraint (253) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (254)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[4] + [bni_122]x1[4] + [bni_122]x0[4] ≥ 0∧[(-1)bso_123] ≥ 0)



    We simplified constraint (254) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (255)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[4] + [bni_122]x1[4] + [bni_122]x0[4] ≥ 0∧[(-1)bso_123] ≥ 0)



    We simplified constraint (255) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (256)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧[(-1)bni_122 + (-1)Bound*bni_122] + [bni_122]x2[4] + [bni_122]x1[4] + [bni_122]x0[4] ≥ 0∧[(-1)bso_123] ≥ 0)



    We simplified constraint (256) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (257)    (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_122] ≥ 0∧[bni_122] ≥ 0∧[bni_122] ≥ 0∧[(-1)bni_122 + (-1)Bound*bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_123] ≥ 0)







For Pair 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) the following chains were created:
  • We consider the chain 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]), 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4]) which results in the following constraint:

    (258)    (340_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]x1[3]=x0[4]x2[3]=x1[4]x3[3]=x2[4]fresh2[3]=x3[4]882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3])≥912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (258) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (259)    (0=x145798_0_length_NULL(x145, x3[2])=List(x0[3]) ⇒ 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], x3[2])≥912_0_MAIN_NE(x1[2], x2[2], x3[2], fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (259) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x145, x3[2])=List(x0[3]) which results in the following new constraints:

    (260)    (List(x146)=List(x0[3])∧0=x146882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], NULL)≥912_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))


    (261)    (Cond_798_0_length_NULL(>(x148, -1), x148, java.lang.Object(List(x147)))=List(x0[3])∧0=x148882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x147)))≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x147)))≥912_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x147)), fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (260) using rules (I), (II), (III) which results in the following new constraint:

    (262)    (882_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(0), x1[2], x2[2], NULL)≥912_0_MAIN_NE(x1[2], x2[2], NULL, fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (261) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (263)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x147)))=List(x0[3]) ⇒ 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x147)))≥NonInfC∧882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[2], x2[2], java.lang.Object(List(x147)))≥912_0_MAIN_NE(x1[2], x2[2], java.lang.Object(List(x147)), fresh2[3])∧(UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥))



    We simplified constraint (262) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (264)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_124] = 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (263) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (265)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (264) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (266)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_124] = 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (265) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (267)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (266) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (268)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_124] = 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (267) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (269)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (268) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (270)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_124] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)



    We simplified constraint (269) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (271)    ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)







For Pair 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) the following chains were created:
  • We consider the chain COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]), 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3]) which results in the following constraint:

    (272)    (340_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]340_0_length_ConstantStackPush(x3[2])=List(x0[3])∧x1[2]=x1[3]x2[2]=x2[3]x3[2]=x3[3]824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2])≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (272) using rules (III), (IV), (VII), (REWRITING) which results in the following new constraint:

    (273)    (0=x151798_0_length_NULL(x151, x3[1])=List(x0[2])∧0=x152798_0_length_NULL(x152, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], x3[1])≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], x3[1], x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (273) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x151, x3[1])=List(x0[2]) which results in the following new constraints:

    (274)    (List(x153)=List(x0[2])∧0=x1530=x152798_0_length_NULL(x152, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (275)    (Cond_798_0_length_NULL(>(x155, -1), x155, java.lang.Object(List(x154)))=List(x0[2])∧0=x1550=x152798_0_length_NULL(x152, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x154)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x154)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x154)), x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (274) using rules (I), (II), (III) which results in the following new constraint:

    (276)    (0=x152798_0_length_NULL(x152, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], x3[2], NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], NULL, x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (275) using rule (VII) which results in the following new constraint:

    (277)    (>(x155, -1)=x161java.lang.Object(List(x154))=x162Cond_798_0_length_NULL(x161, x155, x162)=List(x0[2])∧0=x1550=x152798_0_length_NULL(x152, x3[2])=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x154)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], x3[2], java.lang.Object(List(x154)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x2[1], java.lang.Object(List(x154)), x3[2])∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (276) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x152, x3[2])=List(x0[3]) which results in the following new constraints:

    (278)    (List(x156)=List(x0[3])∧0=x156824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (279)    (Cond_798_0_length_NULL(>(x158, -1), x158, java.lang.Object(List(x157)))=List(x0[3])∧0=x158824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x157)), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x157)), NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x157))), x2[1], NULL, java.lang.Object(List(x157)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (278) using rules (I), (II), (IV) which results in the following new constraint:

    (280)    (824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], NULL, NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], NULL, NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (279) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (281)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x157)))=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x157)), NULL)≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(0), x2[1], java.lang.Object(List(x157)), NULL)≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x157))), x2[1], NULL, java.lang.Object(List(x157)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (280) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (282)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (277) using rule (V) (with possible (I) afterwards) using induction on 798_0_length_NULL(x152, x3[2])=List(x0[3]) which results in the following new constraints:

    (283)    (List(x163)=List(x0[3])∧>(x155, -1)=x161java.lang.Object(List(x154))=x162Cond_798_0_length_NULL(x161, x155, x162)=List(x0[2])∧0=x1550=x163824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x154)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x154)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x154)), NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))


    (284)    (Cond_798_0_length_NULL(>(x165, -1), x165, java.lang.Object(List(x164)))=List(x0[3])∧>(x155, -1)=x161java.lang.Object(List(x154))=x162Cond_798_0_length_NULL(x161, x155, x162)=List(x0[2])∧0=x1550=x165824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x164)), java.lang.Object(List(x154)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x164)), java.lang.Object(List(x154)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x164))), x2[1], java.lang.Object(List(x154)), java.lang.Object(List(x164)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (283) using rules (I), (II), (III), (IV), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (285)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x154)))=List(x0[2]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x154)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], NULL, java.lang.Object(List(x154)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(NULL), x2[1], java.lang.Object(List(x154)), NULL)∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (284) using rules (III), (VII), (IDP_CONSTANT_FOLD) which results in the following new constraint:

    (286)    (Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x154)))=List(x0[2])∧Cond_798_0_length_NULL(TRUE, 0, java.lang.Object(List(x164)))=List(x0[3]) ⇒ 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x164)), java.lang.Object(List(x154)))≥NonInfC∧824_1_MAIN_INVOKEMETHOD(List(x0[2]), x2[1], java.lang.Object(List(x164)), java.lang.Object(List(x154)))≥882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(java.lang.Object(List(x164))), x2[1], java.lang.Object(List(x154)), java.lang.Object(List(x164)))∧(UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥))



    We simplified constraint (281) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (287)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (285) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (288)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (286) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (289)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (282) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (290)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (288) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (291)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (287) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (292)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (289) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (293)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (290) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (294)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_126] = 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (291) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (295)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (292) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (296)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (293) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (297)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (294) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (298)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_126] = 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (295) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (299)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (296) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (300)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)



    We simplified constraint (297) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (301)    ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)







For Pair COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) the following chains were created:
  • We consider the chain 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]), 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2]) which results in the following constraint:

    (302)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]340_0_length_ConstantStackPush(x3[1])=List(x0[2])∧x2[1]=x1[2]x1[1]=x3[2]x3[1]=x2[2]COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥NonInfC∧COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1])≥824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])∧(UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (302) using rules (I), (II), (III), (IV), (REWRITING) which results in the following new constraint:

    (303)    (>(x0[0], 0)=TRUE798_0_length_NULL(0, x3[1])=List(x0[2]) ⇒ COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥NonInfC∧COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[0]), x2[0], x3[1], x1[0])≥824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[0], x1[0], x3[1])∧(UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥))



    We simplified constraint (303) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (304)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_128 + (-1)Bound*bni_128] + [bni_128]x1[0] + [bni_128]x3[1] + [bni_128]x2[0] ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (304) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (305)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_128 + (-1)Bound*bni_128] + [bni_128]x1[0] + [bni_128]x3[1] + [bni_128]x2[0] ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (305) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (306)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[(-1)bni_128 + (-1)Bound*bni_128] + [bni_128]x1[0] + [bni_128]x3[1] + [bni_128]x2[0] ≥ 0∧[(-1)bso_129] ≥ 0)



    We simplified constraint (306) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (307)    (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_128] ≥ 0∧[bni_128] ≥ 0∧[bni_128] ≥ 0∧0 ≥ 0∧[(-1)bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)







For Pair 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]) the following chains were created:
  • We consider the chain 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0]), COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1]) which results in the following constraint:

    (308)    (>(x0[0], 0)=TRUEList(x0[0])=List(x0[1])∧x2[0]=x2[1]x3[0]=x3[1]x1[0]=x1[1]340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (308) using rules (I), (II), (IV) which results in the following new constraint:

    (309)    (>(x0[0], 0)=TRUE340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥NonInfC∧340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0])≥COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])∧(UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥))



    We simplified constraint (309) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (310)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x1[0] + [bni_130]x3[0] + [bni_130]x2[0] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (310) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (311)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x1[0] + [bni_130]x3[0] + [bni_130]x2[0] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (311) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (312)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[(-1)bni_130 + (-1)Bound*bni_130] + [bni_130]x1[0] + [bni_130]x3[0] + [bni_130]x2[0] ≥ 0∧[(-1)bso_131] ≥ 0)



    We simplified constraint (312) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (313)    (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_130] ≥ 0∧[bni_130] ≥ 0∧[bni_130] ≥ 0∧0 ≥ 0∧[(-1)bni_130 + (-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
    • (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[bni_100] ≥ 0∧0 ≥ 0∧[bni_100] ≥ 0∧0 ≥ 0∧[bni_100 + (-1)Bound*bni_100] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)
    • ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧x4 + x3 + [4]x0 ≥ 0∧[-1] + [3]x0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])), ≥)∧[bni_100] ≥ 0∧[bni_100] ≥ 0∧[(9)bni_100 + (-1)Bound*bni_100] + [(16)bni_100]x0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[6 + (-1)bso_101] + [12]x0 ≥ 0)

  • 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])), ≥)∧[bni_102] ≥ 0∧0 ≥ 0∧[bni_102] ≥ 0∧[(4)bni_102] ≥ 0∧0 ≥ 0∧[bni_102 + (-1)Bound*bni_102] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)

  • 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
    • ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[bni_104] = 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)
    • ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧[4]x2[13] + x13 + x9 ≥ 0∧[-1] + [3]x2[13] ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] + [3]x2[13] ≥ 0)
    • ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[6 + (-1)bso_105] ≥ 0∧[1] ≥ 0)

  • 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧[bni_106] = 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)
    • ((UIncreasing(340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[2 + (-1)bso_107] ≥ 0)

  • COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
    • (0 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108] ≥ 0∧0 ≥ 0∧[(4)bni_108] ≥ 0∧0 ≥ 0∧[bni_108 + (-1)Bound*bni_108] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0∧[1] ≥ 0)
    • ((UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧x67 + [4]x66 + x63 ≥ 0∧[-1] + [3]x66 ≥ 0 ⇒ (UIncreasing(1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])), ≥)∧[bni_108] ≥ 0∧[(4)bni_108] ≥ 0∧[(3)bni_108 + (-1)Bound*bni_108] + [(4)bni_108]x63 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0∧[1] ≥ 0)

  • 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])), ≥)∧[bni_110] ≥ 0∧0 ≥ 0∧[(4)bni_110] ≥ 0∧[bni_110] ≥ 0∧0 ≥ 0∧[bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)

  • 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧[bni_112] = 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)
    • ((UIncreasing(1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)

  • COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
    • (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114] ≥ 0∧0 ≥ 0∧[bni_114] ≥ 0∧0 ≥ 0∧[(-1)bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])), ≥)∧[bni_114] ≥ 0∧0 ≥ 0∧[bni_114] ≥ 0∧[(4)bni_114] ≥ 0∧0 ≥ 0∧[bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

  • 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])), ≥)∧[bni_116] ≥ 0∧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∧0 ≥ 0∧[(-1)bso_117] ≥ 0)

  • 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧[bni_118] = 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)
    • ((UIncreasing(1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)

  • COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
    • (0 ≥ 0 ⇒ (UIncreasing(1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])), ≥)∧0 ≥ 0∧[bni_120] ≥ 0∧[bni_120] ≥ 0∧[bni_120] ≥ 0∧[(-1)bni_120 + (-1)Bound*bni_120] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_121] ≥ 0)

  • 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])), ≥)∧0 ≥ 0∧[bni_122] ≥ 0∧[bni_122] ≥ 0∧[bni_122] ≥ 0∧[(-1)bni_122 + (-1)Bound*bni_122] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_123] ≥ 0)

  • 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
    • ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧[bni_124] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)
    • ((UIncreasing(912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_125] ≥ 0)

  • 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧[bni_126] = 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)
    • ((UIncreasing(882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_127] ≥ 0)

  • COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
    • (0 ≥ 0 ⇒ (UIncreasing(824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])), ≥)∧[bni_128] ≥ 0∧[bni_128] ≥ 0∧[bni_128] ≥ 0∧0 ≥ 0∧[(-1)bni_128 + (-1)Bound*bni_128] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_129] ≥ 0)

  • 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])), ≥)∧[bni_130] ≥ 0∧[bni_130] ≥ 0∧[bni_130] ≥ 0∧0 ≥ 0∧[(-1)bni_130 + (-1)Bound*bni_130] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_131] ≥ 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(1270_0_test_Load(x1)) = 0   
POL(1518_0_test_NULL(x1)) = 0   
POL(340_0_length_ConstantStackPush(x1)) = 0   
POL(798_0_length_NULL(x1, x2)) = [3] + [2]x2 + [3]x1   
POL(0) = 0   
POL(NULL) = 0   
POL(List(x1)) = [2]x1   
POL(java.lang.Object(x1)) = [2] + [2]x1   
POL(Cond_798_0_length_NULL(x1, x2, x3)) = [3]x3 + [3]x1   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(1523_0_test_Return) = 0   
POL(COND_1040_1_MAIN_INVOKEMETHOD1(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + x3   
POL(1270_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [1] + x4 + x3 + x2 + [-1]x1   
POL(1040_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x3 + x2   
POL(1107_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x3 + x2   
POL(340_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2   
POL(COND_1107_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + x3 + [-1]x1   
POL(!(x1)) = 0   
POL(=(x1, x2)) = 0   
POL(1080_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2   
POL(COND_1040_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x4 + x3   
POL(<=(x1, x2)) = 0   
POL(1006_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2   
POL(COND_912_0_MAIN_NE(x1, x2, x3, x4, x5)) = [-1] + x4 + x3 + x2   
POL(912_0_MAIN_NE(x1, x2, x3, x4)) = [-1] + x3 + x2 + x1   
POL(882_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2   
POL(824_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4)) = [-1] + x4 + x3 + x2   
POL(COND_340_1_MAIN_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x5 + x4 + x3   

The following pairs are in P>:

1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])

The following pairs are in Pbound:

COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])

The following pairs are in P:

COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(>(x4[14], x0[14]), List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(=(x4[10], x0[10])), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(<=(x4[7], x0[7]), List(x0[7]), x1[7], x3[7], x4[7], x2[7])
1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(>(x3[4], 0), x0[4], x1[4], x2[4], x3[4])
882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(>(x0[0], 0), List(x0[0]), x2[0], x3[0], x1[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

1270_0_test_Load(x0)11518_0_test_NULL(x0)1
1518_0_test_NULL(NULL)11523_0_test_Return1
1518_0_test_NULL(java.lang.Object(List(x0)))11518_0_test_NULL(x0)1
798_0_length_NULL(x0, NULL)1List(x0)1
FALSE1!(TRUE)1
TRUE1!(FALSE)1

(44) Complex Obligation (AND)

(45) 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:
1270_0_test_Load(x0) → 1518_0_test_NULL(x0)
340_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
798_0_length_NULL(x0, NULL) → List(x0)
798_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_798_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 798_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1523_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(15): COND_1040_1_MAIN_INVOKEMETHOD1(TRUE, List(x0[15]), java.lang.Object(List(x1[15])), x3[15], x4[15], x2[15]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[15]), x1[15], x2[15], x3[15])
(14): 1040_1_MAIN_INVOKEMETHOD(List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14]) → COND_1040_1_MAIN_INVOKEMETHOD1(x4[14] > x0[14], List(x0[14]), java.lang.Object(List(x1[14])), x3[14], x4[14], x2[14])
(13): 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(11): COND_1107_1_MAIN_INVOKEMETHOD(TRUE, List(x0[11]), x1[11], java.lang.Object(List(x3[11])), x4[11], x2[11]) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[11]), x1[11], x2[11], x3[11])
(10): 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(9): 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(8): COND_1040_1_MAIN_INVOKEMETHOD(TRUE, List(x0[8]), x1[8], x3[8], x4[8], x2[8]) → 1080_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x1[8]), x2[8], x3[8], x1[8])
(7): 1040_1_MAIN_INVOKEMETHOD(List(x0[7]), x1[7], x3[7], x4[7], x2[7]) → COND_1040_1_MAIN_INVOKEMETHOD(x4[7] <= x0[7], List(x0[7]), x1[7], x3[7], x4[7], x2[7])
(6): 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(5): COND_912_0_MAIN_NE(TRUE, x0[5], x1[5], x2[5], x3[5]) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[5]), x1[5], x2[5], x0[5])
(4): 912_0_MAIN_NE(x0[4], x1[4], x2[4], x3[4]) → COND_912_0_MAIN_NE(x3[4] > 0, x0[4], x1[4], x2[4], x3[4])
(3): 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(1): COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(0): 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])

(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (340_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (340_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(3) -> (4), if (x1[3]* x0[4]x2[3]* x1[4]x3[3]* x2[4]fresh2[3]* x3[4])


(4) -> (5), if (x3[4] > 0x0[4]* x0[5]x1[4]* x1[5]x2[4]* x2[5]x3[4]* x3[5])


(5) -> (6), if (340_0_length_ConstantStackPush(x0[5]) →* List(x0[6])∧x1[5]* x2[6]x2[5]* x3[6]x0[5]* x1[6])


(6) -> (7), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[7])∧x1[6]* x1[7]x3[6]* x3[7]x0[6]* x4[7]x2[6]* x2[7])


(7) -> (8), if (x4[7] <= x0[7]List(x0[7]) →* List(x0[8])∧x1[7]* x1[8]x3[7]* x3[8]x4[7]* x4[8]x2[7]* x2[8])


(8) -> (9), if (340_0_length_ConstantStackPush(x1[8]) →* List(x0[9])∧x2[8]* x2[9]x3[8]* x3[9]x1[8]* x1[9])


(9) -> (10), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


(10) -> (11), if (!(x4[10] = x0[10]) ∧List(x0[10]) →* List(x0[11])∧x1[10]* x1[11]java.lang.Object(List(x3[10])) →* java.lang.Object(List(x3[11]))∧x4[10]* x4[11]x2[10]* x2[11])


(9) -> (13), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(6) -> (14), if (340_0_length_ConstantStackPush(x2[6]) →* List(x0[14])∧x1[6]* java.lang.Object(List(x1[14]))∧x3[6]* x3[14]x0[6]* x4[14]x2[6]* x2[14])


(14) -> (15), if (x4[14] > x0[14]List(x0[14]) →* List(x0[15])∧java.lang.Object(List(x1[14])) →* java.lang.Object(List(x1[15]))∧x3[14]* x3[15]x4[14]* x4[15]x2[14]* x2[15])



The set Q consists of the following terms:
340_0_length_ConstantStackPush(x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL)
798_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_798_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1270_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(46) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 15 less nodes.

(47) TRUE

(48) 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


The ITRS R consists of the following rules:
1270_0_test_Load(x0) → 1518_0_test_NULL(x0)
340_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
798_0_length_NULL(x0, NULL) → List(x0)
798_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_798_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 798_0_length_NULL(x1 + 1, x0)
1518_0_test_NULL(NULL) → 1523_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(13): 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(12): 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(9): 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(6): 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(3): 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(2): 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])

(2) -> (3), if (340_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(13) -> (12), if (1270_0_test_Load(x1[13]) →* 1523_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(9) -> (13), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))



The set Q consists of the following terms:
340_0_length_ConstantStackPush(x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL)
798_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_798_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1270_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(49) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 6 less nodes.

(50) TRUE

(51) 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


The ITRS R consists of the following rules:
340_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 798_0_length_NULL(0, java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL) → List(x0)
798_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_798_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 798_0_length_NULL(x1 + 1, x0)
1270_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1523_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(0): 340_1_MAIN_INVOKEMETHOD(List(x0[0]), x2[0], x3[0], x1[0]) → COND_340_1_MAIN_INVOKEMETHOD(x0[0] > 0, List(x0[0]), x2[0], x3[0], x1[0])
(1): COND_340_1_MAIN_INVOKEMETHOD(TRUE, List(x0[1]), x2[1], x3[1], x1[1]) → 824_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[1]), x2[1], x1[1], x3[1])
(2): 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(3): 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(6): 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(9): 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(12): 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(13): 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(17): 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))
(18): 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])

(12) -> (0), if (340_0_length_ConstantStackPush(x0[12]) →* List(x0[0])∧x1[12]* x2[0]x2[12]* x3[0]x0[12]* x1[0])


(0) -> (1), if (x0[0] > 0List(x0[0]) →* List(x0[1])∧x2[0]* x2[1]x3[0]* x3[1]x1[0]* x1[1])


(1) -> (2), if (340_0_length_ConstantStackPush(x3[1]) →* List(x0[2])∧x2[1]* x1[2]x1[1]* x3[2]x3[1]* x2[2])


(2) -> (3), if (340_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(13) -> (12), if (1270_0_test_Load(x1[13]) →* 1523_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(9) -> (13), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(1) -> (17), if (340_0_length_ConstantStackPush(x3[1]) →* List(x0[17])∧x2[1]* x1[17]x1[1]* java.lang.Object(List(x3[17]))∧x3[1]* x2[17])


(17) -> (18), if (926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))) →* List(x0[18])∧x1[17]* x1[18]x2[17]* x2[18]java.lang.Object(List(x3[17])) →* java.lang.Object(List(x3[18])))



The set Q consists of the following terms:
340_0_length_ConstantStackPush(x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL)
798_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_798_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1270_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(52) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 10 less nodes.

(53) TRUE

(54) 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:
340_0_length_ConstantStackPush(x0) → 798_0_length_NULL(0, x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0))) → 798_0_length_NULL(0, java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL) → List(x0)
798_0_length_NULL(x1, java.lang.Object(List(x0))) → Cond_798_0_length_NULL(x1 > -1, x1, java.lang.Object(List(x0)))
Cond_798_0_length_NULL(TRUE, x1, java.lang.Object(List(x0))) → 798_0_length_NULL(x1 + 1, x0)
1270_0_test_Load(x0) → 1518_0_test_NULL(x0)
1518_0_test_NULL(NULL) → 1523_0_test_Return
1518_0_test_NULL(java.lang.Object(List(x0))) → 1518_0_test_NULL(x0)

The integer pair graph contains the following rules and edges:
(2): 824_1_MAIN_INVOKEMETHOD(List(x0[2]), x1[2], x3[2], x2[2]) → 882_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x3[2]), x1[2], x2[2], x3[2])
(3): 882_1_MAIN_INVOKEMETHOD(List(x0[3]), x1[3], x2[3], x3[3]) → 912_0_MAIN_NE(x1[3], x2[3], x3[3], fresh2[3])
(6): 1006_1_MAIN_INVOKEMETHOD(List(x0[6]), x2[6], x3[6], x1[6]) → 1040_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[6]), x1[6], x3[6], x0[6], x2[6])
(9): 1080_1_MAIN_INVOKEMETHOD(List(x0[9]), x2[9], x3[9], x1[9]) → 1107_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x2[9]), x1[9], x3[9], x0[9], x2[9])
(10): 1107_1_MAIN_INVOKEMETHOD(List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10]) → COND_1107_1_MAIN_INVOKEMETHOD(!(x4[10] = x0[10]), List(x0[10]), x1[10], java.lang.Object(List(x3[10])), x4[10], x2[10])
(12): 1270_1_MAIN_INVOKEMETHOD(1523_0_test_Return, x0[12], x1[12], x2[12]) → 340_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[12]), x1[12], x2[12], x0[12])
(13): 1107_1_MAIN_INVOKEMETHOD(List(x0[13]), x1[13], x3[13], x0[13], java.lang.Object(List(x2[13]))) → 1270_1_MAIN_INVOKEMETHOD(1270_0_test_Load(x1[13]), x1[13], x2[13], x3[13])
(16): 912_0_MAIN_NE(x0[16], x1[16], java.lang.Object(List(x2[16])), 0) → 1006_1_MAIN_INVOKEMETHOD(340_0_length_ConstantStackPush(x0[16]), x1[16], x2[16], x0[16])
(17): 824_1_MAIN_INVOKEMETHOD(List(x0[17]), x1[17], java.lang.Object(List(x3[17])), x2[17]) → 926_1_MAIN_INVOKEMETHOD(926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))), x1[17], x2[17], java.lang.Object(List(x3[17])))
(18): 926_1_MAIN_INVOKEMETHOD(List(x0[18]), x1[18], x2[18], java.lang.Object(List(x3[18]))) → 912_0_MAIN_NE(x1[18], x2[18], java.lang.Object(List(x3[18])), fresh2[18])

(2) -> (3), if (340_0_length_ConstantStackPush(x3[2]) →* List(x0[3])∧x1[2]* x1[3]x2[2]* x2[3]x3[2]* x3[3])


(16) -> (6), if (340_0_length_ConstantStackPush(x0[16]) →* List(x0[6])∧x1[16]* x2[6]x2[16]* x3[6]x0[16]* x1[6])


(9) -> (10), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[10])∧x1[9]* x1[10]x3[9]* java.lang.Object(List(x3[10]))∧x0[9]* x4[10]x2[9]* x2[10])


(13) -> (12), if (1270_0_test_Load(x1[13]) →* 1523_0_test_Returnx1[13]* x0[12]x2[13]* x1[12]x3[13]* x2[12])


(9) -> (13), if (340_0_length_ConstantStackPush(x2[9]) →* List(x0[13])∧x1[9]* x1[13]x3[9]* x3[13]x0[9]* x0[13]x2[9]* java.lang.Object(List(x2[13])))


(3) -> (16), if (x1[3]* x0[16]x2[3]* x1[16]x3[3]* java.lang.Object(List(x2[16]))∧fresh2[3]* 0)


(18) -> (16), if (x1[18]* x0[16]x2[18]* x1[16]java.lang.Object(List(x3[18])) →* java.lang.Object(List(x2[16]))∧fresh2[18]* 0)


(17) -> (18), if (926_0_length_ConstantStackPush(java.lang.Object(List(x3[17]))) →* List(x0[18])∧x1[17]* x1[18]x2[17]* x2[18]java.lang.Object(List(x3[17])) →* java.lang.Object(List(x3[18])))



The set Q consists of the following terms:
340_0_length_ConstantStackPush(x0)
926_0_length_ConstantStackPush(java.lang.Object(List(x0)))
798_0_length_NULL(x0, NULL)
798_0_length_NULL(x0, java.lang.Object(List(x1)))
Cond_798_0_length_NULL(TRUE, x0, java.lang.Object(List(x1)))
1270_0_test_Load(x0)
1518_0_test_NULL(NULL)
1518_0_test_NULL(java.lang.Object(List(x0)))

(55) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 10 less nodes.

(56) TRUE