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

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

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

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

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

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

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

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