### (0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_20 (Apple Inc.) Main-Class: Test8
`public class Test8 {    public static void main(String[] args) {	List[] ls = { List.mk(args.length), List.mk(args.length), List.mk(args.length) };	test(ls, ls.length - 1);    }    private static void test(List[] ls, int start) {	if (start >= 0) {	    int len = length(ls[start]);	    for (int i = 0; i < len; i++)		bubble(ls[start]);	    test(ls, start - 1);	}    }    private static void bubble(List l) {	if (l == null || l.getTail() == null)	    return;	if (l.head > l.getTail().head) {	    int temp = l.head;	    l.head = l.getTail().head;	    l.getTail().head = temp;	}	bubble(l.getTail());    }    private static int length(List list) {	if (list == null)	    return 0;	else	    return 1 + length(list.getTail());    }}public class List {    public int head;    private List tail;    public List(int 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(len, result);	return result;    }}`

### (1) JBCToGraph (SOUND transformation)

Constructed TerminationGraph.

### (2) Obligation:

Termination Graph based on JBC Program:
Test8.main([Ljava/lang/String;)V: Graph of 144 nodes with 3 SCCs.

Test8.test([LList;I)V: Graph of 84 nodes with 1 SCC.

Test8.length(LList;)I: Graph of 89 nodes with 0 SCCs.

Test8.bubble(LList;)V: Graph of 89 nodes with 0 SCCs.

### (3) TerminationGraphToSCCProof (SOUND transformation)

Splitted TerminationGraph to 6 SCCss.

### (5) Obligation:

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

### (6) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 82 rules for P and 11 rules for R.

P rules:
4266_0_bubble_NULL(EOS(STATIC_4266), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4267_0_bubble_NULL(EOS(STATIC_4267), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4267_0_bubble_NULL(EOS(STATIC_4267), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4270_0_bubble_Load(EOS(STATIC_4270), java.lang.Object(o6420sub))
4270_0_bubble_Load(EOS(STATIC_4270), java.lang.Object(o6420sub)) → 4272_0_bubble_InvokeMethod(EOS(STATIC_4272), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4272_0_bubble_InvokeMethod(EOS(STATIC_4272), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4275_0_getTail_Load(EOS(STATIC_4275), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4275_0_getTail_Load(EOS(STATIC_4275), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4286_0_getTail_FieldAccess(EOS(STATIC_4286), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4286_0_getTail_FieldAccess(EOS(STATIC_4286), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4291_0_getTail_FieldAccess(EOS(STATIC_4291), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4286_0_getTail_FieldAccess(EOS(STATIC_4286), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4292_0_getTail_FieldAccess(EOS(STATIC_4292), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4291_0_getTail_FieldAccess(EOS(STATIC_4291), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4295_0_getTail_FieldAccess(EOS(STATIC_4295), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4291_0_getTail_FieldAccess(EOS(STATIC_4291), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4296_0_getTail_FieldAccess(EOS(STATIC_4296), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4295_0_getTail_FieldAccess(EOS(STATIC_4295), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4307_0_getTail_FieldAccess(EOS(STATIC_4307), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4295_0_getTail_FieldAccess(EOS(STATIC_4295), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4308_0_getTail_FieldAccess(EOS(STATIC_4308), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4307_0_getTail_FieldAccess(EOS(STATIC_4307), java.lang.Object(List(o6469sub, o6470, i2060)), java.lang.Object(List(o6469sub, o6470, i2060)), java.lang.Object(List(o6469sub, o6470, i2060))) → 4313_0_getTail_FieldAccess(EOS(STATIC_4313), java.lang.Object(List(o6469sub, o6470, i2060)), java.lang.Object(List(o6469sub, o6470, i2060)), java.lang.Object(List(o6469sub, o6470, i2060)))
4313_0_getTail_FieldAccess(EOS(STATIC_4313), java.lang.Object(List(o6469sub, o6470, i2060)), java.lang.Object(List(o6469sub, o6470, i2060)), java.lang.Object(List(o6469sub, o6470, i2060))) → 4324_0_getTail_Return(EOS(STATIC_4324), java.lang.Object(List(o6469sub, o6470, i2060)), java.lang.Object(List(o6469sub, o6470, i2060)), o6470)
4324_0_getTail_Return(EOS(STATIC_4324), java.lang.Object(List(o6469sub, o6470, i2060)), java.lang.Object(List(o6469sub, o6470, i2060)), o6470) → 4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(o6469sub, o6470, i2060)), o6470)
4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), java.lang.Object(o6520sub)) → 4339_0_bubble_NONNULL(EOS(STATIC_4339), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), java.lang.Object(o6520sub))
4339_0_bubble_NONNULL(EOS(STATIC_4339), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), java.lang.Object(o6520sub)) → 4344_0_bubble_Load(EOS(STATIC_4344), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)))
4344_0_bubble_Load(EOS(STATIC_4344), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060))) → 4349_0_bubble_FieldAccess(EOS(STATIC_4349), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)))
4349_0_bubble_FieldAccess(EOS(STATIC_4349), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060))) → 4354_0_bubble_Load(EOS(STATIC_4354), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060)
4354_0_bubble_Load(EOS(STATIC_4354), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060) → 4358_0_bubble_InvokeMethod(EOS(STATIC_4358), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)))
4358_0_bubble_InvokeMethod(EOS(STATIC_4358), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060))) → 4362_0_getTail_Load(EOS(STATIC_4362), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)))
4362_0_getTail_Load(EOS(STATIC_4362), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060))) → 4367_0_getTail_FieldAccess(EOS(STATIC_4367), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)))
4367_0_getTail_FieldAccess(EOS(STATIC_4367), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060))) → 4373_0_getTail_Return(EOS(STATIC_4373), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), java.lang.Object(o6520sub))
4373_0_getTail_Return(EOS(STATIC_4373), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), java.lang.Object(o6520sub)) → 4378_0_bubble_FieldAccess(EOS(STATIC_4378), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub))
4378_0_bubble_FieldAccess(EOS(STATIC_4378), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub)) → 4383_0_bubble_FieldAccess(EOS(STATIC_4383), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub))
4378_0_bubble_FieldAccess(EOS(STATIC_4378), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub)) → 4384_0_bubble_FieldAccess(EOS(STATIC_4384), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub))
4383_0_bubble_FieldAccess(EOS(STATIC_4383), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub)) → 4392_0_bubble_FieldAccess(EOS(STATIC_4392), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub))
4383_0_bubble_FieldAccess(EOS(STATIC_4383), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub)) → 4393_0_bubble_FieldAccess(EOS(STATIC_4393), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub))
4392_0_bubble_FieldAccess(EOS(STATIC_4392), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub)) → 4406_0_bubble_FieldAccess(EOS(STATIC_4406), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub))
4392_0_bubble_FieldAccess(EOS(STATIC_4392), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub)) → 4407_0_bubble_FieldAccess(EOS(STATIC_4407), java.lang.Object(List(o6469sub, java.lang.Object(o6520sub), i2060)), i2060, java.lang.Object(o6520sub))
4406_0_bubble_FieldAccess(EOS(STATIC_4406), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(EOC, o6597, i2075))) → 4420_0_bubble_FieldAccess(EOS(STATIC_4420), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(EOC, o6597, i2075)))
4420_0_bubble_FieldAccess(EOS(STATIC_4420), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(EOC, o6597, i2075))) → 4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, i2075)
4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, i2075) → 4445_0_bubble_LE(EOS(STATIC_4445), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, i2075)
4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, i2075) → 4446_0_bubble_LE(EOS(STATIC_4446), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, i2075)
4445_0_bubble_LE(EOS(STATIC_4445), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, i2075) → 4448_0_bubble_Load(EOS(STATIC_4448), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060))) | <=(i2060, i2075)
4448_0_bubble_Load(EOS(STATIC_4448), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060))) → 4534_0_bubble_Load(EOS(STATIC_4534), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)))
4534_0_bubble_Load(EOS(STATIC_4534), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075))) → 4537_0_bubble_InvokeMethod(EOS(STATIC_4537), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075)))
4537_0_bubble_InvokeMethod(EOS(STATIC_4537), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075))) → 4541_0_getTail_Load(EOS(STATIC_4541), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075)))
4541_0_getTail_Load(EOS(STATIC_4541), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075))) → 4543_0_getTail_FieldAccess(EOS(STATIC_4543), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075)))
4543_0_getTail_FieldAccess(EOS(STATIC_4543), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075))) → 4545_0_getTail_Return(EOS(STATIC_4545), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075)), java.lang.Object(List(EOC, o6597, i2060)))
4545_0_getTail_Return(EOS(STATIC_4545), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075)), java.lang.Object(List(EOC, o6597, i2060))) → 4546_0_bubble_InvokeMethod(EOS(STATIC_4546), java.lang.Object(List(EOC, o6597, i2060)))
4546_0_bubble_InvokeMethod(EOS(STATIC_4546), java.lang.Object(List(EOC, o6597, i2060))) → 4548_1_bubble_InvokeMethod(4548_0_bubble_Load(EOS(STATIC_4548), java.lang.Object(List(EOC, o6597, i2060))), java.lang.Object(List(EOC, o6597, i2060)))
4265_0_bubble_Load(EOS(STATIC_4265), o6413) → 4266_0_bubble_NULL(EOS(STATIC_4266), o6413, o6413)
4446_0_bubble_LE(EOS(STATIC_4446), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, i2075) → 4450_0_bubble_Load(EOS(STATIC_4450), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060))) | >(i2060, i2075)
4450_0_bubble_Load(EOS(STATIC_4450), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060))) → 4457_0_bubble_FieldAccess(EOS(STATIC_4457), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)))
4457_0_bubble_FieldAccess(EOS(STATIC_4457), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060))) → 4459_0_bubble_Store(EOS(STATIC_4459), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060)
4459_0_bubble_Store(EOS(STATIC_4459), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060) → 4461_0_bubble_Load(EOS(STATIC_4461), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060)
4461_0_bubble_Load(EOS(STATIC_4461), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060) → 4463_0_bubble_Load(EOS(STATIC_4463), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)))
4463_0_bubble_Load(EOS(STATIC_4463), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060))) → 4467_0_bubble_InvokeMethod(EOS(STATIC_4467), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)))
4467_0_bubble_InvokeMethod(EOS(STATIC_4467), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060))) → 4469_0_getTail_Load(EOS(STATIC_4469), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)))
4469_0_getTail_Load(EOS(STATIC_4469), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060))) → 4474_0_getTail_FieldAccess(EOS(STATIC_4474), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)))
4474_0_getTail_FieldAccess(EOS(STATIC_4474), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060))) → 4476_0_getTail_Return(EOS(STATIC_4476), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(EOC, o6597, i2075)))
4476_0_getTail_Return(EOS(STATIC_4476), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(EOC, o6597, i2075))) → 4482_0_bubble_FieldAccess(EOS(STATIC_4482), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(EOC, o6597, i2075)))
4482_0_bubble_FieldAccess(EOS(STATIC_4482), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), java.lang.Object(List(EOC, o6597, i2075))) → 4486_0_bubble_FieldAccess(EOS(STATIC_4486), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2075)
4486_0_bubble_FieldAccess(EOS(STATIC_4486), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2060)), i2075) → 4489_0_bubble_Load(EOS(STATIC_4489), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060)
4489_0_bubble_Load(EOS(STATIC_4489), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060) → 4491_0_bubble_InvokeMethod(EOS(STATIC_4491), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)))
4491_0_bubble_InvokeMethod(EOS(STATIC_4491), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075))) → 4495_0_getTail_Load(EOS(STATIC_4495), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)))
4495_0_getTail_Load(EOS(STATIC_4495), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075))) → 4503_0_getTail_FieldAccess(EOS(STATIC_4503), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)))
4503_0_getTail_FieldAccess(EOS(STATIC_4503), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075))) → 4508_0_getTail_Return(EOS(STATIC_4508), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), java.lang.Object(List(EOC, o6597, i2075)))
4508_0_getTail_Return(EOS(STATIC_4508), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060, java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), java.lang.Object(List(EOC, o6597, i2075))) → 4515_0_bubble_Load(EOS(STATIC_4515), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060, java.lang.Object(List(EOC, o6597, i2075)))
4515_0_bubble_Load(EOS(STATIC_4515), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), i2060, java.lang.Object(List(EOC, o6597, i2075))) → 4525_0_bubble_FieldAccess(EOS(STATIC_4525), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), java.lang.Object(List(EOC, o6597, i2075)), i2060)
4525_0_bubble_FieldAccess(EOS(STATIC_4525), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2075)), i2075)), java.lang.Object(List(EOC, o6597, i2075)), i2060) → 4534_0_bubble_Load(EOS(STATIC_4534), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6597, i2060)), i2075)))
4407_0_bubble_FieldAccess(EOS(STATIC_4407), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6599, i2076)), i2060)), i2060, java.lang.Object(List(EOC, o6599, i2076))) → 4421_0_bubble_FieldAccess(EOS(STATIC_4421), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6599, i2076)), i2060)), i2060, java.lang.Object(List(EOC, o6599, i2076)))
4421_0_bubble_FieldAccess(EOS(STATIC_4421), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6599, i2076)), i2060)), i2060, java.lang.Object(List(EOC, o6599, i2076))) → 4438_0_bubble_LE(EOS(STATIC_4438), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6599, i2076)), i2060)), i2060, i2076)
4438_0_bubble_LE(EOS(STATIC_4438), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6599, i2076)), i2060)), i2060, i2076) → 4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6599, i2076)), i2060)), i2060, i2076)
4393_0_bubble_FieldAccess(EOS(STATIC_4393), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6576, i2073)), i2060)), i2060, java.lang.Object(List(EOC, o6576, i2073))) → 4408_0_bubble_FieldAccess(EOS(STATIC_4408), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6576, i2073)), i2060)), i2060, java.lang.Object(List(EOC, o6576, i2073)))
4408_0_bubble_FieldAccess(EOS(STATIC_4408), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6576, i2073)), i2060)), i2060, java.lang.Object(List(EOC, o6576, i2073))) → 4424_0_bubble_LE(EOS(STATIC_4424), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6576, i2073)), i2060)), i2060, i2073)
4424_0_bubble_LE(EOS(STATIC_4424), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6576, i2073)), i2060)), i2060, i2073) → 4410_0_bubble_LE(EOS(STATIC_4410), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6576, i2073)), i2060)), i2060, i2073)
4410_0_bubble_LE(EOS(STATIC_4410), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6562, i2070)), i2060)), i2060, i2070) → 4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6562, i2070)), i2060)), i2060, i2070)
4384_0_bubble_FieldAccess(EOS(STATIC_4384), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6562, i2070)), i2060)), i2060, java.lang.Object(List(EOC, o6562, i2070))) → 4394_0_bubble_FieldAccess(EOS(STATIC_4394), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6562, i2070)), i2060)), i2060, java.lang.Object(List(EOC, o6562, i2070)))
4394_0_bubble_FieldAccess(EOS(STATIC_4394), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6562, i2070)), i2060)), i2060, java.lang.Object(List(EOC, o6562, i2070))) → 4410_0_bubble_LE(EOS(STATIC_4410), java.lang.Object(List(o6469sub, java.lang.Object(List(EOC, o6562, i2070)), i2060)), i2060, i2070)
4308_0_getTail_FieldAccess(EOS(STATIC_4308), java.lang.Object(List(EOC, o6473, i2061)), java.lang.Object(List(EOC, o6473, i2061)), java.lang.Object(List(EOC, o6473, i2061))) → 4314_0_getTail_FieldAccess(EOS(STATIC_4314), java.lang.Object(List(EOC, o6473, i2061)), java.lang.Object(List(EOC, o6473, i2061)), java.lang.Object(List(EOC, o6473, i2061)))
4314_0_getTail_FieldAccess(EOS(STATIC_4314), java.lang.Object(List(EOC, o6473, i2061)), java.lang.Object(List(EOC, o6473, i2061)), java.lang.Object(List(EOC, o6473, i2061))) → 4326_0_getTail_Return(EOS(STATIC_4326), java.lang.Object(List(EOC, o6473, i2061)), java.lang.Object(List(EOC, o6473, i2061)), o6473)
4326_0_getTail_Return(EOS(STATIC_4326), java.lang.Object(List(EOC, o6473, i2061)), java.lang.Object(List(EOC, o6473, i2061)), o6473) → 4334_0_bubble_NONNULL(EOS(STATIC_4334), java.lang.Object(List(EOC, o6473, i2061)), o6473)
4334_0_bubble_NONNULL(EOS(STATIC_4334), java.lang.Object(List(EOC, o6473, i2061)), o6473) → 4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(EOC, o6473, i2061)), o6473)
4296_0_getTail_FieldAccess(EOS(STATIC_4296), java.lang.Object(List(EOC, o6464, i2059)), java.lang.Object(List(EOC, o6464, i2059)), java.lang.Object(List(EOC, o6464, i2059))) → 4309_0_getTail_FieldAccess(EOS(STATIC_4309), java.lang.Object(List(EOC, o6464, i2059)), java.lang.Object(List(EOC, o6464, i2059)), java.lang.Object(List(EOC, o6464, i2059)))
4309_0_getTail_FieldAccess(EOS(STATIC_4309), java.lang.Object(List(EOC, o6464, i2059)), java.lang.Object(List(EOC, o6464, i2059)), java.lang.Object(List(EOC, o6464, i2059))) → 4317_0_getTail_Return(EOS(STATIC_4317), java.lang.Object(List(EOC, o6464, i2059)), java.lang.Object(List(EOC, o6464, i2059)), o6464)
4317_0_getTail_Return(EOS(STATIC_4317), java.lang.Object(List(EOC, o6464, i2059)), java.lang.Object(List(EOC, o6464, i2059)), o6464) → 4324_0_getTail_Return(EOS(STATIC_4324), java.lang.Object(List(EOC, o6464, i2059)), java.lang.Object(List(EOC, o6464, i2059)), o6464)
4292_0_getTail_FieldAccess(EOS(STATIC_4292), java.lang.Object(List(EOC, o6444, i2056)), java.lang.Object(List(EOC, o6444, i2056)), java.lang.Object(List(EOC, o6444, i2056))) → 4297_0_getTail_FieldAccess(EOS(STATIC_4297), java.lang.Object(List(EOC, o6444, i2056)), java.lang.Object(List(EOC, o6444, i2056)), java.lang.Object(List(EOC, o6444, i2056)))
4297_0_getTail_FieldAccess(EOS(STATIC_4297), java.lang.Object(List(EOC, o6444, i2056)), java.lang.Object(List(EOC, o6444, i2056)), java.lang.Object(List(EOC, o6444, i2056))) → 4310_0_getTail_Return(EOS(STATIC_4310), java.lang.Object(List(EOC, o6444, i2056)), java.lang.Object(List(EOC, o6444, i2056)), o6444)
4310_0_getTail_Return(EOS(STATIC_4310), java.lang.Object(List(EOC, o6444, i2056)), java.lang.Object(List(EOC, o6444, i2056)), o6444) → 4317_0_getTail_Return(EOS(STATIC_4317), java.lang.Object(List(EOC, o6444, i2056)), java.lang.Object(List(EOC, o6444, i2056)), o6444)
R rules:
4266_0_bubble_NULL(EOS(STATIC_4266), NULL, NULL) → 4268_0_bubble_NULL(EOS(STATIC_4268), NULL, NULL)
4268_0_bubble_NULL(EOS(STATIC_4268), NULL, NULL) → 4271_0_bubble_Return(EOS(STATIC_4271), NULL)
4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(o6469sub, NULL, i2060)), NULL) → 4340_0_bubble_NONNULL(EOS(STATIC_4340), java.lang.Object(List(o6469sub, NULL, i2060)), NULL)
4340_0_bubble_NONNULL(EOS(STATIC_4340), java.lang.Object(List(o6469sub, NULL, i2060)), NULL) → 4345_0_bubble_Return(EOS(STATIC_4345), java.lang.Object(List(o6469sub, NULL, i2060)))
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(EOS(STATIC_4345), java.lang.Object(List(EOC, NULL, i2146))), java.lang.Object(List(EOC, NULL, i2146))) → 4555_0_bubble_Return(EOS(STATIC_4555), java.lang.Object(List(EOC, NULL, i2146)), java.lang.Object(List(EOC, NULL, i2146)))
4548_1_bubble_InvokeMethod(4556_0_bubble_Return(EOS(STATIC_4556)), java.lang.Object(List(EOC, o6597, i2060))) → 4564_0_bubble_Return(EOS(STATIC_4564), java.lang.Object(List(EOC, java.lang.Object(List(EOC, NULL, i2146)), i2147)))
4548_1_bubble_InvokeMethod(4577_0_bubble_Return(EOS(STATIC_4577)), java.lang.Object(List(EOC, o6597, i2060))) → 4587_0_bubble_Return(EOS(STATIC_4587), java.lang.Object(List(EOC, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o6915, i2155)), i2154)), i2162)))
4555_0_bubble_Return(EOS(STATIC_4555), java.lang.Object(List(EOC, NULL, i2146)), java.lang.Object(List(EOC, NULL, i2146))) → 4556_0_bubble_Return(EOS(STATIC_4556))
4564_0_bubble_Return(EOS(STATIC_4564), java.lang.Object(List(EOC, java.lang.Object(List(EOC, NULL, i2146)), i2147))) → 4575_0_bubble_Return(EOS(STATIC_4575), java.lang.Object(List(EOC, java.lang.Object(List(EOC, NULL, i2146)), i2147)))
4575_0_bubble_Return(EOS(STATIC_4575), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o6915, i2155)), i2154))) → 4577_0_bubble_Return(EOS(STATIC_4577))
4587_0_bubble_Return(EOS(STATIC_4587), java.lang.Object(List(EOC, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o6915, i2155)), i2154)), i2162))) → 4575_0_bubble_Return(EOS(STATIC_4575), java.lang.Object(List(EOC, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o6915, i2155)), i2154)), i2162)))

Combined rules. Obtained 4 conditional rules for P and 4 conditional rules for R.

P rules:
4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3)), x3, x2) → 4548_1_bubble_InvokeMethod(4266_0_bubble_NULL(EOS(STATIC_4266), java.lang.Object(List(EOC, x1, x2)), java.lang.Object(List(EOC, x1, x2))), java.lang.Object(List(EOC, x1, x2))) | <=(x3, x2)
4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3)), x3, x2) → 4548_1_bubble_InvokeMethod(4266_0_bubble_NULL(EOS(STATIC_4266), java.lang.Object(List(EOC, x1, x3)), java.lang.Object(List(EOC, x1, x3))), java.lang.Object(List(EOC, x1, x3))) | >(x3, x2)
4266_0_bubble_NULL(EOS(STATIC_4266), java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3)), java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3))) → 4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3)), x3, x2)
4266_0_bubble_NULL(EOS(STATIC_4266), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0, x1)), x2)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0, x1)), x2))) → 4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0, x1)), x2)), x2, x1)
R rules:
4266_0_bubble_NULL(EOS(STATIC_4266), NULL, NULL) → 4271_0_bubble_Return(EOS(STATIC_4271), NULL)
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(EOS(STATIC_4345), java.lang.Object(List(EOC, NULL, x0))), java.lang.Object(List(EOC, NULL, x0))) → 4556_0_bubble_Return(EOS(STATIC_4556))
4548_1_bubble_InvokeMethod(4556_0_bubble_Return(EOS(STATIC_4556)), java.lang.Object(List(EOC, x0, x1))) → 4577_0_bubble_Return(EOS(STATIC_4577))
4548_1_bubble_InvokeMethod(4577_0_bubble_Return(EOS(STATIC_4577)), java.lang.Object(List(EOC, x0, x1))) → 4577_0_bubble_Return(EOS(STATIC_4577))

Filtered ground terms:

4434_0_bubble_LE(x1, x2, x3, x4) → 4434_0_bubble_LE(x2, x3, x4)
4266_0_bubble_NULL(x1, x2, x3) → 4266_0_bubble_NULL(x2, x3)
Cond_4434_0_bubble_LE1(x1, x2, x3, x4, x5) → Cond_4434_0_bubble_LE1(x1, x3, x4, x5)
Cond_4434_0_bubble_LE(x1, x2, x3, x4, x5) → Cond_4434_0_bubble_LE(x1, x3, x4, x5)
4577_0_bubble_Return(x1) → 4577_0_bubble_Return
4556_0_bubble_Return(x1) → 4556_0_bubble_Return
4345_0_bubble_Return(x1, x2) → 4345_0_bubble_Return(x2)
4271_0_bubble_Return(x1, x2) → 4271_0_bubble_Return

Filtered duplicate args:

4434_0_bubble_LE(x1, x2, x3) → 4434_0_bubble_LE(x1)
Cond_4434_0_bubble_LE(x1, x2, x3, x4) → Cond_4434_0_bubble_LE(x1, x2)
4266_0_bubble_NULL(x1, x2) → 4266_0_bubble_NULL(x2)
Cond_4434_0_bubble_LE1(x1, x2, x3, x4) → Cond_4434_0_bubble_LE1(x1, x2)

Combined rules. Obtained 4 conditional rules for P and 4 conditional rules for R.

P rules:
4434_0_bubble_LE(java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3))) → 4548_1_bubble_InvokeMethod(4266_0_bubble_NULL(java.lang.Object(List(EOC, x1, x2))), java.lang.Object(List(EOC, x1, x2))) | <=(x3, x2)
4434_0_bubble_LE(java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3))) → 4548_1_bubble_InvokeMethod(4266_0_bubble_NULL(java.lang.Object(List(EOC, x1, x3))), java.lang.Object(List(EOC, x1, x3))) | >(x3, x2)
4266_0_bubble_NULL(java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3))) → 4434_0_bubble_LE(java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3)))
4266_0_bubble_NULL(java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0, x1)), x2))) → 4434_0_bubble_LE(java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0, x1)), x2)))
R rules:
4266_0_bubble_NULL(NULL) → 4271_0_bubble_Return
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(EOC, NULL, x0))), java.lang.Object(List(EOC, NULL, x0))) → 4556_0_bubble_Return
4548_1_bubble_InvokeMethod(4556_0_bubble_Return, java.lang.Object(List(EOC, x0, x1))) → 4577_0_bubble_Return
4548_1_bubble_InvokeMethod(4577_0_bubble_Return, java.lang.Object(List(EOC, x0, x1))) → 4577_0_bubble_Return

Performed bisimulation on rules. Used the following equivalence classes: {[4271_0_bubble_Return, EOC, 4556_0_bubble_Return, 4577_0_bubble_Return]=4271_0_bubble_Return}

Finished conversion. Obtained 6 rules for P and 3 rules for R. System has predefined symbols.

P rules:
4434_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → COND_4434_0_BUBBLE_LE(<=(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3)))
COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1, x2)))
4434_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → COND_4434_0_BUBBLE_LE1(>(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3)))
COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1, x3)))
4266_0_BUBBLE_NULL(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → 4434_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3)))
4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0, x1)), x2))) → 4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0, x1)), x2)))
R rules:
4266_0_bubble_NULL(NULL) → 4271_0_bubble_Return
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(4271_0_bubble_Return, NULL, x0))), java.lang.Object(List(4271_0_bubble_Return, NULL, x0))) → 4271_0_bubble_Return
4548_1_bubble_InvokeMethod(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0, x1))) → 4271_0_bubble_Return

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

Integer

The ITRS R consists of the following rules:
4266_0_bubble_NULL(NULL) → 4271_0_bubble_Return
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(4271_0_bubble_Return, NULL, x0))), java.lang.Object(List(4271_0_bubble_Return, NULL, x0))) → 4271_0_bubble_Return
4548_1_bubble_InvokeMethod(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0, x1))) → 4271_0_bubble_Return

The integer pair graph contains the following rules and edges:
(0): 4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4434_0_BUBBLE_LE(x3[0] <= x2[0], java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))
(1): COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))
(2): 4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4434_0_BUBBLE_LE1(x3[2] > x2[2], java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))
(3): COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))
(4): 4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))
(5): 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))

(0) -> (1), if (x3[0] <= x2[0]java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])) →* java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1])))

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

(1) -> (5), if (java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])) →* java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))

(2) -> (3), if (x3[2] > x2[2]java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])) →* java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3])))

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

(3) -> (5), if (java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])) →* java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))

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

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

(5) -> (0), if (java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])) →* java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))

(5) -> (2), if (java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])) →* java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))

The set Q consists of the following terms:
4266_0_bubble_NULL(NULL)
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(4271_0_bubble_Return, NULL, x0))), java.lang.Object(List(4271_0_bubble_Return, NULL, x0)))
4548_1_bubble_InvokeMethod(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0, x1)))

### (8) 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@3d1ace53 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 4434_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → COND_4434_0_BUBBLE_LE(<=(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) the following chains were created:
• We consider the chain 4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))), COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1]))) which results in the following constraint:

(1)    (<=(x3[0], x2[0])=TRUEjava.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))=java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1])) ⇒ 4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))≥NonInfC∧4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))≥COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))∧(UIncreasing(COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))), ≥))

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

(2)    (<=(x3[0], x2[0])=TRUE4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))≥NonInfC∧4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))≥COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))∧(UIncreasing(COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))), ≥))

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

(3)    (0 ≥ 0 ⇒ (UIncreasing(COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))), ≥)∧[(2)bni_26 + (-1)Bound*bni_26] + [(4)bni_26]x1[0] ≥ 0∧[(-1)bso_27] ≥ 0)

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

(4)    (0 ≥ 0 ⇒ (UIncreasing(COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))), ≥)∧[(2)bni_26 + (-1)Bound*bni_26] + [(4)bni_26]x1[0] ≥ 0∧[(-1)bso_27] ≥ 0)

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

(5)    (0 ≥ 0 ⇒ (UIncreasing(COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))), ≥)∧[(2)bni_26 + (-1)Bound*bni_26] + [(4)bni_26]x1[0] ≥ 0∧[(-1)bso_27] ≥ 0)

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

(6)    (0 ≥ 0 ⇒ (UIncreasing(COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_26] ≥ 0∧0 ≥ 0∧[(2)bni_26 + (-1)Bound*bni_26] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_27] ≥ 0)

For Pair COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1, x2))) the following chains were created:
• We consider the chain 4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))), COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1]))), 4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))) which results in the following constraint:

(7)    (<=(x3[0], x2[0])=TRUEjava.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))=java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1]))∧java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1]))=java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])) ⇒ COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1])))≥NonInfC∧COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1])))≥4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))∧(UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥))

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

(8)    (<=(x3[0], x2[0])=TRUECOND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x2[0])), x3[0])))≥NonInfC∧COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x2[0])), x3[0])))≥4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x2[0])))∧(UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥))

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

(9)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥)∧[(6)bni_28 + (-1)Bound*bni_28] + [(8)bni_28]x1[4] ≥ 0∧[4 + (-1)bso_29] + [4]x1[4] ≥ 0)

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

(10)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥)∧[(6)bni_28 + (-1)Bound*bni_28] + [(8)bni_28]x1[4] ≥ 0∧[4 + (-1)bso_29] + [4]x1[4] ≥ 0)

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

(11)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥)∧[(6)bni_28 + (-1)Bound*bni_28] + [(8)bni_28]x1[4] ≥ 0∧[4 + (-1)bso_29] + [4]x1[4] ≥ 0)

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

(12)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(8)bni_28] ≥ 0∧0 ≥ 0∧[(6)bni_28 + (-1)Bound*bni_28] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_29] ≥ 0∧[1] ≥ 0)

• We consider the chain 4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))), COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1]))), 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))) which results in the following constraint:

(13)    (<=(x3[0], x2[0])=TRUEjava.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))=java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1]))∧java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1]))=java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])) ⇒ COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1])))≥NonInfC∧COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1])))≥4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))∧(UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥))

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

(14)    (<=(x3[0], x2[0])=TRUECOND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[0])), x3[0])))≥NonInfC∧COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[0])), x3[0])))≥4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[0])))∧(UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥))

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

(15)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥)∧[(6)bni_28 + (-1)Bound*bni_28] + [(8)bni_28]x0[5] ≥ 0∧[4 + (-1)bso_29] + [4]x0[5] ≥ 0)

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

(16)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥)∧[(6)bni_28 + (-1)Bound*bni_28] + [(8)bni_28]x0[5] ≥ 0∧[4 + (-1)bso_29] + [4]x0[5] ≥ 0)

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

(17)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥)∧[(6)bni_28 + (-1)Bound*bni_28] + [(8)bni_28]x0[5] ≥ 0∧[4 + (-1)bso_29] + [4]x0[5] ≥ 0)

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

(18)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(8)bni_28] ≥ 0∧0 ≥ 0∧[(6)bni_28 + (-1)Bound*bni_28] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_29] ≥ 0∧[1] ≥ 0)

For Pair 4434_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → COND_4434_0_BUBBLE_LE1(>(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) the following chains were created:
• We consider the chain 4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))), COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3]))) which results in the following constraint:

(19)    (>(x3[2], x2[2])=TRUEjava.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))=java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3])) ⇒ 4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))≥NonInfC∧4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))≥COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))∧(UIncreasing(COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))), ≥))

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

(20)    (>(x3[2], x2[2])=TRUE4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))≥NonInfC∧4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))≥COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))∧(UIncreasing(COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))), ≥))

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

(21)    (0 ≥ 0 ⇒ (UIncreasing(COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))), ≥)∧[(2)bni_30 + (-1)Bound*bni_30] + [(4)bni_30]x1[2] ≥ 0∧[(-1)bso_31] ≥ 0)

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

(22)    (0 ≥ 0 ⇒ (UIncreasing(COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))), ≥)∧[(2)bni_30 + (-1)Bound*bni_30] + [(4)bni_30]x1[2] ≥ 0∧[(-1)bso_31] ≥ 0)

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

(23)    (0 ≥ 0 ⇒ (UIncreasing(COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))), ≥)∧[(2)bni_30 + (-1)Bound*bni_30] + [(4)bni_30]x1[2] ≥ 0∧[(-1)bso_31] ≥ 0)

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

(24)    (0 ≥ 0 ⇒ (UIncreasing(COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_30] ≥ 0∧0 ≥ 0∧[(2)bni_30 + (-1)Bound*bni_30] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_31] ≥ 0)

For Pair COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1, x3))) the following chains were created:
• We consider the chain 4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))), COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3]))), 4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))) which results in the following constraint:

(25)    (>(x3[2], x2[2])=TRUEjava.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))=java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3]))∧java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3]))=java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])) ⇒ COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3])))≥NonInfC∧COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3])))≥4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))∧(UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥))

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

(26)    (>(x3[2], x2[2])=TRUECOND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x2[2])), x3[2])))≥NonInfC∧COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x2[2])), x3[2])))≥4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[2])))∧(UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥))

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

(27)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥)∧[(6)bni_32 + (-1)Bound*bni_32] + [(8)bni_32]x1[4] ≥ 0∧[4 + (-1)bso_33] + [4]x1[4] ≥ 0)

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

(28)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥)∧[(6)bni_32 + (-1)Bound*bni_32] + [(8)bni_32]x1[4] ≥ 0∧[4 + (-1)bso_33] + [4]x1[4] ≥ 0)

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

(29)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥)∧[(6)bni_32 + (-1)Bound*bni_32] + [(8)bni_32]x1[4] ≥ 0∧[4 + (-1)bso_33] + [4]x1[4] ≥ 0)

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

(30)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(8)bni_32] ≥ 0∧0 ≥ 0∧[(6)bni_32 + (-1)Bound*bni_32] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_33] ≥ 0∧[1] ≥ 0)

• We consider the chain 4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))), COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3]))), 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))) which results in the following constraint:

(31)    (>(x3[2], x2[2])=TRUEjava.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))=java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3]))∧java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3]))=java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])) ⇒ COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3])))≥NonInfC∧COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3])))≥4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))∧(UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥))

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

(32)    (>(x3[2], x2[2])=TRUECOND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[2])), x3[2])))≥NonInfC∧COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[2])), x3[2])))≥4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x3[2])))∧(UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥))

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

(33)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥)∧[(6)bni_32 + (-1)Bound*bni_32] + [(8)bni_32]x0[5] ≥ 0∧[4 + (-1)bso_33] + [4]x0[5] ≥ 0)

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

(34)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥)∧[(6)bni_32 + (-1)Bound*bni_32] + [(8)bni_32]x0[5] ≥ 0∧[4 + (-1)bso_33] + [4]x0[5] ≥ 0)

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

(35)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥)∧[(6)bni_32 + (-1)Bound*bni_32] + [(8)bni_32]x0[5] ≥ 0∧[4 + (-1)bso_33] + [4]x0[5] ≥ 0)

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

(36)    (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(8)bni_32] ≥ 0∧0 ≥ 0∧[(6)bni_32 + (-1)Bound*bni_32] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_33] ≥ 0∧[1] ≥ 0)

For Pair 4266_0_BUBBLE_NULL(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → 4434_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) the following chains were created:
• We consider the chain 4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))), 4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))) which results in the following constraint:

(37)    (java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))=java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])) ⇒ 4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))≥NonInfC∧4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))≥4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))∧(UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥))

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

(38)    (4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))≥NonInfC∧4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))≥4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))∧(UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥))

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

(39)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥)∧[bni_34] = 0∧[(-1)bso_35] ≥ 0)

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

(40)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥)∧[bni_34] = 0∧[(-1)bso_35] ≥ 0)

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

(41)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥)∧[bni_34] = 0∧[(-1)bso_35] ≥ 0)

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

(42)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥)∧[bni_34] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_35] ≥ 0)

• We consider the chain 4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))), 4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))) which results in the following constraint:

(43)    (java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))=java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])) ⇒ 4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))≥NonInfC∧4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))≥4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))∧(UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥))

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

(44)    (4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))≥NonInfC∧4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))≥4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))∧(UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥))

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

(45)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥)∧[bni_34] = 0∧[(-1)bso_35] ≥ 0)

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

(46)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥)∧[bni_34] = 0∧[(-1)bso_35] ≥ 0)

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

(47)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥)∧[bni_34] = 0∧[(-1)bso_35] ≥ 0)

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

(48)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥)∧[bni_34] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_35] ≥ 0)

For Pair 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0, x1)), x2))) → 4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0, x1)), x2))) the following chains were created:
• We consider the chain 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))), 4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))) which results in the following constraint:

(49)    (java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))=java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])) ⇒ 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))≥NonInfC∧4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))≥4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))∧(UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥))

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

(50)    (4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))≥NonInfC∧4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))≥4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))∧(UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥))

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

(51)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥)∧[bni_36] = 0∧[(-1)bso_37] ≥ 0)

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

(52)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥)∧[bni_36] = 0∧[(-1)bso_37] ≥ 0)

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

(53)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥)∧[bni_36] = 0∧[(-1)bso_37] ≥ 0)

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

(54)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥)∧[bni_36] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_37] ≥ 0)

• We consider the chain 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))), 4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))) which results in the following constraint:

(55)    (java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))=java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])) ⇒ 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))≥NonInfC∧4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))≥4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))∧(UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥))

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

(56)    (4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))≥NonInfC∧4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))≥4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))∧(UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥))

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

(57)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥)∧[bni_36] = 0∧[(-1)bso_37] ≥ 0)

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

(58)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥)∧[bni_36] = 0∧[(-1)bso_37] ≥ 0)

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

(59)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥)∧[bni_36] = 0∧[(-1)bso_37] ≥ 0)

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

(60)    ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥)∧[bni_36] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_37] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• 4434_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → COND_4434_0_BUBBLE_LE(<=(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_26] ≥ 0∧0 ≥ 0∧[(2)bni_26 + (-1)Bound*bni_26] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_27] ≥ 0)

• COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1, x2)))
• (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(8)bni_28] ≥ 0∧0 ≥ 0∧[(6)bni_28 + (-1)Bound*bni_28] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_29] ≥ 0∧[1] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(8)bni_28] ≥ 0∧0 ≥ 0∧[(6)bni_28 + (-1)Bound*bni_28] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_29] ≥ 0∧[1] ≥ 0)

• 4434_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → COND_4434_0_BUBBLE_LE1(>(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_30] ≥ 0∧0 ≥ 0∧[(2)bni_30 + (-1)Bound*bni_30] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_31] ≥ 0)

• COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1, x3)))
• (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(8)bni_32] ≥ 0∧0 ≥ 0∧[(6)bni_32 + (-1)Bound*bni_32] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_33] ≥ 0∧[1] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(8)bni_32] ≥ 0∧0 ≥ 0∧[(6)bni_32 + (-1)Bound*bni_32] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[4 + (-1)bso_33] ≥ 0∧[1] ≥ 0)

• 4266_0_BUBBLE_NULL(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3))) → 4434_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4271_0_bubble_Return, x1, x2)), x3)))
• ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥)∧[bni_34] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_35] ≥ 0)
• ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥)∧[bni_34] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_35] ≥ 0)

• 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0, x1)), x2))) → 4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0, x1)), x2)))
• ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥)∧[bni_36] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_37] ≥ 0)
• ((UIncreasing(4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥)∧[bni_36] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_37] ≥ 0)

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

POL(TRUE) = 0
POL(FALSE) = 0
POL(4266_0_bubble_NULL(x1)) = 0
POL(NULL) = 0
POL(4271_0_bubble_Return) = 0
POL(4548_1_bubble_InvokeMethod(x1, x2)) = 0
POL(4345_0_bubble_Return(x1)) = 0
POL(java.lang.Object(x1)) = x1
POL(List(x1, x2, x3)) = [1] + [2]x2
POL(4434_0_BUBBLE_LE(x1)) = [-1] + x1
POL(COND_4434_0_BUBBLE_LE(x1, x2)) = [-1] + x2
POL(<=(x1, x2)) = 0
POL(4266_0_BUBBLE_NULL(x1)) = [-1] + x1
POL(COND_4434_0_BUBBLE_LE1(x1, x2)) = [-1] + x2
POL(>(x1, x2)) = 0

The following pairs are in P>:

COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))
COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))

The following pairs are in Pbound:

4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))
COND_4434_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[1], x2[1])))
4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))
COND_4434_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4271_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, x1[3], x3[3])))

The following pairs are in P:

4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4434_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))
4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4434_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))
4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))
4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))

There are no usable rules.

### (9) Obligation:

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

The following domains are used:

Integer

The ITRS R consists of the following rules:
4266_0_bubble_NULL(NULL) → 4271_0_bubble_Return
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(4271_0_bubble_Return, NULL, x0))), java.lang.Object(List(4271_0_bubble_Return, NULL, x0))) → 4271_0_bubble_Return
4548_1_bubble_InvokeMethod(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0, x1))) → 4271_0_bubble_Return

The integer pair graph contains the following rules and edges:
(0): 4434_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4434_0_BUBBLE_LE(x3[0] <= x2[0], java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))
(2): 4434_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4434_0_BUBBLE_LE1(x3[2] > x2[2], java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))
(4): 4266_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4271_0_bubble_Return, x1[4], x2[4])), x3[4])))
(5): 4266_0_BUBBLE_NULL(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4434_0_BUBBLE_LE(java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])))

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

(5) -> (0), if (java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])) →* java.lang.Object(List(x0[0], java.lang.Object(List(4271_0_bubble_Return, x1[0], x2[0])), x3[0])))

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

(5) -> (2), if (java.lang.Object(List(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0[5], x1[5])), x2[5])) →* java.lang.Object(List(x0[2], java.lang.Object(List(4271_0_bubble_Return, x1[2], x2[2])), x3[2])))

The set Q consists of the following terms:
4266_0_bubble_NULL(NULL)
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(4271_0_bubble_Return, NULL, x0))), java.lang.Object(List(4271_0_bubble_Return, NULL, x0)))
4548_1_bubble_InvokeMethod(4271_0_bubble_Return, java.lang.Object(List(4271_0_bubble_Return, x0, x1)))

### (10) IDependencyGraphProof (EQUIVALENT transformation)

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

### (12) Obligation:

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

### (13) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 37 rules for P and 63 rules for R.

P rules:
1627_0_length_NONNULL(EOS(STATIC_1627), java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1628_0_length_NONNULL(EOS(STATIC_1628), java.lang.Object(o1071sub), java.lang.Object(o1071sub))
1628_0_length_NONNULL(EOS(STATIC_1628), java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1631_0_length_ConstantStackPush(EOS(STATIC_1631), java.lang.Object(o1071sub))
1637_0_length_InvokeMethod(EOS(STATIC_1637), java.lang.Object(o1071sub)) → 1640_0_getTail_Load(EOS(STATIC_1640), java.lang.Object(o1071sub), java.lang.Object(o1071sub))
1640_0_getTail_Load(EOS(STATIC_1640), java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1647_0_getTail_FieldAccess(EOS(STATIC_1647), java.lang.Object(o1071sub), java.lang.Object(o1071sub))
1647_0_getTail_FieldAccess(EOS(STATIC_1647), java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1651_0_getTail_FieldAccess(EOS(STATIC_1651), java.lang.Object(o1071sub), java.lang.Object(o1071sub))
1647_0_getTail_FieldAccess(EOS(STATIC_1647), java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1652_0_getTail_FieldAccess(EOS(STATIC_1652), java.lang.Object(o1071sub), java.lang.Object(o1071sub))
1651_0_getTail_FieldAccess(EOS(STATIC_1651), java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1656_0_getTail_FieldAccess(EOS(STATIC_1656), java.lang.Object(o1071sub), java.lang.Object(o1071sub))
1651_0_getTail_FieldAccess(EOS(STATIC_1651), java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1657_0_getTail_FieldAccess(EOS(STATIC_1657), java.lang.Object(o1071sub), java.lang.Object(o1071sub))
1656_0_getTail_FieldAccess(EOS(STATIC_1656), java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1662_0_getTail_FieldAccess(EOS(STATIC_1662), java.lang.Object(o1071sub), java.lang.Object(o1071sub))
1656_0_getTail_FieldAccess(EOS(STATIC_1656), java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1663_0_getTail_FieldAccess(EOS(STATIC_1663), java.lang.Object(o1071sub), java.lang.Object(o1071sub))
1662_0_getTail_FieldAccess(EOS(STATIC_1662), java.lang.Object(List(o1083sub, o1084)), java.lang.Object(List(o1083sub, o1084))) → 1669_0_getTail_FieldAccess(EOS(STATIC_1669), java.lang.Object(List(o1083sub, o1084)), java.lang.Object(List(o1083sub, o1084)))
1669_0_getTail_FieldAccess(EOS(STATIC_1669), java.lang.Object(List(o1083sub, o1084)), java.lang.Object(List(o1083sub, o1084))) → 1682_0_getTail_Return(EOS(STATIC_1682), java.lang.Object(List(o1083sub, o1084)), o1084)
1682_0_getTail_Return(EOS(STATIC_1682), java.lang.Object(List(o1083sub, o1084)), o1084) → 1686_0_getTail_Return(EOS(STATIC_1686), java.lang.Object(List(o1083sub, o1084)), o1084)
1686_0_getTail_Return(EOS(STATIC_1686), java.lang.Object(List(EOC, o1086)), o1086) → 1696_0_length_InvokeMethod(EOS(STATIC_1696), o1086)
1696_0_length_InvokeMethod(EOS(STATIC_1696), o1086) → 1702_1_length_InvokeMethod(1702_0_length_Load(EOS(STATIC_1702), o1086), o1086)
1624_0_length_Load(EOS(STATIC_1624), o1065) → 1627_0_length_NONNULL(EOS(STATIC_1627), o1065, o1065)
1663_0_getTail_FieldAccess(EOS(STATIC_1663), java.lang.Object(List(EOC, o1086)), java.lang.Object(List(EOC, o1086))) → 1671_0_getTail_FieldAccess(EOS(STATIC_1671), java.lang.Object(List(EOC, o1086)), java.lang.Object(List(EOC, o1086)))
1671_0_getTail_FieldAccess(EOS(STATIC_1671), java.lang.Object(List(EOC, o1086)), java.lang.Object(List(EOC, o1086))) → 1686_0_getTail_Return(EOS(STATIC_1686), java.lang.Object(List(EOC, o1086)), o1086)
1657_0_getTail_FieldAccess(EOS(STATIC_1657), java.lang.Object(List(EOC, o1082)), java.lang.Object(List(EOC, o1082))) → 1665_0_getTail_FieldAccess(EOS(STATIC_1665), java.lang.Object(List(EOC, o1082)), java.lang.Object(List(EOC, o1082)))
1665_0_getTail_FieldAccess(EOS(STATIC_1665), java.lang.Object(List(EOC, o1082)), java.lang.Object(List(EOC, o1082))) → 1674_0_getTail_Return(EOS(STATIC_1674), java.lang.Object(List(EOC, o1082)), o1082)
1674_0_getTail_Return(EOS(STATIC_1674), java.lang.Object(List(EOC, o1082)), o1082) → 1689_0_length_InvokeMethod(EOS(STATIC_1689), o1082)
1689_0_length_InvokeMethod(EOS(STATIC_1689), o1082) → 1697_1_length_InvokeMethod(1697_0_length_Load(EOS(STATIC_1697), o1082), o1082)
1652_0_getTail_FieldAccess(EOS(STATIC_1652), java.lang.Object(List(EOC, o1080)), java.lang.Object(List(EOC, o1080))) → 1659_0_getTail_FieldAccess(EOS(STATIC_1659), java.lang.Object(List(EOC, o1080)), java.lang.Object(List(EOC, o1080)))
1659_0_getTail_FieldAccess(EOS(STATIC_1659), java.lang.Object(List(EOC, o1080)), java.lang.Object(List(EOC, o1080))) → 1666_0_getTail_Return(EOS(STATIC_1666), java.lang.Object(List(EOC, o1080)), o1080)
1666_0_getTail_Return(EOS(STATIC_1666), java.lang.Object(List(EOC, o1080)), o1080) → 1675_0_length_InvokeMethod(EOS(STATIC_1675), o1080)
1675_0_length_InvokeMethod(EOS(STATIC_1675), o1080) → 1690_1_length_InvokeMethod(1690_0_length_Load(EOS(STATIC_1690), o1080), o1080)
R rules:
1627_0_length_NONNULL(EOS(STATIC_1627), NULL, NULL) → 1629_0_length_NONNULL(EOS(STATIC_1629), NULL, NULL)
1629_0_length_NONNULL(EOS(STATIC_1629), NULL, NULL) → 1632_0_length_ConstantStackPush(EOS(STATIC_1632), NULL)
1632_0_length_ConstantStackPush(EOS(STATIC_1632), NULL) → 1635_0_length_Return(EOS(STATIC_1635), NULL)
1690_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL), NULL) → 1720_0_length_Return(EOS(STATIC_1720), NULL, NULL)
1690_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732)), java.lang.Object(List(EOC, NULL))) → 1761_0_length_Return(EOS(STATIC_1761), java.lang.Object(List(EOC, NULL)))
1690_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737)), java.lang.Object(List(EOC, NULL))) → 1773_0_length_Return(EOS(STATIC_1773), java.lang.Object(List(EOC, NULL)))
1690_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741)), java.lang.Object(List(EOC, NULL))) → 1793_0_length_Return(EOS(STATIC_1793), java.lang.Object(List(EOC, NULL)))
1690_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3213))))) → 2461_0_length_Return(EOS(STATIC_2461), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3213)))))
1690_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3232))))) → 2473_0_length_Return(EOS(STATIC_2473), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3232)))))
1690_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3251))))) → 2484_0_length_Return(EOS(STATIC_2484), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3251)))))
1697_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL), NULL) → 1725_0_length_Return(EOS(STATIC_1725), NULL, NULL)
1697_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732)), java.lang.Object(List(EOC, NULL))) → 1762_0_length_Return(EOS(STATIC_1762), java.lang.Object(List(EOC, NULL)))
1697_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737)), java.lang.Object(List(EOC, NULL))) → 1775_0_length_Return(EOS(STATIC_1775), java.lang.Object(List(EOC, NULL)))
1697_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741)), java.lang.Object(List(EOC, NULL))) → 1795_0_length_Return(EOS(STATIC_1795), java.lang.Object(List(EOC, NULL)))
1697_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3217))))) → 2463_0_length_Return(EOS(STATIC_2463), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3217)))))
1697_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3236))))) → 2476_0_length_Return(EOS(STATIC_2476), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3236)))))
1697_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3255))))) → 2487_0_length_Return(EOS(STATIC_2487), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3255)))))
1702_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL), NULL) → 1729_0_length_Return(EOS(STATIC_1729), NULL, NULL)
1702_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732)), java.lang.Object(List(EOC, NULL))) → 1764_0_length_Return(EOS(STATIC_1764), java.lang.Object(List(EOC, NULL)))
1702_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737)), java.lang.Object(List(EOC, NULL))) → 1778_0_length_Return(EOS(STATIC_1778), java.lang.Object(List(EOC, NULL)))
1702_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741)), java.lang.Object(List(EOC, NULL))) → 1798_0_length_Return(EOS(STATIC_1798), java.lang.Object(List(EOC, NULL)))
1702_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3221))))) → 2467_0_length_Return(EOS(STATIC_2467), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3221)))))
1702_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3240))))) → 2478_0_length_Return(EOS(STATIC_2478), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3240)))))
1702_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3259))))) → 2489_0_length_Return(EOS(STATIC_2489), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3259)))))
1720_0_length_Return(EOS(STATIC_1720), NULL, NULL) → 1726_0_length_IntArithmetic(EOS(STATIC_1726))
1725_0_length_Return(EOS(STATIC_1725), NULL, NULL) → 1730_0_length_IntArithmetic(EOS(STATIC_1730))
1726_0_length_IntArithmetic(EOS(STATIC_1726)) → 1732_0_length_Return(EOS(STATIC_1732))
1729_0_length_Return(EOS(STATIC_1729), NULL, NULL) → 1736_0_length_IntArithmetic(EOS(STATIC_1736))
1730_0_length_IntArithmetic(EOS(STATIC_1730)) → 1737_0_length_Return(EOS(STATIC_1737))
1736_0_length_IntArithmetic(EOS(STATIC_1736)) → 1741_0_length_Return(EOS(STATIC_1741))
1761_0_length_Return(EOS(STATIC_1761), java.lang.Object(List(EOC, NULL))) → 1860_0_length_Return(EOS(STATIC_1860), java.lang.Object(List(EOC, NULL)))
1762_0_length_Return(EOS(STATIC_1762), java.lang.Object(List(EOC, NULL))) → 1871_0_length_Return(EOS(STATIC_1871), java.lang.Object(List(EOC, NULL)))
1764_0_length_Return(EOS(STATIC_1764), java.lang.Object(List(EOC, NULL))) → 1882_0_length_Return(EOS(STATIC_1882), java.lang.Object(List(EOC, NULL)))
1773_0_length_Return(EOS(STATIC_1773), java.lang.Object(List(EOC, NULL))) → 1761_0_length_Return(EOS(STATIC_1761), java.lang.Object(List(EOC, NULL)))
1775_0_length_Return(EOS(STATIC_1775), java.lang.Object(List(EOC, NULL))) → 1762_0_length_Return(EOS(STATIC_1762), java.lang.Object(List(EOC, NULL)))
1778_0_length_Return(EOS(STATIC_1778), java.lang.Object(List(EOC, NULL))) → 1764_0_length_Return(EOS(STATIC_1764), java.lang.Object(List(EOC, NULL)))
1793_0_length_Return(EOS(STATIC_1793), java.lang.Object(List(EOC, NULL))) → 1761_0_length_Return(EOS(STATIC_1761), java.lang.Object(List(EOC, NULL)))
1795_0_length_Return(EOS(STATIC_1795), java.lang.Object(List(EOC, NULL))) → 1762_0_length_Return(EOS(STATIC_1762), java.lang.Object(List(EOC, NULL)))
1798_0_length_Return(EOS(STATIC_1798), java.lang.Object(List(EOC, NULL))) → 1764_0_length_Return(EOS(STATIC_1764), java.lang.Object(List(EOC, NULL)))
1860_0_length_Return(EOS(STATIC_1860), java.lang.Object(List(EOC, o1506))) → 1969_0_length_Return(EOS(STATIC_1969), java.lang.Object(List(EOC, o1506)))
1871_0_length_Return(EOS(STATIC_1871), java.lang.Object(List(EOC, o1567))) → 1981_0_length_Return(EOS(STATIC_1981), java.lang.Object(List(EOC, o1567)))
1882_0_length_Return(EOS(STATIC_1882), java.lang.Object(List(EOC, o1622))) → 1997_0_length_Return(EOS(STATIC_1997), java.lang.Object(List(EOC, o1622)))
1969_0_length_Return(EOS(STATIC_1969), java.lang.Object(List(EOC, o1891))) → 2166_0_length_Return(EOS(STATIC_2166), java.lang.Object(List(EOC, o1891)))
1981_0_length_Return(EOS(STATIC_1981), java.lang.Object(List(EOC, o1953))) → 2180_0_length_Return(EOS(STATIC_2180), java.lang.Object(List(EOC, o1953)))
1997_0_length_Return(EOS(STATIC_1997), java.lang.Object(List(EOC, o2008))) → 2189_0_length_Return(EOS(STATIC_2189), java.lang.Object(List(EOC, o2008)))
2166_0_length_Return(EOS(STATIC_2166), java.lang.Object(List(EOC, o2387))) → 2311_0_length_Return(EOS(STATIC_2311), java.lang.Object(List(EOC, o2387)))
2180_0_length_Return(EOS(STATIC_2180), java.lang.Object(List(EOC, o2449))) → 2321_0_length_Return(EOS(STATIC_2321), java.lang.Object(List(EOC, o2449)))
2189_0_length_Return(EOS(STATIC_2189), java.lang.Object(List(EOC, o2504))) → 2333_0_length_Return(EOS(STATIC_2333), java.lang.Object(List(EOC, o2504)))
2311_0_length_Return(EOS(STATIC_2311), java.lang.Object(List(EOC, o2824))) → 2376_0_length_IntArithmetic(EOS(STATIC_2376))
2321_0_length_Return(EOS(STATIC_2321), java.lang.Object(List(EOC, o2886))) → 2380_0_length_IntArithmetic(EOS(STATIC_2380))
2333_0_length_Return(EOS(STATIC_2333), java.lang.Object(List(EOC, o2941))) → 2385_0_length_IntArithmetic(EOS(STATIC_2385))
2376_0_length_IntArithmetic(EOS(STATIC_2376)) → 2393_0_length_Return(EOS(STATIC_2393))
2380_0_length_IntArithmetic(EOS(STATIC_2380)) → 2400_0_length_Return(EOS(STATIC_2400))
2385_0_length_IntArithmetic(EOS(STATIC_2385)) → 2408_0_length_Return(EOS(STATIC_2408))
2461_0_length_Return(EOS(STATIC_2461), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3213))))) → 2311_0_length_Return(EOS(STATIC_2311), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3213)))))
2463_0_length_Return(EOS(STATIC_2463), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3217))))) → 2321_0_length_Return(EOS(STATIC_2321), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3217)))))
2467_0_length_Return(EOS(STATIC_2467), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3221))))) → 2333_0_length_Return(EOS(STATIC_2333), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3221)))))
2473_0_length_Return(EOS(STATIC_2473), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3232))))) → 2311_0_length_Return(EOS(STATIC_2311), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3232)))))
2476_0_length_Return(EOS(STATIC_2476), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3236))))) → 2321_0_length_Return(EOS(STATIC_2321), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3236)))))
2478_0_length_Return(EOS(STATIC_2478), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3240))))) → 2333_0_length_Return(EOS(STATIC_2333), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3240)))))
2484_0_length_Return(EOS(STATIC_2484), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3251))))) → 2311_0_length_Return(EOS(STATIC_2311), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3251)))))
2487_0_length_Return(EOS(STATIC_2487), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3255))))) → 2321_0_length_Return(EOS(STATIC_2321), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3255)))))
2489_0_length_Return(EOS(STATIC_2489), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3259))))) → 2333_0_length_Return(EOS(STATIC_2333), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3259)))))

Combined rules. Obtained 3 conditional rules for P and 22 conditional rules for R.

P rules:
1627_0_length_NONNULL(EOS(STATIC_1627), java.lang.Object(List(EOC, x0)), java.lang.Object(List(EOC, x0))) → 1702_1_length_InvokeMethod(1627_0_length_NONNULL(EOS(STATIC_1627), x0, x0), x0)
1627_0_length_NONNULL(EOS(STATIC_1627), java.lang.Object(List(EOC, x0)), java.lang.Object(List(EOC, x0))) → 1697_1_length_InvokeMethod(1627_0_length_NONNULL(EOS(STATIC_1627), x0, x0), x0)
1627_0_length_NONNULL(EOS(STATIC_1627), java.lang.Object(List(EOC, x0)), java.lang.Object(List(EOC, x0))) → 1690_1_length_InvokeMethod(1627_0_length_NONNULL(EOS(STATIC_1627), x0, x0), x0)
R rules:
1627_0_length_NONNULL(EOS(STATIC_1627), NULL, NULL) → 1635_0_length_Return(EOS(STATIC_1635), NULL)
1690_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL), NULL) → 1732_0_length_Return(EOS(STATIC_1732))
1697_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL), NULL) → 1737_0_length_Return(EOS(STATIC_1737))
1702_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL), NULL) → 1741_0_length_Return(EOS(STATIC_1741))
1690_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2393_0_length_Return(EOS(STATIC_2393))
1690_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2393_0_length_Return(EOS(STATIC_2393))
1690_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2393_0_length_Return(EOS(STATIC_2393))
1690_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732)), java.lang.Object(List(EOC, NULL))) → 2393_0_length_Return(EOS(STATIC_2393))
1690_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737)), java.lang.Object(List(EOC, NULL))) → 2393_0_length_Return(EOS(STATIC_2393))
1690_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741)), java.lang.Object(List(EOC, NULL))) → 2393_0_length_Return(EOS(STATIC_2393))
1697_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2400_0_length_Return(EOS(STATIC_2400))
1697_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2400_0_length_Return(EOS(STATIC_2400))
1697_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2400_0_length_Return(EOS(STATIC_2400))
1697_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732)), java.lang.Object(List(EOC, NULL))) → 2400_0_length_Return(EOS(STATIC_2400))
1697_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737)), java.lang.Object(List(EOC, NULL))) → 2400_0_length_Return(EOS(STATIC_2400))
1697_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741)), java.lang.Object(List(EOC, NULL))) → 2400_0_length_Return(EOS(STATIC_2400))
1702_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2408_0_length_Return(EOS(STATIC_2408))
1702_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2408_0_length_Return(EOS(STATIC_2408))
1702_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2408_0_length_Return(EOS(STATIC_2408))
1702_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732)), java.lang.Object(List(EOC, NULL))) → 2408_0_length_Return(EOS(STATIC_2408))
1702_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737)), java.lang.Object(List(EOC, NULL))) → 2408_0_length_Return(EOS(STATIC_2408))
1702_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741)), java.lang.Object(List(EOC, NULL))) → 2408_0_length_Return(EOS(STATIC_2408))

Filtered ground terms:

1627_0_length_NONNULL(x1, x2, x3) → 1627_0_length_NONNULL(x2, x3)
List(x1, x2) → List(x2)
2408_0_length_Return(x1) → 2408_0_length_Return
1741_0_length_Return(x1) → 1741_0_length_Return
1737_0_length_Return(x1) → 1737_0_length_Return
1732_0_length_Return(x1) → 1732_0_length_Return
2400_0_length_Return(x1) → 2400_0_length_Return
2393_0_length_Return(x1) → 2393_0_length_Return
1635_0_length_Return(x1, x2) → 1635_0_length_Return

Filtered duplicate args:

1627_0_length_NONNULL(x1, x2) → 1627_0_length_NONNULL(x2)

Combined rules. Obtained 3 conditional rules for P and 22 conditional rules for R.

P rules:
1627_0_length_NONNULL(java.lang.Object(List(x0))) → 1702_1_length_InvokeMethod(1627_0_length_NONNULL(x0), x0)
1627_0_length_NONNULL(java.lang.Object(List(x0))) → 1697_1_length_InvokeMethod(1627_0_length_NONNULL(x0), x0)
1627_0_length_NONNULL(java.lang.Object(List(x0))) → 1690_1_length_InvokeMethod(1627_0_length_NONNULL(x0), x0)
R rules:
1627_0_length_NONNULL(NULL) → 1635_0_length_Return
1690_1_length_InvokeMethod(1635_0_length_Return, NULL) → 1732_0_length_Return
1697_1_length_InvokeMethod(1635_0_length_Return, NULL) → 1737_0_length_Return
1702_1_length_InvokeMethod(1635_0_length_Return, NULL) → 1741_0_length_Return
1690_1_length_InvokeMethod(2393_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2393_0_length_Return
1690_1_length_InvokeMethod(2400_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2393_0_length_Return
1690_1_length_InvokeMethod(2408_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2393_0_length_Return
1690_1_length_InvokeMethod(1732_0_length_Return, java.lang.Object(List(NULL))) → 2393_0_length_Return
1690_1_length_InvokeMethod(1737_0_length_Return, java.lang.Object(List(NULL))) → 2393_0_length_Return
1690_1_length_InvokeMethod(1741_0_length_Return, java.lang.Object(List(NULL))) → 2393_0_length_Return
1697_1_length_InvokeMethod(2393_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2400_0_length_Return
1697_1_length_InvokeMethod(2400_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2400_0_length_Return
1697_1_length_InvokeMethod(2408_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2400_0_length_Return
1697_1_length_InvokeMethod(1732_0_length_Return, java.lang.Object(List(NULL))) → 2400_0_length_Return
1697_1_length_InvokeMethod(1737_0_length_Return, java.lang.Object(List(NULL))) → 2400_0_length_Return
1697_1_length_InvokeMethod(1741_0_length_Return, java.lang.Object(List(NULL))) → 2400_0_length_Return
1702_1_length_InvokeMethod(2393_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2408_0_length_Return
1702_1_length_InvokeMethod(2400_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2408_0_length_Return
1702_1_length_InvokeMethod(2408_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2408_0_length_Return
1702_1_length_InvokeMethod(1732_0_length_Return, java.lang.Object(List(NULL))) → 2408_0_length_Return
1702_1_length_InvokeMethod(1737_0_length_Return, java.lang.Object(List(NULL))) → 2408_0_length_Return
1702_1_length_InvokeMethod(1741_0_length_Return, java.lang.Object(List(NULL))) → 2408_0_length_Return

Performed bisimulation on rules. Used the following equivalence classes: {[1635_0_length_Return, 1732_0_length_Return, 1737_0_length_Return, 1741_0_length_Return, 2393_0_length_Return, 2400_0_length_Return, 2408_0_length_Return]=1635_0_length_Return, [1690_1_length_InvokeMethod_2, 1697_1_length_InvokeMethod_2, 1702_1_length_InvokeMethod_2]=1690_1_length_InvokeMethod_2}

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

P rules:
1627_0_LENGTH_NONNULL(java.lang.Object(List(x0))) → 1627_0_LENGTH_NONNULL(x0)
R rules:
1627_0_length_NONNULL(NULL) → 1635_0_length_Return
1690_1_length_InvokeMethod(1635_0_length_Return, NULL) → 1635_0_length_Return
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 1635_0_length_Return
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(NULL))) → 1635_0_length_Return

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

The ITRS R consists of the following rules:
1627_0_length_NONNULL(NULL) → 1635_0_length_Return
1690_1_length_InvokeMethod(1635_0_length_Return, NULL) → 1635_0_length_Return
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 1635_0_length_Return
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(NULL))) → 1635_0_length_Return

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

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

The set Q consists of the following terms:
1627_0_length_NONNULL(NULL)
1690_1_length_InvokeMethod(1635_0_length_Return, NULL)
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0)))))
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(NULL)))

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

1627_0_LENGTH_NONNULL(java.lang.Object(List(x0[0]))) → 1627_0_LENGTH_NONNULL(x0[0])

The TRS R consists of the following rules:

1627_0_length_NONNULL(NULL) → 1635_0_length_Return
1690_1_length_InvokeMethod(1635_0_length_Return, NULL) → 1635_0_length_Return
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 1635_0_length_Return
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(NULL))) → 1635_0_length_Return

The set Q consists of the following terms:

1627_0_length_NONNULL(NULL)
1690_1_length_InvokeMethod(1635_0_length_Return, NULL)
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0)))))
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(NULL)))

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

### (17) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

### (18) Obligation:

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

1627_0_LENGTH_NONNULL(java.lang.Object(List(x0[0]))) → 1627_0_LENGTH_NONNULL(x0[0])

R is empty.
The set Q consists of the following terms:

1627_0_length_NONNULL(NULL)
1690_1_length_InvokeMethod(1635_0_length_Return, NULL)
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0)))))
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(NULL)))

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

### (19) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

1627_0_length_NONNULL(NULL)
1690_1_length_InvokeMethod(1635_0_length_Return, NULL)
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0)))))
1690_1_length_InvokeMethod(1635_0_length_Return, java.lang.Object(List(NULL)))

### (20) Obligation:

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

1627_0_LENGTH_NONNULL(java.lang.Object(List(x0[0]))) → 1627_0_LENGTH_NONNULL(x0[0])

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

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

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

### (23) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Test8.test([LList;I)V
SCC calls the following helper methods: Test8.length(LList;)I, Test8.test([LList;I)V, Test8.bubble(LList;)V
Performed SCC analyses: UsedFieldsAnalysis

### (24) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 76 rules for P and 212 rules for R.

P rules:
1765_0_test_LT(EOS(STATIC_1765), java.lang.Object(ARRAY(matching1)), i675, i675) → 1790_0_test_LT(EOS(STATIC_1790), java.lang.Object(ARRAY(3)), i675, i675) | =(matching1, 3)
1790_0_test_LT(EOS(STATIC_1790), java.lang.Object(ARRAY(matching1)), i675, i675) → 1817_0_test_Load(EOS(STATIC_1817), java.lang.Object(ARRAY(3)), i675) | &&(>=(i675, 0), =(matching1, 3))
1824_0_test_Load(EOS(STATIC_1824), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(ARRAY(matching2))) → 1848_0_test_ArrayAccess(EOS(STATIC_1848), java.lang.Object(ARRAY(3)), i675, java.lang.Object(ARRAY(3)), i675) | &&(=(matching1, 3), =(matching2, 3))
1848_0_test_ArrayAccess(EOS(STATIC_1848), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(ARRAY(matching2)), i675) → 1903_0_test_InvokeMethod(EOS(STATIC_1903), java.lang.Object(ARRAY(3)), i675, o1709) | &&(&&(<(i675, 3), =(matching1, 3)), =(matching2, 3))
1903_0_test_InvokeMethod(EOS(STATIC_1903), java.lang.Object(ARRAY(matching1)), i675, o1709) → 1915_1_test_InvokeMethod(1915_0_length_Load(EOS(STATIC_1915), o1709), java.lang.Object(ARRAY(3)), i675, o1709) | =(matching1, 3)
1915_1_test_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL, matching1), java.lang.Object(ARRAY(matching2)), i675, NULL) → 2111_0_length_Return(EOS(STATIC_2111), java.lang.Object(ARRAY(3)), i675, NULL, NULL, 0) | &&(=(matching1, 0), =(matching2, 3))
1915_1_test_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732), matching1), java.lang.Object(ARRAY(matching2)), i675, java.lang.Object(List(EOC))) → 2112_0_length_Return(EOS(STATIC_2112), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 3))
1915_1_test_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737), matching1), java.lang.Object(ARRAY(matching2)), i675, java.lang.Object(List(EOC))) → 2120_0_length_Return(EOS(STATIC_2120), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 3))
1915_1_test_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741), matching1), java.lang.Object(ARRAY(matching2)), i675, java.lang.Object(List(EOC))) → 2132_0_length_Return(EOS(STATIC_2132), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 3))
1915_1_test_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393), i1240), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC))) → 2470_0_length_Return(EOS(STATIC_2470), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), i1240) | =(matching1, 3)
1915_1_test_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400), i1247), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC))) → 2482_0_length_Return(EOS(STATIC_2482), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), i1247) | =(matching1, 3)
1915_1_test_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408), i1257), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC))) → 2492_0_length_Return(EOS(STATIC_2492), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), i1257) | =(matching1, 3)
2111_0_length_Return(EOS(STATIC_2111), java.lang.Object(ARRAY(matching1)), i675, NULL, NULL, matching2) → 2208_0_test_Store(EOS(STATIC_2208), java.lang.Object(ARRAY(3)), i675, 0) | &&(=(matching1, 3), =(matching2, 0))
2208_0_test_Store(EOS(STATIC_2208), java.lang.Object(ARRAY(matching1)), i675, matching2) → 2221_0_test_ConstantStackPush(EOS(STATIC_2221), java.lang.Object(ARRAY(3)), i675, 0) | &&(=(matching1, 3), =(matching2, 0))
2221_0_test_ConstantStackPush(EOS(STATIC_2221), java.lang.Object(ARRAY(matching1)), i675, matching2) → 2244_0_test_Store(EOS(STATIC_2244), java.lang.Object(ARRAY(3)), i675, 0, 0) | &&(=(matching1, 3), =(matching2, 0))
2244_0_test_Store(EOS(STATIC_2244), java.lang.Object(ARRAY(matching1)), i675, matching2, matching3) → 2251_0_test_Load(EOS(STATIC_2251), java.lang.Object(ARRAY(3)), i675, 0, 0) | &&(&&(=(matching1, 3), =(matching2, 0)), =(matching3, 0))
2251_0_test_Load(EOS(STATIC_2251), java.lang.Object(ARRAY(matching1)), i675, matching2, matching3) → 2296_0_test_Load(EOS(STATIC_2296), java.lang.Object(ARRAY(3)), i675, 0, 0, 0) | &&(&&(=(matching1, 3), =(matching2, 0)), =(matching3, 0))
2296_0_test_Load(EOS(STATIC_2296), java.lang.Object(ARRAY(matching1)), i675, matching2, matching3, matching4) → 2375_0_test_GE(EOS(STATIC_2375), java.lang.Object(ARRAY(3)), i675, 0, 0, 0, 0) | &&(&&(&&(=(matching1, 3), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2375_0_test_GE(EOS(STATIC_2375), java.lang.Object(ARRAY(matching1)), i675, matching2, matching3, matching4, matching5) → 2388_0_test_Load(EOS(STATIC_2388), java.lang.Object(ARRAY(3)), i675) | &&(&&(&&(&&(=(matching1, 3), =(matching2, 0)), =(matching3, 0)), =(matching4, 0)), =(matching5, 0))
4342_0_test_Load(EOS(STATIC_4342), i675, java.lang.Object(ARRAY(matching1))) → 4346_0_test_ConstantStackPush(EOS(STATIC_4346), java.lang.Object(ARRAY(3)), i675) | =(matching1, 3)
4346_0_test_ConstantStackPush(EOS(STATIC_4346), java.lang.Object(ARRAY(matching1)), i675) → 4351_0_test_IntArithmetic(EOS(STATIC_4351), java.lang.Object(ARRAY(3)), i675, 1) | =(matching1, 3)
4351_0_test_IntArithmetic(EOS(STATIC_4351), java.lang.Object(ARRAY(matching1)), i675, matching2) → 4355_0_test_InvokeMethod(EOS(STATIC_4355), java.lang.Object(ARRAY(3)), -(i675, 1)) | &&(&&(>=(i675, 0), =(matching1, 3)), =(matching2, 1))
4355_0_test_InvokeMethod(EOS(STATIC_4355), java.lang.Object(ARRAY(matching1)), i2066) → 4359_1_test_InvokeMethod(4359_0_test_Load(EOS(STATIC_4359), java.lang.Object(ARRAY(3)), i2066), java.lang.Object(ARRAY(3)), i2066) | =(matching1, 3)
1753_0_test_Load(EOS(STATIC_1753), java.lang.Object(ARRAY(matching1)), i641) → 1765_0_test_LT(EOS(STATIC_1765), java.lang.Object(ARRAY(3)), i641, i641) | =(matching1, 3)
2112_0_length_Return(EOS(STATIC_2112), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC)), matching2) → 2121_0_length_Return(EOS(STATIC_2121), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 3), =(matching2, 1))
2121_0_length_Return(EOS(STATIC_2121), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC)), matching2) → 2133_0_length_Return(EOS(STATIC_2133), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 3), =(matching2, 1))
2133_0_length_Return(EOS(STATIC_2133), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC)), matching2) → 2143_0_length_Return(EOS(STATIC_2143), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 3), =(matching2, 1))
2143_0_length_Return(EOS(STATIC_2143), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC)), i1014) → 2342_0_length_Return(EOS(STATIC_2342), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), i1014) | =(matching1, 3)
2342_0_length_Return(EOS(STATIC_2342), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC)), i1205) → 2387_0_test_Store(EOS(STATIC_2387), java.lang.Object(ARRAY(3)), i675, i1205) | =(matching1, 3)
2387_0_test_Store(EOS(STATIC_2387), java.lang.Object(ARRAY(matching1)), i675, i1205) → 2410_0_test_ConstantStackPush(EOS(STATIC_2410), java.lang.Object(ARRAY(3)), i675, i1205) | =(matching1, 3)
2410_0_test_ConstantStackPush(EOS(STATIC_2410), java.lang.Object(ARRAY(matching1)), i675, i1205) → 2417_0_test_Store(EOS(STATIC_2417), java.lang.Object(ARRAY(3)), i675, i1205, 0) | =(matching1, 3)
2417_0_test_Store(EOS(STATIC_2417), java.lang.Object(ARRAY(matching1)), i675, i1205, matching2) → 2456_0_test_Load(EOS(STATIC_2456), java.lang.Object(ARRAY(3)), i675, i1205, 0) | &&(=(matching1, 3), =(matching2, 0))
2456_0_test_Load(EOS(STATIC_2456), java.lang.Object(ARRAY(matching1)), i675, i1205, matching2) → 2582_0_test_Load(EOS(STATIC_2582), java.lang.Object(ARRAY(3)), i675, i1205, 0) | &&(=(matching1, 3), =(matching2, 0))
2582_0_test_Load(EOS(STATIC_2582), java.lang.Object(ARRAY(matching1)), i675, i1205, i1342) → 2933_0_test_Load(EOS(STATIC_2933), java.lang.Object(ARRAY(3)), i675, i1205, i1342) | =(matching1, 3)
2933_0_test_Load(EOS(STATIC_2933), java.lang.Object(ARRAY(matching1)), i675, i1205, i1469) → 3260_0_test_Load(EOS(STATIC_3260), java.lang.Object(ARRAY(3)), i675, i1205, i1469) | =(matching1, 3)
3260_0_test_Load(EOS(STATIC_3260), java.lang.Object(ARRAY(matching1)), i675, i1205, i1617) → 3580_0_test_Load(EOS(STATIC_3580), java.lang.Object(ARRAY(3)), i675, i1205, i1617) | =(matching1, 3)
3580_0_test_Load(EOS(STATIC_3580), java.lang.Object(ARRAY(matching1)), i675, i1205, i1731) → 4304_0_test_Load(EOS(STATIC_4304), java.lang.Object(ARRAY(3)), i675, i1205, i1731) | =(matching1, 3)
4304_0_test_Load(EOS(STATIC_4304), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057) → 4312_0_test_Load(EOS(STATIC_4312), java.lang.Object(ARRAY(3)), i675, i1205, i2057, i2057) | =(matching1, 3)
4312_0_test_Load(EOS(STATIC_4312), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, i2057) → 4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), i675, i1205, i2057, i2057, i1205) | =(matching1, 3)
4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, i2057, i1205) → 4327_0_test_GE(EOS(STATIC_4327), java.lang.Object(ARRAY(3)), i675, i1205, i2057, i2057, i1205) | =(matching1, 3)
4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, i2057, i1205) → 4329_0_test_GE(EOS(STATIC_4329), java.lang.Object(ARRAY(3)), i675, i1205, i2057, i2057, i1205) | =(matching1, 3)
4327_0_test_GE(EOS(STATIC_4327), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, i2057, i1205) → 4336_0_test_Load(EOS(STATIC_4336), java.lang.Object(ARRAY(3)), i675) | &&(>=(i2057, i1205), =(matching1, 3))
4329_0_test_GE(EOS(STATIC_4329), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, i2057, i1205) → 4338_0_test_Load(EOS(STATIC_4338), java.lang.Object(ARRAY(3)), i675, i1205, i2057) | &&(<(i2057, i1205), =(matching1, 3))
4338_0_test_Load(EOS(STATIC_4338), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057) → 4343_0_test_Load(EOS(STATIC_4343), java.lang.Object(ARRAY(3)), i675, i1205, i2057, java.lang.Object(ARRAY(3))) | =(matching1, 3)
4343_0_test_Load(EOS(STATIC_4343), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, java.lang.Object(ARRAY(matching2))) → 4348_0_test_ArrayAccess(EOS(STATIC_4348), java.lang.Object(ARRAY(3)), i675, i1205, i2057, java.lang.Object(ARRAY(3)), i675) | &&(=(matching1, 3), =(matching2, 3))
4348_0_test_ArrayAccess(EOS(STATIC_4348), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, java.lang.Object(ARRAY(matching2)), i675) → 4352_0_test_InvokeMethod(EOS(STATIC_4352), java.lang.Object(ARRAY(3)), i675, i1205, i2057, o6523) | &&(&&(<(i675, 3), =(matching1, 3)), =(matching2, 3))
4352_0_test_InvokeMethod(EOS(STATIC_4352), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, o6523) → 4356_1_test_InvokeMethod(4356_0_bubble_Load(EOS(STATIC_4356), o6523), java.lang.Object(ARRAY(3)), i675, i1205, i2057, o6523) | =(matching1, 3)
4356_1_test_InvokeMethod(4271_0_bubble_Return(EOS(STATIC_4271), NULL), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, NULL) → 4397_0_bubble_Return(EOS(STATIC_4397), java.lang.Object(ARRAY(3)), i675, i1205, i2057, NULL, NULL) | =(matching1, 3)
4356_1_test_InvokeMethod(4345_0_bubble_Return(EOS(STATIC_4345), java.lang.Object(List(o6559sub))), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, java.lang.Object(List(o6559sub))) → 4403_0_bubble_Return(EOS(STATIC_4403), java.lang.Object(ARRAY(3)), i675, i1205, i2057, java.lang.Object(List(o6559sub)), java.lang.Object(List(o6559sub))) | =(matching1, 3)
4356_1_test_InvokeMethod(4556_0_bubble_Return(EOS(STATIC_4556)), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, o6523) → 4563_0_bubble_Return(EOS(STATIC_4563), java.lang.Object(ARRAY(3)), i675, i1205, i2057, java.lang.Object(List(o6469sub))) | =(matching1, 3)
4356_1_test_InvokeMethod(4577_0_bubble_Return(EOS(STATIC_4577)), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, o6523) → 4583_0_bubble_Return(EOS(STATIC_4583), java.lang.Object(ARRAY(3)), i675, i1205, i2057, java.lang.Object(List(o6912sub))) | =(matching1, 3)
4397_0_bubble_Return(EOS(STATIC_4397), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, NULL, NULL) → 4404_0_bubble_Return(EOS(STATIC_4404), java.lang.Object(ARRAY(3)), i675, i1205, i2057, NULL, NULL) | =(matching1, 3)
4404_0_bubble_Return(EOS(STATIC_4404), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, o6569, o6569) → 4419_0_test_Inc(EOS(STATIC_4419), java.lang.Object(ARRAY(3)), i675, i1205, i2057) | =(matching1, 3)
4419_0_test_Inc(EOS(STATIC_4419), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057) → 4500_0_test_Inc(EOS(STATIC_4500), java.lang.Object(ARRAY(3)), i675, i1205, i2057) | =(matching1, 3)
4500_0_test_Inc(EOS(STATIC_4500), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057) → 4527_0_test_Inc(EOS(STATIC_4527), java.lang.Object(ARRAY(3)), i675, i1205, i2057) | =(matching1, 3)
4527_0_test_Inc(EOS(STATIC_4527), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057) → 4535_0_test_JMP(EOS(STATIC_4535), java.lang.Object(ARRAY(3)), i675, i1205, +(i2057, 1)) | =(matching1, 3)
4535_0_test_JMP(EOS(STATIC_4535), java.lang.Object(ARRAY(matching1)), i675, i1205, i2131) → 4540_0_test_Load(EOS(STATIC_4540), java.lang.Object(ARRAY(3)), i675, i1205, i2131) | =(matching1, 3)
4540_0_test_Load(EOS(STATIC_4540), java.lang.Object(ARRAY(matching1)), i675, i1205, i2131) → 4304_0_test_Load(EOS(STATIC_4304), java.lang.Object(ARRAY(3)), i675, i1205, i2131) | =(matching1, 3)
4403_0_bubble_Return(EOS(STATIC_4403), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, java.lang.Object(List(o6559sub)), java.lang.Object(List(o6559sub))) → 4404_0_bubble_Return(EOS(STATIC_4404), java.lang.Object(ARRAY(3)), i675, i1205, i2057, java.lang.Object(List(o6559sub)), java.lang.Object(List(o6559sub))) | =(matching1, 3)
4563_0_bubble_Return(EOS(STATIC_4563), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, java.lang.Object(List(o6469sub))) → 4519_0_bubble_Return(EOS(STATIC_4519), java.lang.Object(ARRAY(3)), i675, i1205, i2057, java.lang.Object(List(o6469sub))) | =(matching1, 3)
4519_0_bubble_Return(EOS(STATIC_4519), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, java.lang.Object(List(o6772sub))) → 4527_0_test_Inc(EOS(STATIC_4527), java.lang.Object(ARRAY(3)), i675, i1205, i2057) | =(matching1, 3)
4583_0_bubble_Return(EOS(STATIC_4583), java.lang.Object(ARRAY(matching1)), i675, i1205, i2057, java.lang.Object(List(o6912sub))) → 4519_0_bubble_Return(EOS(STATIC_4519), java.lang.Object(ARRAY(3)), i675, i1205, i2057, java.lang.Object(List(o6912sub))) | =(matching1, 3)
2120_0_length_Return(EOS(STATIC_2120), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC)), matching2) → 2121_0_length_Return(EOS(STATIC_2121), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 3), =(matching2, 1))
2132_0_length_Return(EOS(STATIC_2132), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC)), matching2) → 2133_0_length_Return(EOS(STATIC_2133), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 3), =(matching2, 1))
2470_0_length_Return(EOS(STATIC_2470), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC)), i1240) → 2342_0_length_Return(EOS(STATIC_2342), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), i1240) | =(matching1, 3)
2482_0_length_Return(EOS(STATIC_2482), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC)), i1247) → 2342_0_length_Return(EOS(STATIC_2342), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), i1247) | =(matching1, 3)
2492_0_length_Return(EOS(STATIC_2492), java.lang.Object(ARRAY(matching1)), i675, java.lang.Object(List(EOC)), i1257) → 2342_0_length_Return(EOS(STATIC_2342), java.lang.Object(ARRAY(3)), i675, java.lang.Object(List(EOC)), i1257) | =(matching1, 3)
R rules:
1624_0_length_Load(EOS(STATIC_1624), o1065) → 1627_0_length_NONNULL(EOS(STATIC_1627), o1065, o1065)
1627_0_length_NONNULL(EOS(STATIC_1627), java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1628_0_length_NONNULL(EOS(STATIC_1628), java.lang.Object(o1071sub), java.lang.Object(o1071sub))
1627_0_length_NONNULL(EOS(STATIC_1627), NULL, NULL) → 1629_0_length_NONNULL(EOS(STATIC_1629), NULL, NULL)
1628_0_length_NONNULL(EOS(STATIC_1628), java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1631_0_length_ConstantStackPush(EOS(STATIC_1631), java.lang.Object(o1071sub))
1629_0_length_NONNULL(EOS(STATIC_1629), NULL, NULL) → 1632_0_length_ConstantStackPush(EOS(STATIC_1632), NULL)
1631_0_length_ConstantStackPush(EOS(STATIC_1631), java.lang.Object(o1071sub)) → 1633_0_length_Load(EOS(STATIC_1633), java.lang.Object(o1071sub), 1)
1632_0_length_ConstantStackPush(EOS(STATIC_1632), NULL) → 1635_0_length_Return(EOS(STATIC_1635), NULL, 0)
1633_0_length_Load(EOS(STATIC_1633), java.lang.Object(o1071sub), matching1) → 1637_0_length_InvokeMethod(EOS(STATIC_1637), 1, java.lang.Object(o1071sub)) | =(matching1, 1)
1637_0_length_InvokeMethod(EOS(STATIC_1637), matching1, java.lang.Object(o1071sub)) → 1640_0_getTail_Load(EOS(STATIC_1640), 1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) | =(matching1, 1)
1640_0_getTail_Load(EOS(STATIC_1640), matching1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1647_0_getTail_FieldAccess(EOS(STATIC_1647), 1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) | =(matching1, 1)
1647_0_getTail_FieldAccess(EOS(STATIC_1647), matching1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1651_0_getTail_FieldAccess(EOS(STATIC_1651), 1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) | =(matching1, 1)
1647_0_getTail_FieldAccess(EOS(STATIC_1647), matching1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1652_0_getTail_FieldAccess(EOS(STATIC_1652), 1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) | =(matching1, 1)
1651_0_getTail_FieldAccess(EOS(STATIC_1651), matching1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1656_0_getTail_FieldAccess(EOS(STATIC_1656), 1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) | =(matching1, 1)
1651_0_getTail_FieldAccess(EOS(STATIC_1651), matching1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1657_0_getTail_FieldAccess(EOS(STATIC_1657), 1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) | =(matching1, 1)
1652_0_getTail_FieldAccess(EOS(STATIC_1652), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1659_0_getTail_FieldAccess(EOS(STATIC_1659), 1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) | =(matching1, 1)
1656_0_getTail_FieldAccess(EOS(STATIC_1656), matching1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1662_0_getTail_FieldAccess(EOS(STATIC_1662), 1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) | =(matching1, 1)
1656_0_getTail_FieldAccess(EOS(STATIC_1656), matching1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) → 1663_0_getTail_FieldAccess(EOS(STATIC_1663), 1, java.lang.Object(o1071sub), java.lang.Object(o1071sub)) | =(matching1, 1)
1657_0_getTail_FieldAccess(EOS(STATIC_1657), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1665_0_getTail_FieldAccess(EOS(STATIC_1665), 1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) | =(matching1, 1)
1659_0_getTail_FieldAccess(EOS(STATIC_1659), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1666_0_getTail_Return(EOS(STATIC_1666), 1, java.lang.Object(List(EOC)), o1080) | =(matching1, 1)
1662_0_getTail_FieldAccess(EOS(STATIC_1662), matching1, java.lang.Object(List(o1083sub)), java.lang.Object(List(o1083sub))) → 1669_0_getTail_FieldAccess(EOS(STATIC_1669), 1, java.lang.Object(List(o1083sub)), java.lang.Object(List(o1083sub))) | =(matching1, 1)
1663_0_getTail_FieldAccess(EOS(STATIC_1663), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1671_0_getTail_FieldAccess(EOS(STATIC_1671), 1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) | =(matching1, 1)
1665_0_getTail_FieldAccess(EOS(STATIC_1665), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1674_0_getTail_Return(EOS(STATIC_1674), 1, java.lang.Object(List(EOC)), o1082) | =(matching1, 1)
1666_0_getTail_Return(EOS(STATIC_1666), matching1, java.lang.Object(List(EOC)), o1080) → 1675_0_length_InvokeMethod(EOS(STATIC_1675), 1, o1080) | =(matching1, 1)
1669_0_getTail_FieldAccess(EOS(STATIC_1669), matching1, java.lang.Object(List(o1083sub)), java.lang.Object(List(o1083sub))) → 1682_0_getTail_Return(EOS(STATIC_1682), 1, java.lang.Object(List(o1083sub)), o1084) | =(matching1, 1)
1671_0_getTail_FieldAccess(EOS(STATIC_1671), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1686_0_getTail_Return(EOS(STATIC_1686), 1, java.lang.Object(List(EOC)), o1086) | =(matching1, 1)
1674_0_getTail_Return(EOS(STATIC_1674), matching1, java.lang.Object(List(EOC)), o1082) → 1689_0_length_InvokeMethod(EOS(STATIC_1689), 1, o1082) | =(matching1, 1)
1675_0_length_InvokeMethod(EOS(STATIC_1675), matching1, o1080) → 1690_1_length_InvokeMethod(1690_0_length_Load(EOS(STATIC_1690), o1080), 1, o1080) | =(matching1, 1)
1682_0_getTail_Return(EOS(STATIC_1682), matching1, java.lang.Object(List(o1083sub)), o1084) → 1686_0_getTail_Return(EOS(STATIC_1686), 1, java.lang.Object(List(o1083sub)), o1084) | =(matching1, 1)
1686_0_getTail_Return(EOS(STATIC_1686), matching1, java.lang.Object(List(EOC)), o1086) → 1696_0_length_InvokeMethod(EOS(STATIC_1696), 1, o1086) | =(matching1, 1)
1689_0_length_InvokeMethod(EOS(STATIC_1689), matching1, o1082) → 1697_1_length_InvokeMethod(1697_0_length_Load(EOS(STATIC_1697), o1082), 1, o1082) | =(matching1, 1)
1690_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL, matching1), matching2, NULL) → 1720_0_length_Return(EOS(STATIC_1720), 1, NULL, NULL, 0) | &&(=(matching1, 0), =(matching2, 1))
1690_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732), matching1), matching2, java.lang.Object(List(EOC))) → 1761_0_length_Return(EOS(STATIC_1761), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1690_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737), matching1), matching2, java.lang.Object(List(EOC))) → 1773_0_length_Return(EOS(STATIC_1773), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1690_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741), matching1), matching2, java.lang.Object(List(EOC))) → 1793_0_length_Return(EOS(STATIC_1793), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1690_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393), i1240), matching1, java.lang.Object(List(EOC))) → 2461_0_length_Return(EOS(STATIC_2461), 1, java.lang.Object(List(EOC)), i1240) | =(matching1, 1)
1690_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400), i1247), matching1, java.lang.Object(List(EOC))) → 2473_0_length_Return(EOS(STATIC_2473), 1, java.lang.Object(List(EOC)), i1247) | =(matching1, 1)
1690_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408), i1257), matching1, java.lang.Object(List(EOC))) → 2484_0_length_Return(EOS(STATIC_2484), 1, java.lang.Object(List(EOC)), i1257) | =(matching1, 1)
1696_0_length_InvokeMethod(EOS(STATIC_1696), matching1, o1086) → 1702_1_length_InvokeMethod(1702_0_length_Load(EOS(STATIC_1702), o1086), 1, o1086) | =(matching1, 1)
1697_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL, matching1), matching2, NULL) → 1725_0_length_Return(EOS(STATIC_1725), 1, NULL, NULL, 0) | &&(=(matching1, 0), =(matching2, 1))
1697_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732), matching1), matching2, java.lang.Object(List(EOC))) → 1762_0_length_Return(EOS(STATIC_1762), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1697_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737), matching1), matching2, java.lang.Object(List(EOC))) → 1775_0_length_Return(EOS(STATIC_1775), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1697_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741), matching1), matching2, java.lang.Object(List(EOC))) → 1795_0_length_Return(EOS(STATIC_1795), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1697_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393), i1240), matching1, java.lang.Object(List(EOC))) → 2463_0_length_Return(EOS(STATIC_2463), 1, java.lang.Object(List(EOC)), i1240) | =(matching1, 1)
1697_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400), i1247), matching1, java.lang.Object(List(EOC))) → 2476_0_length_Return(EOS(STATIC_2476), 1, java.lang.Object(List(EOC)), i1247) | =(matching1, 1)
1697_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408), i1257), matching1, java.lang.Object(List(EOC))) → 2487_0_length_Return(EOS(STATIC_2487), 1, java.lang.Object(List(EOC)), i1257) | =(matching1, 1)
1702_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL, matching1), matching2, NULL) → 1729_0_length_Return(EOS(STATIC_1729), 1, NULL, NULL, 0) | &&(=(matching1, 0), =(matching2, 1))
1702_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732), matching1), matching2, java.lang.Object(List(EOC))) → 1764_0_length_Return(EOS(STATIC_1764), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1702_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737), matching1), matching2, java.lang.Object(List(EOC))) → 1778_0_length_Return(EOS(STATIC_1778), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1702_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741), matching1), matching2, java.lang.Object(List(EOC))) → 1798_0_length_Return(EOS(STATIC_1798), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1702_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393), i1240), matching1, java.lang.Object(List(EOC))) → 2467_0_length_Return(EOS(STATIC_2467), 1, java.lang.Object(List(EOC)), i1240) | =(matching1, 1)
1702_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400), i1247), matching1, java.lang.Object(List(EOC))) → 2478_0_length_Return(EOS(STATIC_2478), 1, java.lang.Object(List(EOC)), i1247) | =(matching1, 1)
1702_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408), i1257), matching1, java.lang.Object(List(EOC))) → 2489_0_length_Return(EOS(STATIC_2489), 1, java.lang.Object(List(EOC)), i1257) | =(matching1, 1)
1720_0_length_Return(EOS(STATIC_1720), matching1, NULL, NULL, matching2) → 1726_0_length_IntArithmetic(EOS(STATIC_1726), 1, 0) | &&(=(matching1, 1), =(matching2, 0))
1725_0_length_Return(EOS(STATIC_1725), matching1, NULL, NULL, matching2) → 1730_0_length_IntArithmetic(EOS(STATIC_1730), 1, 0) | &&(=(matching1, 1), =(matching2, 0))
1726_0_length_IntArithmetic(EOS(STATIC_1726), matching1, matching2) → 1732_0_length_Return(EOS(STATIC_1732), 1) | &&(=(matching1, 1), =(matching2, 0))
1729_0_length_Return(EOS(STATIC_1729), matching1, NULL, NULL, matching2) → 1736_0_length_IntArithmetic(EOS(STATIC_1736), 1, 0) | &&(=(matching1, 1), =(matching2, 0))
1730_0_length_IntArithmetic(EOS(STATIC_1730), matching1, matching2) → 1737_0_length_Return(EOS(STATIC_1737), 1) | &&(=(matching1, 1), =(matching2, 0))
1736_0_length_IntArithmetic(EOS(STATIC_1736), matching1, matching2) → 1741_0_length_Return(EOS(STATIC_1741), 1) | &&(=(matching1, 1), =(matching2, 0))
1761_0_length_Return(EOS(STATIC_1761), matching1, java.lang.Object(List(EOC)), matching2) → 1860_0_length_Return(EOS(STATIC_1860), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1762_0_length_Return(EOS(STATIC_1762), matching1, java.lang.Object(List(EOC)), matching2) → 1871_0_length_Return(EOS(STATIC_1871), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1764_0_length_Return(EOS(STATIC_1764), matching1, java.lang.Object(List(EOC)), matching2) → 1882_0_length_Return(EOS(STATIC_1882), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1773_0_length_Return(EOS(STATIC_1773), matching1, java.lang.Object(List(EOC)), matching2) → 1761_0_length_Return(EOS(STATIC_1761), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1775_0_length_Return(EOS(STATIC_1775), matching1, java.lang.Object(List(EOC)), matching2) → 1762_0_length_Return(EOS(STATIC_1762), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1778_0_length_Return(EOS(STATIC_1778), matching1, java.lang.Object(List(EOC)), matching2) → 1764_0_length_Return(EOS(STATIC_1764), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1793_0_length_Return(EOS(STATIC_1793), matching1, java.lang.Object(List(EOC)), matching2) → 1761_0_length_Return(EOS(STATIC_1761), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1795_0_length_Return(EOS(STATIC_1795), matching1, java.lang.Object(List(EOC)), matching2) → 1762_0_length_Return(EOS(STATIC_1762), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1798_0_length_Return(EOS(STATIC_1798), matching1, java.lang.Object(List(EOC)), matching2) → 1764_0_length_Return(EOS(STATIC_1764), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1860_0_length_Return(EOS(STATIC_1860), matching1, java.lang.Object(List(EOC)), i734) → 1969_0_length_Return(EOS(STATIC_1969), 1, java.lang.Object(List(EOC)), i734) | =(matching1, 1)
1871_0_length_Return(EOS(STATIC_1871), matching1, java.lang.Object(List(EOC)), i752) → 1981_0_length_Return(EOS(STATIC_1981), 1, java.lang.Object(List(EOC)), i752) | =(matching1, 1)
1882_0_length_Return(EOS(STATIC_1882), matching1, java.lang.Object(List(EOC)), i768) → 1997_0_length_Return(EOS(STATIC_1997), 1, java.lang.Object(List(EOC)), i768) | =(matching1, 1)
1969_0_length_Return(EOS(STATIC_1969), matching1, java.lang.Object(List(EOC)), i860) → 2166_0_length_Return(EOS(STATIC_2166), 1, java.lang.Object(List(EOC)), i860) | =(matching1, 1)
1981_0_length_Return(EOS(STATIC_1981), matching1, java.lang.Object(List(EOC)), i878) → 2180_0_length_Return(EOS(STATIC_2180), 1, java.lang.Object(List(EOC)), i878) | =(matching1, 1)
1997_0_length_Return(EOS(STATIC_1997), matching1, java.lang.Object(List(EOC)), i894) → 2189_0_length_Return(EOS(STATIC_2189), 1, java.lang.Object(List(EOC)), i894) | =(matching1, 1)
2166_0_length_Return(EOS(STATIC_2166), matching1, java.lang.Object(List(EOC)), i1023) → 2311_0_length_Return(EOS(STATIC_2311), 1, java.lang.Object(List(EOC)), i1023) | =(matching1, 1)
2180_0_length_Return(EOS(STATIC_2180), matching1, java.lang.Object(List(EOC)), i1041) → 2321_0_length_Return(EOS(STATIC_2321), 1, java.lang.Object(List(EOC)), i1041) | =(matching1, 1)
2189_0_length_Return(EOS(STATIC_2189), matching1, java.lang.Object(List(EOC)), i1057) → 2333_0_length_Return(EOS(STATIC_2333), 1, java.lang.Object(List(EOC)), i1057) | =(matching1, 1)
2311_0_length_Return(EOS(STATIC_2311), matching1, java.lang.Object(List(EOC)), i1156) → 2376_0_length_IntArithmetic(EOS(STATIC_2376), 1, i1156) | =(matching1, 1)
2321_0_length_Return(EOS(STATIC_2321), matching1, java.lang.Object(List(EOC)), i1176) → 2380_0_length_IntArithmetic(EOS(STATIC_2380), 1, i1176) | =(matching1, 1)
2333_0_length_Return(EOS(STATIC_2333), matching1, java.lang.Object(List(EOC)), i1192) → 2385_0_length_IntArithmetic(EOS(STATIC_2385), 1, i1192) | =(matching1, 1)
2376_0_length_IntArithmetic(EOS(STATIC_2376), matching1, i1156) → 2393_0_length_Return(EOS(STATIC_2393), +(1, i1156)) | &&(>(i1156, 0), =(matching1, 1))
2380_0_length_IntArithmetic(EOS(STATIC_2380), matching1, i1176) → 2400_0_length_Return(EOS(STATIC_2400), +(1, i1176)) | &&(>(i1176, 0), =(matching1, 1))
2385_0_length_IntArithmetic(EOS(STATIC_2385), matching1, i1192) → 2408_0_length_Return(EOS(STATIC_2408), +(1, i1192)) | &&(>(i1192, 0), =(matching1, 1))
2461_0_length_Return(EOS(STATIC_2461), matching1, java.lang.Object(List(EOC)), i1240) → 2311_0_length_Return(EOS(STATIC_2311), 1, java.lang.Object(List(EOC)), i1240) | =(matching1, 1)
2463_0_length_Return(EOS(STATIC_2463), matching1, java.lang.Object(List(EOC)), i1240) → 2321_0_length_Return(EOS(STATIC_2321), 1, java.lang.Object(List(EOC)), i1240) | =(matching1, 1)
2467_0_length_Return(EOS(STATIC_2467), matching1, java.lang.Object(List(EOC)), i1240) → 2333_0_length_Return(EOS(STATIC_2333), 1, java.lang.Object(List(EOC)), i1240) | =(matching1, 1)
2473_0_length_Return(EOS(STATIC_2473), matching1, java.lang.Object(List(EOC)), i1247) → 2311_0_length_Return(EOS(STATIC_2311), 1, java.lang.Object(List(EOC)), i1247) | =(matching1, 1)
2476_0_length_Return(EOS(STATIC_2476), matching1, java.lang.Object(List(EOC)), i1247) → 2321_0_length_Return(EOS(STATIC_2321), 1, java.lang.Object(List(EOC)), i1247) | =(matching1, 1)
2478_0_length_Return(EOS(STATIC_2478), matching1, java.lang.Object(List(EOC)), i1247) → 2333_0_length_Return(EOS(STATIC_2333), 1, java.lang.Object(List(EOC)), i1247) | =(matching1, 1)
2484_0_length_Return(EOS(STATIC_2484), matching1, java.lang.Object(List(EOC)), i1257) → 2311_0_length_Return(EOS(STATIC_2311), 1, java.lang.Object(List(EOC)), i1257) | =(matching1, 1)
2487_0_length_Return(EOS(STATIC_2487), matching1, java.lang.Object(List(EOC)), i1257) → 2321_0_length_Return(EOS(STATIC_2321), 1, java.lang.Object(List(EOC)), i1257) | =(matching1, 1)
2489_0_length_Return(EOS(STATIC_2489), matching1, java.lang.Object(List(EOC)), i1257) → 2333_0_length_Return(EOS(STATIC_2333), 1, java.lang.Object(List(EOC)), i1257) | =(matching1, 1)
1765_0_test_LT(EOS(STATIC_1765), java.lang.Object(ARRAY(matching1)), matching2, matching3) → 1789_0_test_LT(EOS(STATIC_1789), java.lang.Object(ARRAY(3)), -1, -1) | &&(&&(=(matching1, 3), =(matching2, -1)), =(matching3, -1))
1789_0_test_LT(EOS(STATIC_1789), java.lang.Object(ARRAY(matching1)), matching2, matching3) → 1815_0_test_Return(EOS(STATIC_1815)) | &&(&&(&&(<(-1, 0), =(matching1, 3)), =(matching2, -1)), =(matching3, -1))
4359_1_test_InvokeMethod(1815_0_test_Return(EOS(STATIC_1815)), java.lang.Object(ARRAY(matching1)), matching2) → 4374_0_test_Return(EOS(STATIC_4374), java.lang.Object(ARRAY(3)), -1) | &&(=(matching1, 3), =(matching2, -1))
4359_1_test_InvokeMethod(4428_0_test_Return(EOS(STATIC_4428)), java.lang.Object(ARRAY(matching1)), i2086) → 4454_0_test_Return(EOS(STATIC_4454), java.lang.Object(ARRAY(3)), i2086) | =(matching1, 3)
4374_0_test_Return(EOS(STATIC_4374), java.lang.Object(ARRAY(matching1)), matching2) → 4417_0_test_Return(EOS(STATIC_4417), java.lang.Object(ARRAY(3)), -1) | &&(=(matching1, 3), =(matching2, -1))
4417_0_test_Return(EOS(STATIC_4417), java.lang.Object(ARRAY(matching1)), i2074) → 4428_0_test_Return(EOS(STATIC_4428)) | =(matching1, 3)
4454_0_test_Return(EOS(STATIC_4454), java.lang.Object(ARRAY(matching1)), i2086) → 4417_0_test_Return(EOS(STATIC_4417), java.lang.Object(ARRAY(3)), i2086) | =(matching1, 3)
4265_0_bubble_Load(EOS(STATIC_4265), o6413) → 4266_0_bubble_NULL(EOS(STATIC_4266), o6413, o6413)
4266_0_bubble_NULL(EOS(STATIC_4266), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4267_0_bubble_NULL(EOS(STATIC_4267), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4266_0_bubble_NULL(EOS(STATIC_4266), NULL, NULL) → 4268_0_bubble_NULL(EOS(STATIC_4268), NULL, NULL)
4267_0_bubble_NULL(EOS(STATIC_4267), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4270_0_bubble_Load(EOS(STATIC_4270), java.lang.Object(o6420sub))
4268_0_bubble_NULL(EOS(STATIC_4268), NULL, NULL) → 4271_0_bubble_Return(EOS(STATIC_4271), NULL)
4270_0_bubble_Load(EOS(STATIC_4270), java.lang.Object(o6420sub)) → 4272_0_bubble_InvokeMethod(EOS(STATIC_4272), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4272_0_bubble_InvokeMethod(EOS(STATIC_4272), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4275_0_getTail_Load(EOS(STATIC_4275), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4275_0_getTail_Load(EOS(STATIC_4275), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4286_0_getTail_FieldAccess(EOS(STATIC_4286), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4286_0_getTail_FieldAccess(EOS(STATIC_4286), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4291_0_getTail_FieldAccess(EOS(STATIC_4291), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4286_0_getTail_FieldAccess(EOS(STATIC_4286), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4292_0_getTail_FieldAccess(EOS(STATIC_4292), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4291_0_getTail_FieldAccess(EOS(STATIC_4291), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4295_0_getTail_FieldAccess(EOS(STATIC_4295), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4291_0_getTail_FieldAccess(EOS(STATIC_4291), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4296_0_getTail_FieldAccess(EOS(STATIC_4296), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4292_0_getTail_FieldAccess(EOS(STATIC_4292), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4297_0_getTail_FieldAccess(EOS(STATIC_4297), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)))
4295_0_getTail_FieldAccess(EOS(STATIC_4295), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4307_0_getTail_FieldAccess(EOS(STATIC_4307), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4295_0_getTail_FieldAccess(EOS(STATIC_4295), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub)) → 4308_0_getTail_FieldAccess(EOS(STATIC_4308), java.lang.Object(o6420sub), java.lang.Object(o6420sub), java.lang.Object(o6420sub))
4296_0_getTail_FieldAccess(EOS(STATIC_4296), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4309_0_getTail_FieldAccess(EOS(STATIC_4309), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)))
4297_0_getTail_FieldAccess(EOS(STATIC_4297), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4310_0_getTail_Return(EOS(STATIC_4310), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6444)
4307_0_getTail_FieldAccess(EOS(STATIC_4307), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4313_0_getTail_FieldAccess(EOS(STATIC_4313), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4308_0_getTail_FieldAccess(EOS(STATIC_4308), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4314_0_getTail_FieldAccess(EOS(STATIC_4314), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)))
4309_0_getTail_FieldAccess(EOS(STATIC_4309), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4317_0_getTail_Return(EOS(STATIC_4317), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6464)
4310_0_getTail_Return(EOS(STATIC_4310), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6444) → 4317_0_getTail_Return(EOS(STATIC_4317), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6444)
4313_0_getTail_FieldAccess(EOS(STATIC_4313), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4324_0_getTail_Return(EOS(STATIC_4324), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)), o6470)
4314_0_getTail_FieldAccess(EOS(STATIC_4314), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4326_0_getTail_Return(EOS(STATIC_4326), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6473)
4317_0_getTail_Return(EOS(STATIC_4317), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6464) → 4324_0_getTail_Return(EOS(STATIC_4324), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6464)
4324_0_getTail_Return(EOS(STATIC_4324), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)), o6470) → 4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(o6469sub)), o6470)
4326_0_getTail_Return(EOS(STATIC_4326), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6473) → 4334_0_bubble_NONNULL(EOS(STATIC_4334), java.lang.Object(List(EOC)), o6473)
4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(o6469sub)), java.lang.Object(o6520sub)) → 4339_0_bubble_NONNULL(EOS(STATIC_4339), java.lang.Object(List(o6469sub)), java.lang.Object(o6520sub))
4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(o6469sub)), NULL) → 4340_0_bubble_NONNULL(EOS(STATIC_4340), java.lang.Object(List(o6469sub)), NULL)
4334_0_bubble_NONNULL(EOS(STATIC_4334), java.lang.Object(List(EOC)), o6473) → 4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(EOC)), o6473)
4339_0_bubble_NONNULL(EOS(STATIC_4339), java.lang.Object(List(o6469sub)), java.lang.Object(o6520sub)) → 4344_0_bubble_Load(EOS(STATIC_4344), java.lang.Object(List(o6469sub)))
4340_0_bubble_NONNULL(EOS(STATIC_4340), java.lang.Object(List(o6469sub)), NULL) → 4345_0_bubble_Return(EOS(STATIC_4345), java.lang.Object(List(o6469sub)))
4344_0_bubble_Load(EOS(STATIC_4344), java.lang.Object(List(o6469sub))) → 4349_0_bubble_FieldAccess(EOS(STATIC_4349), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4349_0_bubble_FieldAccess(EOS(STATIC_4349), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4354_0_bubble_Load(EOS(STATIC_4354), java.lang.Object(List(o6469sub)), i2060)
4354_0_bubble_Load(EOS(STATIC_4354), java.lang.Object(List(o6469sub)), i2060) → 4358_0_bubble_InvokeMethod(EOS(STATIC_4358), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)))
4358_0_bubble_InvokeMethod(EOS(STATIC_4358), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub))) → 4362_0_getTail_Load(EOS(STATIC_4362), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4362_0_getTail_Load(EOS(STATIC_4362), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4367_0_getTail_FieldAccess(EOS(STATIC_4367), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4367_0_getTail_FieldAccess(EOS(STATIC_4367), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4373_0_getTail_Return(EOS(STATIC_4373), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(o6520sub))
4373_0_getTail_Return(EOS(STATIC_4373), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(o6520sub)) → 4378_0_bubble_FieldAccess(EOS(STATIC_4378), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub))
4378_0_bubble_FieldAccess(EOS(STATIC_4378), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub)) → 4383_0_bubble_FieldAccess(EOS(STATIC_4383), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub))
4378_0_bubble_FieldAccess(EOS(STATIC_4378), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub)) → 4384_0_bubble_FieldAccess(EOS(STATIC_4384), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub))
4383_0_bubble_FieldAccess(EOS(STATIC_4383), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub)) → 4392_0_bubble_FieldAccess(EOS(STATIC_4392), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub))
4383_0_bubble_FieldAccess(EOS(STATIC_4383), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub)) → 4393_0_bubble_FieldAccess(EOS(STATIC_4393), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub))
4384_0_bubble_FieldAccess(EOS(STATIC_4384), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC))) → 4394_0_bubble_FieldAccess(EOS(STATIC_4394), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC)))
4392_0_bubble_FieldAccess(EOS(STATIC_4392), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub)) → 4406_0_bubble_FieldAccess(EOS(STATIC_4406), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub))
4392_0_bubble_FieldAccess(EOS(STATIC_4392), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub)) → 4407_0_bubble_FieldAccess(EOS(STATIC_4407), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(o6520sub))
4393_0_bubble_FieldAccess(EOS(STATIC_4393), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC))) → 4408_0_bubble_FieldAccess(EOS(STATIC_4408), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC)))
4394_0_bubble_FieldAccess(EOS(STATIC_4394), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC))) → 4410_0_bubble_LE(EOS(STATIC_4410), java.lang.Object(List(o6469sub)), i2060, i2070)
4406_0_bubble_FieldAccess(EOS(STATIC_4406), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC))) → 4420_0_bubble_FieldAccess(EOS(STATIC_4420), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC)))
4407_0_bubble_FieldAccess(EOS(STATIC_4407), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC))) → 4421_0_bubble_FieldAccess(EOS(STATIC_4421), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC)))
4408_0_bubble_FieldAccess(EOS(STATIC_4408), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC))) → 4424_0_bubble_LE(EOS(STATIC_4424), java.lang.Object(List(o6469sub)), i2060, i2073)
4410_0_bubble_LE(EOS(STATIC_4410), java.lang.Object(List(o6469sub)), i2060, i2070) → 4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(o6469sub)), i2060, i2070)
4420_0_bubble_FieldAccess(EOS(STATIC_4420), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC))) → 4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(o6469sub)), i2060, i2075)
4421_0_bubble_FieldAccess(EOS(STATIC_4421), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC))) → 4438_0_bubble_LE(EOS(STATIC_4438), java.lang.Object(List(o6469sub)), i2060, i2076)
4424_0_bubble_LE(EOS(STATIC_4424), java.lang.Object(List(o6469sub)), i2060, i2073) → 4410_0_bubble_LE(EOS(STATIC_4410), java.lang.Object(List(o6469sub)), i2060, i2073)
4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(o6469sub)), i2060, i2075) → 4445_0_bubble_LE(EOS(STATIC_4445), java.lang.Object(List(o6469sub)), i2060, i2075)
4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(o6469sub)), i2060, i2075) → 4446_0_bubble_LE(EOS(STATIC_4446), java.lang.Object(List(o6469sub)), i2060, i2075)
4438_0_bubble_LE(EOS(STATIC_4438), java.lang.Object(List(o6469sub)), i2060, i2076) → 4434_0_bubble_LE(EOS(STATIC_4434), java.lang.Object(List(o6469sub)), i2060, i2076)
4445_0_bubble_LE(EOS(STATIC_4445), java.lang.Object(List(o6469sub)), i2060, i2075) → 4448_0_bubble_Load(EOS(STATIC_4448), java.lang.Object(List(o6469sub))) | <=(i2060, i2075)
4446_0_bubble_LE(EOS(STATIC_4446), java.lang.Object(List(o6469sub)), i2060, i2075) → 4450_0_bubble_Load(EOS(STATIC_4450), java.lang.Object(List(o6469sub))) | >(i2060, i2075)
4450_0_bubble_Load(EOS(STATIC_4450), java.lang.Object(List(o6469sub))) → 4457_0_bubble_FieldAccess(EOS(STATIC_4457), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4457_0_bubble_FieldAccess(EOS(STATIC_4457), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4459_0_bubble_Store(EOS(STATIC_4459), java.lang.Object(List(o6469sub)), i2060)
4459_0_bubble_Store(EOS(STATIC_4459), java.lang.Object(List(o6469sub)), i2060) → 4461_0_bubble_Load(EOS(STATIC_4461), java.lang.Object(List(o6469sub)), i2060)
4463_0_bubble_Load(EOS(STATIC_4463), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub))) → 4467_0_bubble_InvokeMethod(EOS(STATIC_4467), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4467_0_bubble_InvokeMethod(EOS(STATIC_4467), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4469_0_getTail_Load(EOS(STATIC_4469), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4469_0_getTail_Load(EOS(STATIC_4469), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4474_0_getTail_FieldAccess(EOS(STATIC_4474), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4474_0_getTail_FieldAccess(EOS(STATIC_4474), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4476_0_getTail_Return(EOS(STATIC_4476), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)), java.lang.Object(List(EOC)))
4476_0_getTail_Return(EOS(STATIC_4476), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)), java.lang.Object(List(EOC))) → 4482_0_bubble_FieldAccess(EOS(STATIC_4482), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(EOC)))
4482_0_bubble_FieldAccess(EOS(STATIC_4482), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(EOC))) → 4486_0_bubble_FieldAccess(EOS(STATIC_4486), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), i2075)
4486_0_bubble_FieldAccess(EOS(STATIC_4486), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), i2075) → 4489_0_bubble_Load(EOS(STATIC_4489), java.lang.Object(List(o6469sub)), i2060)
4489_0_bubble_Load(EOS(STATIC_4489), java.lang.Object(List(o6469sub)), i2060) → 4491_0_bubble_InvokeMethod(EOS(STATIC_4491), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)))
4491_0_bubble_InvokeMethod(EOS(STATIC_4491), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub))) → 4495_0_getTail_Load(EOS(STATIC_4495), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4495_0_getTail_Load(EOS(STATIC_4495), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4503_0_getTail_FieldAccess(EOS(STATIC_4503), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4503_0_getTail_FieldAccess(EOS(STATIC_4503), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4508_0_getTail_Return(EOS(STATIC_4508), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(EOC)))
4508_0_getTail_Return(EOS(STATIC_4508), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(o6469sub)), java.lang.Object(List(EOC))) → 4515_0_bubble_Load(EOS(STATIC_4515), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC)))
4515_0_bubble_Load(EOS(STATIC_4515), java.lang.Object(List(o6469sub)), i2060, java.lang.Object(List(EOC))) → 4525_0_bubble_FieldAccess(EOS(STATIC_4525), java.lang.Object(List(o6469sub)), java.lang.Object(List(EOC)), i2060)
4525_0_bubble_FieldAccess(EOS(STATIC_4525), java.lang.Object(List(o6469sub)), java.lang.Object(List(EOC)), i2060) → 4534_0_bubble_Load(EOS(STATIC_4534), java.lang.Object(List(o6469sub)))
4537_0_bubble_InvokeMethod(EOS(STATIC_4537), java.lang.Object(List(o6469sub))) → 4541_0_getTail_Load(EOS(STATIC_4541), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4541_0_getTail_Load(EOS(STATIC_4541), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4543_0_getTail_FieldAccess(EOS(STATIC_4543), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub)))
4543_0_getTail_FieldAccess(EOS(STATIC_4543), java.lang.Object(List(o6469sub)), java.lang.Object(List(o6469sub))) → 4545_0_getTail_Return(EOS(STATIC_4545), java.lang.Object(List(o6469sub)), java.lang.Object(List(EOC)))
4545_0_getTail_Return(EOS(STATIC_4545), java.lang.Object(List(o6469sub)), java.lang.Object(List(EOC))) → 4546_0_bubble_InvokeMethod(EOS(STATIC_4546), java.lang.Object(List(EOC)))
4546_0_bubble_InvokeMethod(EOS(STATIC_4546), java.lang.Object(List(EOC))) → 4548_1_bubble_InvokeMethod(4548_0_bubble_Load(EOS(STATIC_4548), java.lang.Object(List(EOC))), java.lang.Object(List(EOC)))
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(EOS(STATIC_4345), java.lang.Object(List(EOC))), java.lang.Object(List(EOC))) → 4555_0_bubble_Return(EOS(STATIC_4555), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)))
4548_1_bubble_InvokeMethod(4556_0_bubble_Return(EOS(STATIC_4556)), java.lang.Object(List(EOC))) → 4564_0_bubble_Return(EOS(STATIC_4564), java.lang.Object(List(EOC)))
4548_1_bubble_InvokeMethod(4577_0_bubble_Return(EOS(STATIC_4577)), java.lang.Object(List(EOC))) → 4587_0_bubble_Return(EOS(STATIC_4587), java.lang.Object(List(EOC)))
4555_0_bubble_Return(EOS(STATIC_4555), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4556_0_bubble_Return(EOS(STATIC_4556))
4564_0_bubble_Return(EOS(STATIC_4564), java.lang.Object(List(EOC))) → 4575_0_bubble_Return(EOS(STATIC_4575), java.lang.Object(List(EOC)))
4575_0_bubble_Return(EOS(STATIC_4575), java.lang.Object(List(EOC))) → 4577_0_bubble_Return(EOS(STATIC_4577))
4587_0_bubble_Return(EOS(STATIC_4587), java.lang.Object(List(EOC))) → 4575_0_bubble_Return(EOS(STATIC_4575), java.lang.Object(List(EOC)))

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

P rules:
1915_1_test_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL, 0), java.lang.Object(ARRAY(3)), x2, NULL) → 4359_1_test_InvokeMethod(1915_1_test_InvokeMethod(1915_0_length_Load(EOS(STATIC_1915), x3), java.lang.Object(ARRAY(3)), -(x2, 1), x3), java.lang.Object(ARRAY(3)), -(x2, 1)) | &&(>(+(x2, 1), 1), <(x2, 4))
1915_1_test_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393), x0), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x2, x0, 0, 0, x0)
1915_1_test_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400), x0), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x2, x0, 0, 0, x0)
1915_1_test_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408), x0), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x2, x0, 0, 0, x0)
1915_1_test_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741), 1), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x2, 1, 0, 0, 1)
1915_1_test_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732), 1), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x2, 1, 0, 0, 1)
1915_1_test_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737), 1), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x2, 1, 0, 0, 1)
4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x1, x2, x3, x3, x2) → 4359_1_test_InvokeMethod(1915_1_test_InvokeMethod(1915_0_length_Load(EOS(STATIC_1915), x4), java.lang.Object(ARRAY(3)), -(x1, 1), x4), java.lang.Object(ARRAY(3)), -(x1, 1)) | &&(&&(>=(x3, x2), >(+(x1, 1), 1)), <(x1, 4))
4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x1, x2, x3, x3, x2) → 4356_1_test_InvokeMethod(4356_0_bubble_Load(EOS(STATIC_4356), x4), java.lang.Object(ARRAY(3)), x1, x2, x3, x4) | &&(<(x3, x2), <(x1, 3))
4356_1_test_InvokeMethod(4271_0_bubble_Return(EOS(STATIC_4271), NULL), java.lang.Object(ARRAY(3)), x1, x2, x3, NULL) → 4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x1, x2, +(x3, 1), +(x3, 1), x2)
4356_1_test_InvokeMethod(4345_0_bubble_Return(EOS(STATIC_4345), java.lang.Object(List(x0))), java.lang.Object(ARRAY(3)), x2, x3, x4, java.lang.Object(List(x0))) → 4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x2, x3, +(x4, 1), +(x4, 1), x3)
4356_1_test_InvokeMethod(4556_0_bubble_Return(EOS(STATIC_4556)), java.lang.Object(ARRAY(3)), x1, x2, x3, x4) → 4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x1, x2, +(x3, 1), +(x3, 1), x2)
4356_1_test_InvokeMethod(4577_0_bubble_Return(EOS(STATIC_4577)), java.lang.Object(ARRAY(3)), x1, x2, x3, x4) → 4320_0_test_GE(EOS(STATIC_4320), java.lang.Object(ARRAY(3)), x1, x2, +(x3, 1), +(x3, 1), x2)
R rules:
1915_0_length_Load(EOS(STATIC_1915), x0) → 1627_0_length_NONNULL(EOS(STATIC_1627), x0, x0)
4356_0_bubble_Load(EOS(STATIC_4356), x0) → 4266_0_bubble_NULL(EOS(STATIC_4266), x0, x0)
1627_0_length_NONNULL(EOS(STATIC_1627), NULL, NULL) → 1635_0_length_Return(EOS(STATIC_1635), NULL, 0)
1627_0_length_NONNULL(EOS(STATIC_1627), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1690_1_length_InvokeMethod(1627_0_length_NONNULL(EOS(STATIC_1627), x0, x0), 1, x0)
1627_0_length_NONNULL(EOS(STATIC_1627), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1697_1_length_InvokeMethod(1627_0_length_NONNULL(EOS(STATIC_1627), x0, x0), 1, x0)
1627_0_length_NONNULL(EOS(STATIC_1627), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1702_1_length_InvokeMethod(1627_0_length_NONNULL(EOS(STATIC_1627), x0, x0), 1, x0)
1690_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL, 0), 1, NULL) → 1732_0_length_Return(EOS(STATIC_1732), 1)
1697_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL, 0), 1, NULL) → 1737_0_length_Return(EOS(STATIC_1737), 1)
1702_1_length_InvokeMethod(1635_0_length_Return(EOS(STATIC_1635), NULL, 0), 1, NULL) → 1741_0_length_Return(EOS(STATIC_1741), 1)
1690_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393), x0), 1, java.lang.Object(List(EOC))) → 2393_0_length_Return(EOS(STATIC_2393), +(1, x0)) | >(x0, 0)
1690_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400), x0), 1, java.lang.Object(List(EOC))) → 2393_0_length_Return(EOS(STATIC_2393), +(1, x0)) | >(x0, 0)
1690_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408), x0), 1, java.lang.Object(List(EOC))) → 2393_0_length_Return(EOS(STATIC_2393), +(1, x0)) | >(x0, 0)
1690_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732), 1), 1, java.lang.Object(List(EOC))) → 2393_0_length_Return(EOS(STATIC_2393), 2)
1690_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737), 1), 1, java.lang.Object(List(EOC))) → 2393_0_length_Return(EOS(STATIC_2393), 2)
1690_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741), 1), 1, java.lang.Object(List(EOC))) → 2393_0_length_Return(EOS(STATIC_2393), 2)
1697_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393), x0), 1, java.lang.Object(List(EOC))) → 2400_0_length_Return(EOS(STATIC_2400), +(1, x0)) | >(x0, 0)
1697_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400), x0), 1, java.lang.Object(List(EOC))) → 2400_0_length_Return(EOS(STATIC_2400), +(1, x0)) | >(x0, 0)
1697_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408), x0), 1, java.lang.Object(List(EOC))) → 2400_0_length_Return(EOS(STATIC_2400), +(1, x0)) | >(x0, 0)
1697_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732), 1), 1, java.lang.Object(List(EOC))) → 2400_0_length_Return(EOS(STATIC_2400), 2)
1697_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737), 1), 1, java.lang.Object(List(EOC))) → 2400_0_length_Return(EOS(STATIC_2400), 2)
1697_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741), 1), 1, java.lang.Object(List(EOC))) → 2400_0_length_Return(EOS(STATIC_2400), 2)
1702_1_length_InvokeMethod(2393_0_length_Return(EOS(STATIC_2393), x0), 1, java.lang.Object(List(EOC))) → 2408_0_length_Return(EOS(STATIC_2408), +(1, x0)) | >(x0, 0)
1702_1_length_InvokeMethod(2400_0_length_Return(EOS(STATIC_2400), x0), 1, java.lang.Object(List(EOC))) → 2408_0_length_Return(EOS(STATIC_2408), +(1, x0)) | >(x0, 0)
1702_1_length_InvokeMethod(2408_0_length_Return(EOS(STATIC_2408), x0), 1, java.lang.Object(List(EOC))) → 2408_0_length_Return(EOS(STATIC_2408), +(1, x0)) | >(x0, 0)
1702_1_length_InvokeMethod(1732_0_length_Return(EOS(STATIC_1732), 1), 1, java.lang.Object(List(EOC))) → 2408_0_length_Return(EOS(STATIC_2408), 2)
1702_1_length_InvokeMethod(1737_0_length_Return(EOS(STATIC_1737), 1), 1, java.lang.Object(List(EOC))) → 2408_0_length_Return(EOS(STATIC_2408), 2)
1702_1_length_InvokeMethod(1741_0_length_Return(EOS(STATIC_1741), 1), 1, java.lang.Object(List(EOC))) → 2408_0_length_Return(EOS(STATIC_2408), 2)
4359_1_test_InvokeMethod(1815_0_test_Return(EOS(STATIC_1815)), java.lang.Object(ARRAY(3)), -1) → 4428_0_test_Return(EOS(STATIC_4428))
4359_1_test_InvokeMethod(4428_0_test_Return(EOS(STATIC_4428)), java.lang.Object(ARRAY(3)), x1) → 4428_0_test_Return(EOS(STATIC_4428))
4266_0_bubble_NULL(EOS(STATIC_4266), NULL, NULL) → 4271_0_bubble_Return(EOS(STATIC_4271), NULL)
4266_0_bubble_NULL(EOS(STATIC_4266), java.lang.Object(List(x0)), java.lang.Object(List(x0))) → 4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(x0)), x1)
4266_0_bubble_NULL(EOS(STATIC_4266), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(EOC)), x0)
4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(x0)), NULL) → 4345_0_bubble_Return(EOS(STATIC_4345), java.lang.Object(List(x0)))
4330_0_bubble_NONNULL(EOS(STATIC_4330), java.lang.Object(List(x0)), java.lang.Object(x1)) → 4548_1_bubble_InvokeMethod(4266_0_bubble_NULL(EOS(STATIC_4266), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))), java.lang.Object(List(EOC)))
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(EOS(STATIC_4345), java.lang.Object(List(EOC))), java.lang.Object(List(EOC))) → 4556_0_bubble_Return(EOS(STATIC_4556))
4548_1_bubble_InvokeMethod(4556_0_bubble_Return(EOS(STATIC_4556)), java.lang.Object(List(EOC))) → 4577_0_bubble_Return(EOS(STATIC_4577))
4548_1_bubble_InvokeMethod(4577_0_bubble_Return(EOS(STATIC_4577)), java.lang.Object(List(EOC))) → 4577_0_bubble_Return(EOS(STATIC_4577))

Filtered ground terms:

4320_0_test_GE(x1, x2, x3, x4, x5, x6, x7) → 4320_0_test_GE(x3, x4, x5, x6, x7)
ARRAY(x1) → ARRAY
4356_1_test_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4356_1_test_InvokeMethod(x1, x3, x4, x5, x6)
4577_0_bubble_Return(x1) → 4577_0_bubble_Return
4556_0_bubble_Return(x1) → 4556_0_bubble_Return
4345_0_bubble_Return(x1, x2) → 4345_0_bubble_Return(x2)
4271_0_bubble_Return(x1, x2) → 4271_0_bubble_Return
Cond_4320_0_test_GE1(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_4320_0_test_GE1(x1, x4, x5, x6, x7, x8, x9)
4359_1_test_InvokeMethod(x1, x2, x3) → 4359_1_test_InvokeMethod(x1, x3)
1915_1_test_InvokeMethod(x1, x2, x3, x4) → 1915_1_test_InvokeMethod(x1, x3, x4)
Cond_4320_0_test_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_4320_0_test_GE(x1, x4, x5, x6, x7, x8, x9)
1737_0_length_Return(x1, x2) → 1737_0_length_Return
1732_0_length_Return(x1, x2) → 1732_0_length_Return
1741_0_length_Return(x1, x2) → 1741_0_length_Return
2408_0_length_Return(x1, x2) → 2408_0_length_Return(x2)
2400_0_length_Return(x1, x2) → 2400_0_length_Return(x2)
2393_0_length_Return(x1, x2) → 2393_0_length_Return(x2)
Cond_1915_1_test_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_1915_1_test_InvokeMethod(x1, x4, x6)
1635_0_length_Return(x1, x2, x3) → 1635_0_length_Return
4548_1_bubble_InvokeMethod(x1, x2) → 4548_1_bubble_InvokeMethod(x1)
4266_0_bubble_NULL(x1, x2, x3) → 4266_0_bubble_NULL(x2, x3)
4330_0_bubble_NONNULL(x1, x2, x3) → 4330_0_bubble_NONNULL(x2, x3)
4428_0_test_Return(x1) → 4428_0_test_Return
1815_0_test_Return(x1) → 1815_0_test_Return
1702_1_length_InvokeMethod(x1, x2, x3) → 1702_1_length_InvokeMethod(x1, x3)
Cond_1702_1_length_InvokeMethod2(x1, x2, x3, x4) → Cond_1702_1_length_InvokeMethod2(x1, x2)
Cond_1702_1_length_InvokeMethod1(x1, x2, x3, x4) → Cond_1702_1_length_InvokeMethod1(x1, x2)
Cond_1702_1_length_InvokeMethod(x1, x2, x3, x4) → Cond_1702_1_length_InvokeMethod(x1, x2)
1697_1_length_InvokeMethod(x1, x2, x3) → 1697_1_length_InvokeMethod(x1, x3)
Cond_1697_1_length_InvokeMethod2(x1, x2, x3, x4) → Cond_1697_1_length_InvokeMethod2(x1, x2)
Cond_1697_1_length_InvokeMethod1(x1, x2, x3, x4) → Cond_1697_1_length_InvokeMethod1(x1, x2)
Cond_1697_1_length_InvokeMethod(x1, x2, x3, x4) → Cond_1697_1_length_InvokeMethod(x1, x2)
1690_1_length_InvokeMethod(x1, x2, x3) → 1690_1_length_InvokeMethod(x1, x3)
Cond_1690_1_length_InvokeMethod2(x1, x2, x3, x4) → Cond_1690_1_length_InvokeMethod2(x1, x2)
Cond_1690_1_length_InvokeMethod1(x1, x2, x3, x4) → Cond_1690_1_length_InvokeMethod1(x1, x2)
Cond_1690_1_length_InvokeMethod(x1, x2, x3, x4) → Cond_1690_1_length_InvokeMethod(x1, x2)
1627_0_length_NONNULL(x1, x2, x3) → 1627_0_length_NONNULL(x2, x3)

Filtered duplicate args:

4320_0_test_GE(x1, x2, x3, x4, x5) → 4320_0_test_GE(x1, x4, x5)
Cond_4320_0_test_GE(x1, x2, x3, x4, x5, x6, x7) → Cond_4320_0_test_GE(x1, x2, x5, x6, x7)
Cond_4320_0_test_GE1(x1, x2, x3, x4, x5, x6, x7) → Cond_4320_0_test_GE1(x1, x2, x5, x6, x7)
1627_0_length_NONNULL(x1, x2) → 1627_0_length_NONNULL(x2)
4266_0_bubble_NULL(x1, x2) → 4266_0_bubble_NULL(x2)

Filtered unneeded arguments:

Cond_4320_0_test_GE(x1, x2, x3, x4, x5) → Cond_4320_0_test_GE(x1, x2, x5)

Filtered free variables in P:

1690_1_length_InvokeMethod(x1, x2) → 1690_1_length_InvokeMethod(x1)
1627_0_length_NONNULL(x1) → 1627_0_length_NONNULL
1697_1_length_InvokeMethod(x1, x2) → 1697_1_length_InvokeMethod(x1)
1702_1_length_InvokeMethod(x1, x2) → 1702_1_length_InvokeMethod(x1)
4330_0_bubble_NONNULL(x1, x2) → 4330_0_bubble_NONNULL(x1)

Current set of rules:

P rules:
1915_1_test_InvokeMethod(1635_0_length_Return, x2, NULL) → Cond_1915_1_test_InvokeMethod(&&(>(+(x2, 1), 1), <(x2, 4)), x2, x3)
Cond_1915_1_test_InvokeMethod(TRUE, x2, x3) → 4359_1_test_InvokeMethod(1915_1_test_InvokeMethod(1915_0_length_Load(x3), -(x2, 1), x3), -(x2, 1))
1915_1_test_InvokeMethod(2393_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, x0)
1915_1_test_InvokeMethod(2400_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, x0)
1915_1_test_InvokeMethod(2408_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, x0)
1915_1_test_InvokeMethod(1741_0_length_Return, x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, 1)
1915_1_test_InvokeMethod(1732_0_length_Return, x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, 1)
1915_1_test_InvokeMethod(1737_0_length_Return, x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, 1)
4320_0_test_GE(x1, x3, x2) → Cond_4320_0_test_GE(&&(&&(>=(x3, x2), >(+(x1, 1), 1)), <(x1, 4)), x1, x4)
Cond_4320_0_test_GE(TRUE, x1, x4) → 4359_1_test_InvokeMethod(1915_1_test_InvokeMethod(1915_0_length_Load(x4), -(x1, 1), x4), -(x1, 1))
4320_0_test_GE(x1, x3, x2) → Cond_4320_0_test_GE1(&&(<(x3, x2), <(x1, 3)), x1, x3, x2, x4)
Cond_4320_0_test_GE1(TRUE, x1, x3, x2, x4) → 4356_1_test_InvokeMethod(4356_0_bubble_Load(x4), x1, x2, x3, x4)
4356_1_test_InvokeMethod(4271_0_bubble_Return, x1, x2, x3, NULL) → 4320_0_test_GE(x1, +(x3, 1), x2)
4356_1_test_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(x0))), x2, x3, x4, java.lang.Object(List(x0))) → 4320_0_test_GE(x2, +(x4, 1), x3)
4356_1_test_InvokeMethod(4556_0_bubble_Return, x1, x2, x3, x4) → 4320_0_test_GE(x1, +(x3, 1), x2)
4356_1_test_InvokeMethod(4577_0_bubble_Return, x1, x2, x3, x4) → 4320_0_test_GE(x1, +(x3, 1), x2)
R rules:
1627_0_length_NONNULL1635_0_length_Return
1627_0_length_NONNULL1690_1_length_InvokeMethod(1627_0_length_NONNULL)
1627_0_length_NONNULL1697_1_length_InvokeMethod(1627_0_length_NONNULL)
1627_0_length_NONNULL1702_1_length_InvokeMethod(1627_0_length_NONNULL)
1690_1_length_InvokeMethod(1635_0_length_Return) → 1732_0_length_Return
1697_1_length_InvokeMethod(1635_0_length_Return) → 1737_0_length_Return
1702_1_length_InvokeMethod(1635_0_length_Return) → 1741_0_length_Return
1690_1_length_InvokeMethod(2393_0_length_Return(x0)) → Cond_1690_1_length_InvokeMethod(>(x0, 0), 2393_0_length_Return(x0))
Cond_1690_1_length_InvokeMethod(TRUE, 2393_0_length_Return(x0)) → 2393_0_length_Return(+(1, x0))
1690_1_length_InvokeMethod(2400_0_length_Return(x0)) → Cond_1690_1_length_InvokeMethod1(>(x0, 0), 2400_0_length_Return(x0))
Cond_1690_1_length_InvokeMethod1(TRUE, 2400_0_length_Return(x0)) → 2393_0_length_Return(+(1, x0))
1690_1_length_InvokeMethod(2408_0_length_Return(x0)) → Cond_1690_1_length_InvokeMethod2(>(x0, 0), 2408_0_length_Return(x0))
Cond_1690_1_length_InvokeMethod2(TRUE, 2408_0_length_Return(x0)) → 2393_0_length_Return(+(1, x0))
1690_1_length_InvokeMethod(1732_0_length_Return) → 2393_0_length_Return(2)
1690_1_length_InvokeMethod(1737_0_length_Return) → 2393_0_length_Return(2)
1690_1_length_InvokeMethod(1741_0_length_Return) → 2393_0_length_Return(2)
1697_1_length_InvokeMethod(2393_0_length_Return(x0)) → Cond_1697_1_length_InvokeMethod(>(x0, 0), 2393_0_length_Return(x0))
Cond_1697_1_length_InvokeMethod(TRUE, 2393_0_length_Return(x0)) → 2400_0_length_Return(+(1, x0))
1697_1_length_InvokeMethod(2400_0_length_Return(x0)) → Cond_1697_1_length_InvokeMethod1(>(x0, 0), 2400_0_length_Return(x0))
Cond_1697_1_length_InvokeMethod1(TRUE, 2400_0_length_Return(x0)) → 2400_0_length_Return(+(1, x0))
1697_1_length_InvokeMethod(2408_0_length_Return(x0)) → Cond_1697_1_length_InvokeMethod2(>(x0, 0), 2408_0_length_Return(x0))
Cond_1697_1_length_InvokeMethod2(TRUE, 2408_0_length_Return(x0)) → 2400_0_length_Return(+(1, x0))
1697_1_length_InvokeMethod(1732_0_length_Return) → 2400_0_length_Return(2)
1697_1_length_InvokeMethod(1737_0_length_Return) → 2400_0_length_Return(2)
1697_1_length_InvokeMethod(1741_0_length_Return) → 2400_0_length_Return(2)
1702_1_length_InvokeMethod(2393_0_length_Return(x0)) → Cond_1702_1_length_InvokeMethod(>(x0, 0), 2393_0_length_Return(x0))
Cond_1702_1_length_InvokeMethod(TRUE, 2393_0_length_Return(x0)) → 2408_0_length_Return(+(1, x0))
1702_1_length_InvokeMethod(2400_0_length_Return(x0)) → Cond_1702_1_length_InvokeMethod1(>(x0, 0), 2400_0_length_Return(x0))
Cond_1702_1_length_InvokeMethod1(TRUE, 2400_0_length_Return(x0)) → 2408_0_length_Return(+(1, x0))
1702_1_length_InvokeMethod(2408_0_length_Return(x0)) → Cond_1702_1_length_InvokeMethod2(>(x0, 0), 2408_0_length_Return(x0))
Cond_1702_1_length_InvokeMethod2(TRUE, 2408_0_length_Return(x0)) → 2408_0_length_Return(+(1, x0))
1702_1_length_InvokeMethod(1732_0_length_Return) → 2408_0_length_Return(2)
1702_1_length_InvokeMethod(1737_0_length_Return) → 2408_0_length_Return(2)
1702_1_length_InvokeMethod(1741_0_length_Return) → 2408_0_length_Return(2)
4359_1_test_InvokeMethod(1815_0_test_Return, -1) → 4428_0_test_Return
4359_1_test_InvokeMethod(4428_0_test_Return, x1) → 4428_0_test_Return
4266_0_bubble_NULL(NULL) → 4271_0_bubble_Return
4266_0_bubble_NULL(java.lang.Object(List(x0))) → 4330_0_bubble_NONNULL(java.lang.Object(List(x0)))
4266_0_bubble_NULL(java.lang.Object(List(EOC))) → 4330_0_bubble_NONNULL(java.lang.Object(List(EOC)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4345_0_bubble_Return(java.lang.Object(List(x0)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4548_1_bubble_InvokeMethod(4266_0_bubble_NULL(java.lang.Object(List(EOC))))
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(EOC)))) → 4556_0_bubble_Return
4548_1_bubble_InvokeMethod(4556_0_bubble_Return) → 4577_0_bubble_Return
4548_1_bubble_InvokeMethod(4577_0_bubble_Return) → 4577_0_bubble_Return

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

P rules:
1915_1_test_InvokeMethod(1635_0_length_Return, x2, NULL) → 4359_1_test_InvokeMethod(1915_1_test_InvokeMethod(1915_0_length_Load(x3), -(x2, 1), x3), -(x2, 1)) | &&(>(x2, 0), <(x2, 4))
1915_1_test_InvokeMethod(2393_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, x0)
1915_1_test_InvokeMethod(2400_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, x0)
1915_1_test_InvokeMethod(2408_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, x0)
1915_1_test_InvokeMethod(1741_0_length_Return, x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, 1)
1915_1_test_InvokeMethod(1732_0_length_Return, x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, 1)
1915_1_test_InvokeMethod(1737_0_length_Return, x2, java.lang.Object(List(EOC))) → 4320_0_test_GE(x2, 0, 1)
4320_0_test_GE(x1, x3, x2) → 4359_1_test_InvokeMethod(1915_1_test_InvokeMethod(1915_0_length_Load(x4), -(x1, 1), x4), -(x1, 1)) | &&(&&(>=(x3, x2), >(x1, 0)), <(x1, 4))
4320_0_test_GE(x1, x3, x2) → 4356_1_test_InvokeMethod(4356_0_bubble_Load(x4), x1, x2, x3, x4) | &&(<(x3, x2), <(x1, 3))
4356_1_test_InvokeMethod(4271_0_bubble_Return, x1, x2, x3, NULL) → 4320_0_test_GE(x1, +(x3, 1), x2)
4356_1_test_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(x0))), x2, x3, x4, java.lang.Object(List(x0))) → 4320_0_test_GE(x2, +(x4, 1), x3)
4356_1_test_InvokeMethod(4556_0_bubble_Return, x1, x2, x3, x4) → 4320_0_test_GE(x1, +(x3, 1), x2)
4356_1_test_InvokeMethod(4577_0_bubble_Return, x1, x2, x3, x4) → 4320_0_test_GE(x1, +(x3, 1), x2)
R rules:
1627_0_length_NONNULL1635_0_length_Return
1627_0_length_NONNULL1690_1_length_InvokeMethod(1627_0_length_NONNULL)
1627_0_length_NONNULL1697_1_length_InvokeMethod(1627_0_length_NONNULL)
1627_0_length_NONNULL1702_1_length_InvokeMethod(1627_0_length_NONNULL)
1690_1_length_InvokeMethod(1635_0_length_Return) → 1732_0_length_Return
1697_1_length_InvokeMethod(1635_0_length_Return) → 1737_0_length_Return
1702_1_length_InvokeMethod(1635_0_length_Return) → 1741_0_length_Return
1690_1_length_InvokeMethod(2393_0_length_Return(x0)) → 2393_0_length_Return(+(1, x0)) | >(x0, 0)
1690_1_length_InvokeMethod(2400_0_length_Return(x0)) → 2393_0_length_Return(+(1, x0)) | >(x0, 0)
1690_1_length_InvokeMethod(2408_0_length_Return(x0)) → 2393_0_length_Return(+(1, x0)) | >(x0, 0)
1690_1_length_InvokeMethod(1732_0_length_Return) → 2393_0_length_Return(2)
1690_1_length_InvokeMethod(1737_0_length_Return) → 2393_0_length_Return(2)
1690_1_length_InvokeMethod(1741_0_length_Return) → 2393_0_length_Return(2)
1697_1_length_InvokeMethod(2393_0_length_Return(x0)) → 2400_0_length_Return(+(1, x0)) | >(x0, 0)
1697_1_length_InvokeMethod(2400_0_length_Return(x0)) → 2400_0_length_Return(+(1, x0)) | >(x0, 0)
1697_1_length_InvokeMethod(2408_0_length_Return(x0)) → 2400_0_length_Return(+(1, x0)) | >(x0, 0)
1697_1_length_InvokeMethod(1732_0_length_Return) → 2400_0_length_Return(2)
1697_1_length_InvokeMethod(1737_0_length_Return) → 2400_0_length_Return(2)
1697_1_length_InvokeMethod(1741_0_length_Return) → 2400_0_length_Return(2)
1702_1_length_InvokeMethod(2393_0_length_Return(x0)) → 2408_0_length_Return(+(1, x0)) | >(x0, 0)
1702_1_length_InvokeMethod(2400_0_length_Return(x0)) → 2408_0_length_Return(+(1, x0)) | >(x0, 0)
1702_1_length_InvokeMethod(2408_0_length_Return(x0)) → 2408_0_length_Return(+(1, x0)) | >(x0, 0)
1702_1_length_InvokeMethod(1732_0_length_Return) → 2408_0_length_Return(2)
1702_1_length_InvokeMethod(1737_0_length_Return) → 2408_0_length_Return(2)
1702_1_length_InvokeMethod(1741_0_length_Return) → 2408_0_length_Return(2)
4359_1_test_InvokeMethod(1815_0_test_Return, -1) → 4428_0_test_Return
4359_1_test_InvokeMethod(4428_0_test_Return, x1) → 4428_0_test_Return
4266_0_bubble_NULL(NULL) → 4271_0_bubble_Return
4266_0_bubble_NULL(java.lang.Object(List(x0))) → 4330_0_bubble_NONNULL(java.lang.Object(List(x0)))
4266_0_bubble_NULL(java.lang.Object(List(EOC))) → 4330_0_bubble_NONNULL(java.lang.Object(List(EOC)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4345_0_bubble_Return(java.lang.Object(List(x0)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4548_1_bubble_InvokeMethod(4266_0_bubble_NULL(java.lang.Object(List(EOC))))
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(EOC)))) → 4556_0_bubble_Return
4548_1_bubble_InvokeMethod(4556_0_bubble_Return) → 4577_0_bubble_Return
4548_1_bubble_InvokeMethod(4577_0_bubble_Return) → 4577_0_bubble_Return

Performed bisimulation on rules. Used the following equivalence classes: {[2393_0_length_Return_1, 2400_0_length_Return_1, 2408_0_length_Return_1]=2393_0_length_Return_1, [1690_1_length_InvokeMethod_1, 1697_1_length_InvokeMethod_1, 1702_1_length_InvokeMethod_1]=1690_1_length_InvokeMethod_1, [1635_0_length_Return, 1732_0_length_Return, 1737_0_length_Return, 1741_0_length_Return, 1815_0_test_Return, 4428_0_test_Return, 4271_0_bubble_Return, EOC, 4556_0_bubble_Return, 4577_0_bubble_Return]=1635_0_length_Return, [Cond_1690_1_length_InvokeMethod_2, Cond_1690_1_length_InvokeMethod1_2, Cond_1690_1_length_InvokeMethod2_2, Cond_1697_1_length_InvokeMethod_2, Cond_1697_1_length_InvokeMethod1_2, Cond_1697_1_length_InvokeMethod2_2, Cond_1702_1_length_InvokeMethod_2, Cond_1702_1_length_InvokeMethod1_2, Cond_1702_1_length_InvokeMethod2_2]=Cond_1690_1_length_InvokeMethod_2}

Finished conversion. Obtained 11 rules for P and 17 rules for R. System has predefined symbols.

P rules:
1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2, NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2, 0), <(x2, 4)), 1635_0_length_Return, x2, NULL, x3)
COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2, NULL, x3) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3), -(x2, 1), x3)
1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0), x2, java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2, 0, x0)
1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2, java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2, 0, 1)
4320_0_TEST_GE(x1, x3, x2) → COND_4320_0_TEST_GE(&&(&&(>=(x3, x2), >(x1, 0)), <(x1, 4)), x1, x3, x2, x4)
COND_4320_0_TEST_GE(TRUE, x1, x3, x2, x4) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4), -(x1, 1), x4)
4320_0_TEST_GE(x1, x3, x2) → COND_4320_0_TEST_GE1(&&(<(x3, x2), <(x1, 3)), x1, x3, x2, x4)
COND_4320_0_TEST_GE1(TRUE, x1, x3, x2, x4) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4), x1, x2, x3, x4)
4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1, x2, x3, NULL) → 4320_0_TEST_GE(x1, +(x3, 1), x2)
4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0))), x2, x3, x4, java.lang.Object(List(x0))) → 4320_0_TEST_GE(x2, +(x4, 1), x3)
4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1, x2, x3, x4) → 4320_0_TEST_GE(x1, +(x3, 1), x2)
R rules:
1627_0_length_NONNULL1635_0_length_Return
1627_0_length_NONNULL1690_1_length_InvokeMethod(1627_0_length_NONNULL)
1690_1_length_InvokeMethod(1635_0_length_Return) → 1635_0_length_Return
1690_1_length_InvokeMethod(2393_0_length_Return(x0)) → Cond_1690_1_length_InvokeMethod(>(x0, 0), 2393_0_length_Return(x0))
Cond_1690_1_length_InvokeMethod(TRUE, 2393_0_length_Return(x0)) → 2393_0_length_Return(+(1, x0))
1690_1_length_InvokeMethod(1635_0_length_Return) → 2393_0_length_Return(2)
4359_1_test_InvokeMethod(1635_0_length_Return, -1) → 1635_0_length_Return
4359_1_test_InvokeMethod(1635_0_length_Return, x1) → 1635_0_length_Return
4266_0_bubble_NULL(NULL) → 1635_0_length_Return
4266_0_bubble_NULL(java.lang.Object(List(x0))) → 4330_0_bubble_NONNULL(java.lang.Object(List(x0)))
4266_0_bubble_NULL(java.lang.Object(List(1635_0_length_Return))) → 4330_0_bubble_NONNULL(java.lang.Object(List(1635_0_length_Return)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4345_0_bubble_Return(java.lang.Object(List(x0)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4548_1_bubble_InvokeMethod(4266_0_bubble_NULL(java.lang.Object(List(1635_0_length_Return))))
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(1635_0_length_Return)))) → 1635_0_length_Return
4548_1_bubble_InvokeMethod(1635_0_length_Return) → 1635_0_length_Return

### (25) Obligation:

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

The following domains are used:

Integer, Boolean

The ITRS R consists of the following rules:
1627_0_length_NONNULL1635_0_length_Return
1627_0_length_NONNULL1690_1_length_InvokeMethod(1627_0_length_NONNULL)
1690_1_length_InvokeMethod(1635_0_length_Return) → 1635_0_length_Return
1690_1_length_InvokeMethod(2393_0_length_Return(x0)) → Cond_1690_1_length_InvokeMethod(x0 > 0, 2393_0_length_Return(x0))
Cond_1690_1_length_InvokeMethod(TRUE, 2393_0_length_Return(x0)) → 2393_0_length_Return(1 + x0)
1690_1_length_InvokeMethod(1635_0_length_Return) → 2393_0_length_Return(2)
4359_1_test_InvokeMethod(1635_0_length_Return, -1) → 1635_0_length_Return
4359_1_test_InvokeMethod(1635_0_length_Return, x1) → 1635_0_length_Return
4266_0_bubble_NULL(NULL) → 1635_0_length_Return
4266_0_bubble_NULL(java.lang.Object(List(x0))) → 4330_0_bubble_NONNULL(java.lang.Object(List(x0)))
4266_0_bubble_NULL(java.lang.Object(List(1635_0_length_Return))) → 4330_0_bubble_NONNULL(java.lang.Object(List(1635_0_length_Return)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4345_0_bubble_Return(java.lang.Object(List(x0)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4548_1_bubble_InvokeMethod(4266_0_bubble_NULL(java.lang.Object(List(1635_0_length_Return))))
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(1635_0_length_Return)))) → 1635_0_length_Return
4548_1_bubble_InvokeMethod(1635_0_length_Return) → 1635_0_length_Return

The integer pair graph contains the following rules and edges:
(0): 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL) → COND_1915_1_TEST_INVOKEMETHOD(x2[0] > 0 && x2[0] < 4, 1635_0_length_Return, x2[0], NULL, x3[0])
(1): COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), x2[1] - 1, x3[1])
(2): 1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[2], 0, x0[2])
(3): 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[3], 0, 1)
(4): 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(x3[4] >= x2[4] && x1[4] > 0 && x1[4] < 4, x1[4], x3[4], x2[4], x4[4])
(5): COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), x1[5] - 1, x4[5])
(6): 4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(x3[6] < x2[6] && x1[6] < 3, x1[6], x3[6], x2[6], x4[6])
(7): COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])
(8): 4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[8], x2[8], x3[8], NULL) → 4320_0_TEST_GE(x1[8], x3[8] + 1, x2[8])
(9): 4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x2[9], x3[9], x4[9], java.lang.Object(List(x0[9]))) → 4320_0_TEST_GE(x2[9], x4[9] + 1, x3[9])
(10): 4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[10], x2[10], x3[10], x4[10]) → 4320_0_TEST_GE(x1[10], x3[10] + 1, x2[10])

(0) -> (1), if (x2[0] > 0 && x2[0] < 4x2[0]* x2[1]x3[0]* x3[1])

(1) -> (0), if (1915_0_length_Load(x3[1]) →* 1635_0_length_Returnx2[1] - 1* x2[0]x3[1]* NULL)

(1) -> (2), if (1915_0_length_Load(x3[1]) →* 2393_0_length_Return(x0[2])∧x2[1] - 1* x2[2]x3[1]* java.lang.Object(List(1635_0_length_Return)))

(1) -> (3), if (1915_0_length_Load(x3[1]) →* 1635_0_length_Returnx2[1] - 1* x2[3]x3[1]* java.lang.Object(List(1635_0_length_Return)))

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

(2) -> (6), if (x2[2]* x1[6]0* x3[6]x0[2]* x2[6])

(3) -> (4), if (x2[3]* x1[4]0* x3[4]1* x2[4])

(3) -> (6), if (x2[3]* x1[6]0* x3[6]1* x2[6])

(4) -> (5), if (x3[4] >= x2[4] && x1[4] > 0 && x1[4] < 4x1[4]* x1[5]x3[4]* x3[5]x2[4]* x2[5]x4[4]* x4[5])

(5) -> (0), if (1915_0_length_Load(x4[5]) →* 1635_0_length_Returnx1[5] - 1* x2[0]x4[5]* NULL)

(5) -> (2), if (1915_0_length_Load(x4[5]) →* 2393_0_length_Return(x0[2])∧x1[5] - 1* x2[2]x4[5]* java.lang.Object(List(1635_0_length_Return)))

(5) -> (3), if (1915_0_length_Load(x4[5]) →* 1635_0_length_Returnx1[5] - 1* x2[3]x4[5]* java.lang.Object(List(1635_0_length_Return)))

(6) -> (7), if (x3[6] < x2[6] && x1[6] < 3x1[6]* x1[7]x3[6]* x3[7]x2[6]* x2[7]x4[6]* x4[7])

(7) -> (8), if (4356_0_bubble_Load(x4[7]) →* 1635_0_length_Returnx1[7]* x1[8]x2[7]* x2[8]x3[7]* x3[8]x4[7]* NULL)

(7) -> (9), if (4356_0_bubble_Load(x4[7]) →* 4345_0_bubble_Return(java.lang.Object(List(x0[9])))∧x1[7]* x2[9]x2[7]* x3[9]x3[7]* x4[9]x4[7]* java.lang.Object(List(x0[9])))

(7) -> (10), if (4356_0_bubble_Load(x4[7]) →* 1635_0_length_Returnx1[7]* x1[10]x2[7]* x2[10]x3[7]* x3[10]x4[7]* x4[10])

(8) -> (4), if (x1[8]* x1[4]x3[8] + 1* x3[4]x2[8]* x2[4])

(8) -> (6), if (x1[8]* x1[6]x3[8] + 1* x3[6]x2[8]* x2[6])

(9) -> (4), if (x2[9]* x1[4]x4[9] + 1* x3[4]x3[9]* x2[4])

(9) -> (6), if (x2[9]* x1[6]x4[9] + 1* x3[6]x3[9]* x2[6])

(10) -> (4), if (x1[10]* x1[4]x3[10] + 1* x3[4]x2[10]* x2[4])

(10) -> (6), if (x1[10]* x1[6]x3[10] + 1* x3[6]x2[10]* x2[6])

The set Q consists of the following terms:
1627_0_length_NONNULL
1690_1_length_InvokeMethod(1635_0_length_Return)
1690_1_length_InvokeMethod(2393_0_length_Return(x0))
Cond_1690_1_length_InvokeMethod(TRUE, 2393_0_length_Return(x0))
4359_1_test_InvokeMethod(1635_0_length_Return, x0)
4266_0_bubble_NULL(NULL)
4266_0_bubble_NULL(java.lang.Object(List(x0)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0)))
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(1635_0_length_Return))))
4548_1_bubble_InvokeMethod(1635_0_length_Return)

### (26) 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@6caed7f2 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 2 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 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2, NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2, 0), <(x2, 4)), 1635_0_length_Return, x2, NULL, x3) the following chains were created:
• We consider the chain 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0]), COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0]) which results in the following constraint:

(1)    (&&(>(x2[0], 0), <(x2[0], 4))=TRUEx2[0]=x2[1]x3[0]=x3[1]1915_0_length_Load(x3[1])=1635_0_length_Return-(x2[1], 1)=x2[0]1x3[1]=NULL1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0]1, NULL)≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0]1, NULL)≥COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1635_0_length_Return, x2[0]1, NULL, x3[0]1)∧(UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1635_0_length_Return, x2[0]1, NULL, x3[0]1)), ≥))

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

(2)    (NULL=x01915_0_length_Load(x0)=1635_0_length_Return>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), NULL)≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), NULL)≥COND_1915_1_TEST_INVOKEMETHOD(&&(>(-(x2[0], 1), 0), <(-(x2[0], 1), 4)), 1635_0_length_Return, -(x2[0], 1), NULL, x3[0]1)∧(UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1635_0_length_Return, x2[0]1, NULL, x3[0]1)), ≥))

We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x0)=1635_0_length_Return which results in the following new constraint:

(3)    (1627_0_length_NONNULL=1635_0_length_ReturnNULL=x1>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), NULL)≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), NULL)≥COND_1915_1_TEST_INVOKEMETHOD(&&(>(-(x2[0], 1), 0), <(-(x2[0], 1), 4)), 1635_0_length_Return, -(x2[0], 1), NULL, x3[0]1)∧(UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1635_0_length_Return, x2[0]1, NULL, x3[0]1)), ≥))

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

(4)    (1627_0_length_NONNULL=1635_0_length_Return>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), NULL)≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), NULL)≥COND_1915_1_TEST_INVOKEMETHOD(&&(>(-(x2[0], 1), 0), <(-(x2[0], 1), 4)), 1635_0_length_Return, -(x2[0], 1), NULL, x3[0]1)∧(UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1635_0_length_Return, x2[0]1, NULL, x3[0]1)), ≥))

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

(5)    (x2[0] + [-1] ≥ 0∧[3] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1635_0_length_Return, x2[0]1, NULL, x3[0]1)), ≥)∧[(-2)bni_37 + (-1)Bound*bni_37] + [bni_37]x2[0] ≥ 0∧[(-1)bso_38] ≥ 0)

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

(6)    (x2[0] + [-1] ≥ 0∧[3] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1635_0_length_Return, x2[0]1, NULL, x3[0]1)), ≥)∧[(-2)bni_37 + (-1)Bound*bni_37] + [bni_37]x2[0] ≥ 0∧[(-1)bso_38] ≥ 0)

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

(7)    (x2[0] + [-1] ≥ 0∧[3] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1635_0_length_Return, x2[0]1, NULL, x3[0]1)), ≥)∧[(-2)bni_37 + (-1)Bound*bni_37] + [bni_37]x2[0] ≥ 0∧[(-1)bso_38] ≥ 0)

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

(8)    (x2[0] ≥ 0∧[2] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1635_0_length_Return, x2[0]1, NULL, x3[0]1)), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [bni_37]x2[0] ≥ 0∧[(-1)bso_38] ≥ 0)

• We consider the chain 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]), COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0]) which results in the following constraint:

(9)    (&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4))=TRUEx1[4]=x1[5]x3[4]=x3[5]x2[4]=x2[5]x4[4]=x4[5]1915_0_length_Load(x4[5])=1635_0_length_Return-(x1[5], 1)=x2[0]x4[5]=NULL1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL)≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL)≥COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])∧(UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])), ≥))

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

(10)    (NULL=x21915_0_length_Load(x2)=1635_0_length_Return<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), NULL)≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), NULL)≥COND_1915_1_TEST_INVOKEMETHOD(&&(>(-(x1[4], 1), 0), <(-(x1[4], 1), 4)), 1635_0_length_Return, -(x1[4], 1), NULL, x3[0])∧(UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])), ≥))

We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x2)=1635_0_length_Return which results in the following new constraint:

(11)    (1627_0_length_NONNULL=1635_0_length_ReturnNULL=x3<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), NULL)≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), NULL)≥COND_1915_1_TEST_INVOKEMETHOD(&&(>(-(x1[4], 1), 0), <(-(x1[4], 1), 4)), 1635_0_length_Return, -(x1[4], 1), NULL, x3[0])∧(UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])), ≥))

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

(12)    (1627_0_length_NONNULL=1635_0_length_Return<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), NULL)≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), NULL)≥COND_1915_1_TEST_INVOKEMETHOD(&&(>(-(x1[4], 1), 0), <(-(x1[4], 1), 4)), 1635_0_length_Return, -(x1[4], 1), NULL, x3[0])∧(UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])), ≥))

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

(13)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])), ≥)∧[(-2)bni_37 + (-1)Bound*bni_37] + [bni_37]x1[4] ≥ 0∧[(-1)bso_38] ≥ 0)

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

(14)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])), ≥)∧[(-2)bni_37 + (-1)Bound*bni_37] + [bni_37]x1[4] ≥ 0∧[(-1)bso_38] ≥ 0)

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

(15)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])), ≥)∧[(-2)bni_37 + (-1)Bound*bni_37] + [bni_37]x1[4] ≥ 0∧[(-1)bso_38] ≥ 0)

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

(16)    ([2] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] ≥ 0 ⇒ (UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [bni_37]x1[4] ≥ 0∧[(-1)bso_38] ≥ 0)

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

(17)    ([2] + [-1]x1[4] ≥ 0∧x1[4] ≥ 0 ⇒ (UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [bni_37]x1[4] ≥ 0∧[(-1)bso_38] ≥ 0)

For Pair COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2, NULL, x3) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3), -(x2, 1), x3) the following chains were created:
• We consider the chain COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0]), COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1]) which results in the following constraint:

(18)    (1915_0_length_Load(x3[1])=1635_0_length_Return-(x2[1], 1)=x2[0]x3[1]=NULL&&(>(x2[0], 0), <(x2[0], 4))=TRUEx2[0]=x2[1]1x3[0]=x3[1]1COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1]1, NULL, x3[1]1)≥NonInfC∧COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1]1, NULL, x3[1]1)≥1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]1), -(x2[1]1, 1), x3[1]1)∧(UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]1), -(x2[1]1, 1), x3[1]1)), ≥))

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

(19)    (NULL=x41915_0_length_Load(x4)=1635_0_length_Return>(-(x2[1], 1), 0)=TRUE<(-(x2[1], 1), 4)=TRUECOND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x2[1], 1), NULL, x3[0])≥NonInfC∧COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x2[1], 1), NULL, x3[0])≥1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[0]), -(-(x2[1], 1), 1), x3[0])∧(UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]1), -(x2[1]1, 1), x3[1]1)), ≥))

We simplified constraint (19) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x4)=1635_0_length_Return which results in the following new constraint:

(20)    (1627_0_length_NONNULL=1635_0_length_ReturnNULL=x5>(-(x2[1], 1), 0)=TRUE<(-(x2[1], 1), 4)=TRUECOND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x2[1], 1), NULL, x3[0])≥NonInfC∧COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x2[1], 1), NULL, x3[0])≥1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[0]), -(-(x2[1], 1), 1), x3[0])∧(UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]1), -(x2[1]1, 1), x3[1]1)), ≥))

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

(21)    (1627_0_length_NONNULL=1635_0_length_Return>(-(x2[1], 1), 0)=TRUE<(-(x2[1], 1), 4)=TRUECOND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x2[1], 1), NULL, x3[0])≥NonInfC∧COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x2[1], 1), NULL, x3[0])≥1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[0]), -(-(x2[1], 1), 1), x3[0])∧(UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]1), -(x2[1]1, 1), x3[1]1)), ≥))

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

(22)    (x2[1] + [-2] ≥ 0∧[4] + [-1]x2[1] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]1), -(x2[1]1, 1), x3[1]1)), ≥)∧[(-2)bni_39 + (-1)Bound*bni_39] + [bni_39]x2[1] ≥ 0∧[1 + (-1)bso_40] ≥ 0)

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

(23)    (x2[1] + [-2] ≥ 0∧[4] + [-1]x2[1] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]1), -(x2[1]1, 1), x3[1]1)), ≥)∧[(-2)bni_39 + (-1)Bound*bni_39] + [bni_39]x2[1] ≥ 0∧[1 + (-1)bso_40] ≥ 0)

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

(24)    (x2[1] + [-2] ≥ 0∧[4] + [-1]x2[1] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]1), -(x2[1]1, 1), x3[1]1)), ≥)∧[(-2)bni_39 + (-1)Bound*bni_39] + [bni_39]x2[1] ≥ 0∧[1 + (-1)bso_40] ≥ 0)

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

(25)    (x2[1] ≥ 0∧[2] + [-1]x2[1] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]1), -(x2[1]1, 1), x3[1]1)), ≥)∧[(-1)Bound*bni_39] + [bni_39]x2[1] ≥ 0∧[1 + (-1)bso_40] ≥ 0)

• We consider the chain COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0]), COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1]) which results in the following constraint:

(26)    (1915_0_length_Load(x4[5])=1635_0_length_Return-(x1[5], 1)=x2[0]x4[5]=NULL&&(>(x2[0], 0), <(x2[0], 4))=TRUEx2[0]=x2[1]x3[0]=x3[1]COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1])≥NonInfC∧COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1])≥1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])∧(UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])), ≥))

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

(27)    (NULL=x61915_0_length_Load(x6)=1635_0_length_Return>(-(x1[5], 1), 0)=TRUE<(-(x1[5], 1), 4)=TRUECOND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x1[5], 1), NULL, x3[0])≥NonInfC∧COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x1[5], 1), NULL, x3[0])≥1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[0]), -(-(x1[5], 1), 1), x3[0])∧(UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])), ≥))

We simplified constraint (27) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x6)=1635_0_length_Return which results in the following new constraint:

(28)    (1627_0_length_NONNULL=1635_0_length_ReturnNULL=x7>(-(x1[5], 1), 0)=TRUE<(-(x1[5], 1), 4)=TRUECOND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x1[5], 1), NULL, x3[0])≥NonInfC∧COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x1[5], 1), NULL, x3[0])≥1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[0]), -(-(x1[5], 1), 1), x3[0])∧(UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])), ≥))

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

(29)    (1627_0_length_NONNULL=1635_0_length_Return>(-(x1[5], 1), 0)=TRUE<(-(x1[5], 1), 4)=TRUECOND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x1[5], 1), NULL, x3[0])≥NonInfC∧COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, -(x1[5], 1), NULL, x3[0])≥1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[0]), -(-(x1[5], 1), 1), x3[0])∧(UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])), ≥))

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

(30)    (x1[5] + [-2] ≥ 0∧[4] + [-1]x1[5] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])), ≥)∧[(-2)bni_39 + (-1)Bound*bni_39] + [bni_39]x1[5] ≥ 0∧[1 + (-1)bso_40] ≥ 0)

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

(31)    (x1[5] + [-2] ≥ 0∧[4] + [-1]x1[5] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])), ≥)∧[(-2)bni_39 + (-1)Bound*bni_39] + [bni_39]x1[5] ≥ 0∧[1 + (-1)bso_40] ≥ 0)

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

(32)    (x1[5] + [-2] ≥ 0∧[4] + [-1]x1[5] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])), ≥)∧[(-2)bni_39 + (-1)Bound*bni_39] + [bni_39]x1[5] ≥ 0∧[1 + (-1)bso_40] ≥ 0)

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

(33)    (x1[5] ≥ 0∧[2] + [-1]x1[5] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])), ≥)∧[(-1)Bound*bni_39] + [bni_39]x1[5] ≥ 0∧[1 + (-1)bso_40] ≥ 0)

For Pair 1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0), x2, java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2, 0, x0) the following chains were created:
• We consider the chain 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0]), COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[2], 0, x0[2]) which results in the following constraint:

(34)    (&&(>(x2[0], 0), <(x2[0], 4))=TRUEx2[0]=x2[1]x3[0]=x3[1]1915_0_length_Load(x3[1])=2393_0_length_Return(x0[2])∧-(x2[1], 1)=x2[2]x3[1]=java.lang.Object(List(1635_0_length_Return)) ⇒ 1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(x2[2], 0, x0[2])∧(UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥))

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

(35)    (java.lang.Object(List(1635_0_length_Return))=x81915_0_length_Load(x8)=2393_0_length_Return(x0[2])∧>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x2[0], 1), 0, x0[2])∧(UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥))

We simplified constraint (35) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x8)=2393_0_length_Return(x0[2]) which results in the following new constraint:

(36)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2])∧java.lang.Object(List(1635_0_length_Return))=x9>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x2[0], 1), 0, x0[2])∧(UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥))

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

(37)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2])∧>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x2[0], 1), 0, x0[2])∧(UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥))

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

(38)    (x2[0] + [-1] ≥ 0∧[3] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-2)bni_41 + (-1)Bound*bni_41] + [bni_41]x2[0] ≥ 0∧[(-1)bso_42] ≥ 0)

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

(39)    (x2[0] + [-1] ≥ 0∧[3] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-2)bni_41 + (-1)Bound*bni_41] + [bni_41]x2[0] ≥ 0∧[(-1)bso_42] ≥ 0)

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

(40)    (x2[0] + [-1] ≥ 0∧[3] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-2)bni_41 + (-1)Bound*bni_41] + [bni_41]x2[0] ≥ 0∧[(-1)bso_42] ≥ 0)

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

(41)    (x2[0] + [-1] ≥ 0∧[3] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-2)bni_41 + (-1)Bound*bni_41] + [bni_41]x2[0] ≥ 0∧0 = 0∧[(-1)bso_42] ≥ 0)

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

(42)    (x2[0] ≥ 0∧[2] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-1)bni_41 + (-1)Bound*bni_41] + [bni_41]x2[0] ≥ 0∧0 = 0∧[(-1)bso_42] ≥ 0)

• We consider the chain 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]), COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[2], 0, x0[2]) which results in the following constraint:

(43)    (&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4))=TRUEx1[4]=x1[5]x3[4]=x3[5]x2[4]=x2[5]x4[4]=x4[5]1915_0_length_Load(x4[5])=2393_0_length_Return(x0[2])∧-(x1[5], 1)=x2[2]x4[5]=java.lang.Object(List(1635_0_length_Return)) ⇒ 1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(x2[2], 0, x0[2])∧(UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥))

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

(44)    (java.lang.Object(List(1635_0_length_Return))=x101915_0_length_Load(x10)=2393_0_length_Return(x0[2])∧<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x1[4], 1), 0, x0[2])∧(UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥))

We simplified constraint (44) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x10)=2393_0_length_Return(x0[2]) which results in the following new constraint:

(45)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2])∧java.lang.Object(List(1635_0_length_Return))=x11<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x1[4], 1), 0, x0[2])∧(UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥))

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

(46)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2])∧<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x1[4], 1), 0, x0[2])∧(UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥))

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

(47)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-2)bni_41 + (-1)Bound*bni_41] + [bni_41]x1[4] ≥ 0∧[(-1)bso_42] ≥ 0)

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

(48)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-2)bni_41 + (-1)Bound*bni_41] + [bni_41]x1[4] ≥ 0∧[(-1)bso_42] ≥ 0)

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

(49)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-2)bni_41 + (-1)Bound*bni_41] + [bni_41]x1[4] ≥ 0∧[(-1)bso_42] ≥ 0)

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

(50)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-2)bni_41 + (-1)Bound*bni_41] + [bni_41]x1[4] ≥ 0∧0 = 0∧[(-1)bso_42] ≥ 0)

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

(51)    ([2] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-1)bni_41 + (-1)Bound*bni_41] + [bni_41]x1[4] ≥ 0∧0 = 0∧[(-1)bso_42] ≥ 0)

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

(52)    ([2] + [-1]x1[4] ≥ 0∧x1[4] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-1)bni_41 + (-1)Bound*bni_41] + [bni_41]x1[4] ≥ 0∧0 = 0∧[(-1)bso_42] ≥ 0)

For Pair 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2, java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2, 0, 1) the following chains were created:
• We consider the chain 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0]), COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[3], 0, 1) which results in the following constraint:

(53)    (&&(>(x2[0], 0), <(x2[0], 4))=TRUEx2[0]=x2[1]x3[0]=x3[1]1915_0_length_Load(x3[1])=1635_0_length_Return-(x2[1], 1)=x2[3]x3[1]=java.lang.Object(List(1635_0_length_Return)) ⇒ 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(x2[3], 0, 1)∧(UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥))

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

(54)    (java.lang.Object(List(1635_0_length_Return))=x121915_0_length_Load(x12)=1635_0_length_Return>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x2[0], 1), 0, 1)∧(UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥))

We simplified constraint (54) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x12)=1635_0_length_Return which results in the following new constraint:

(55)    (1627_0_length_NONNULL=1635_0_length_Returnjava.lang.Object(List(1635_0_length_Return))=x13>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x2[0], 1), 0, 1)∧(UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥))

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

(56)    (1627_0_length_NONNULL=1635_0_length_Return>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x2[0], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x2[0], 1), 0, 1)∧(UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥))

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

(57)    (x2[0] + [-1] ≥ 0∧[3] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥)∧[(-2)bni_43 + (-1)Bound*bni_43] + [bni_43]x2[0] ≥ 0∧[(-1)bso_44] ≥ 0)

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

(58)    (x2[0] + [-1] ≥ 0∧[3] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥)∧[(-2)bni_43 + (-1)Bound*bni_43] + [bni_43]x2[0] ≥ 0∧[(-1)bso_44] ≥ 0)

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

(59)    (x2[0] + [-1] ≥ 0∧[3] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥)∧[(-2)bni_43 + (-1)Bound*bni_43] + [bni_43]x2[0] ≥ 0∧[(-1)bso_44] ≥ 0)

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

(60)    (x2[0] ≥ 0∧[2] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [bni_43]x2[0] ≥ 0∧[(-1)bso_44] ≥ 0)

• We consider the chain 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]), COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[3], 0, 1) which results in the following constraint:

(61)    (&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4))=TRUEx1[4]=x1[5]x3[4]=x3[5]x2[4]=x2[5]x4[4]=x4[5]1915_0_length_Load(x4[5])=1635_0_length_Return-(x1[5], 1)=x2[3]x4[5]=java.lang.Object(List(1635_0_length_Return)) ⇒ 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(x2[3], 0, 1)∧(UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥))

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

(62)    (java.lang.Object(List(1635_0_length_Return))=x141915_0_length_Load(x14)=1635_0_length_Return<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x1[4], 1), 0, 1)∧(UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥))

We simplified constraint (62) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x14)=1635_0_length_Return which results in the following new constraint:

(63)    (1627_0_length_NONNULL=1635_0_length_Returnjava.lang.Object(List(1635_0_length_Return))=x15<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x1[4], 1), 0, 1)∧(UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥))

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

(64)    (1627_0_length_NONNULL=1635_0_length_Return<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥NonInfC∧1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, -(x1[4], 1), java.lang.Object(List(1635_0_length_Return)))≥4320_0_TEST_GE(-(x1[4], 1), 0, 1)∧(UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥))

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

(65)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥)∧[(-2)bni_43 + (-1)Bound*bni_43] + [bni_43]x1[4] ≥ 0∧[(-1)bso_44] ≥ 0)

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

(66)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥)∧[(-2)bni_43 + (-1)Bound*bni_43] + [bni_43]x1[4] ≥ 0∧[(-1)bso_44] ≥ 0)

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

(67)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥)∧[(-2)bni_43 + (-1)Bound*bni_43] + [bni_43]x1[4] ≥ 0∧[(-1)bso_44] ≥ 0)

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

(68)    ([2] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [bni_43]x1[4] ≥ 0∧[(-1)bso_44] ≥ 0)

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

(69)    ([2] + [-1]x1[4] ≥ 0∧x1[4] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [bni_43]x1[4] ≥ 0∧[(-1)bso_44] ≥ 0)

For Pair 4320_0_TEST_GE(x1, x3, x2) → COND_4320_0_TEST_GE(&&(&&(>=(x3, x2), >(x1, 0)), <(x1, 4)), x1, x3, x2, x4) the following chains were created:
• We consider the chain COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[2], 0, x0[2]), 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]) which results in the following constraint:

(70)    (1915_0_length_Load(x3[1])=2393_0_length_Return(x0[2])∧-(x2[1], 1)=x2[2]x3[1]=java.lang.Object(List(1635_0_length_Return))∧x2[2]=x1[4]0=x3[4]x0[2]=x2[4]4320_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4320_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(71)    (java.lang.Object(List(1635_0_length_Return))=x161915_0_length_Load(x16)=2393_0_length_Return(x0[2]) ⇒ 4320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4320_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

We simplified constraint (71) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x16)=2393_0_length_Return(x0[2]) which results in the following new constraint:

(72)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2])∧java.lang.Object(List(1635_0_length_Return))=x174320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4320_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(73)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2]) ⇒ 4320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4320_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(74)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x2[1] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(75)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x2[1] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(76)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x2[1] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(77)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧0 = 0∧[bni_45] = 0∧[(-2)bni_45 + (-1)Bound*bni_45] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_46] ≥ 0)

• We consider the chain COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[3], 0, 1), 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]) which results in the following constraint:

(78)    (1915_0_length_Load(x3[1])=1635_0_length_Return-(x2[1], 1)=x2[3]x3[1]=java.lang.Object(List(1635_0_length_Return))∧x2[3]=x1[4]0=x3[4]1=x2[4]4320_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4320_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(79)    (java.lang.Object(List(1635_0_length_Return))=x181915_0_length_Load(x18)=1635_0_length_Return4320_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4320_0_TEST_GE(&&(&&(>=(0, 1), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, 1, x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

We simplified constraint (79) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x18)=1635_0_length_Return which results in the following new constraint:

(80)    (1627_0_length_NONNULL=1635_0_length_Returnjava.lang.Object(List(1635_0_length_Return))=x194320_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4320_0_TEST_GE(&&(&&(>=(0, 1), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, 1, x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(81)    (1627_0_length_NONNULL=1635_0_length_Return4320_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4320_0_TEST_GE(&&(&&(>=(0, 1), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, 1, x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(82)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x2[1] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(83)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x2[1] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(84)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x2[1] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(85)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[bni_45] = 0∧[(-2)bni_45 + (-1)Bound*bni_45] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)

• We consider the chain COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[8], x2[8], x3[8], NULL) → 4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8]), 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]) which results in the following constraint:

(86)    (4356_0_bubble_Load(x4[7])=1635_0_length_Returnx1[7]=x1[8]x2[7]=x2[8]x3[7]=x3[8]x4[7]=NULLx1[8]=x1[4]+(x3[8], 1)=x3[4]x2[8]=x2[4]4320_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4320_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(87)    (NULL=x204356_0_bubble_Load(x20)=1635_0_length_Return4320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4320_0_TEST_GE(&&(&&(>=(+(x3[8], 1), x2[7]), >(x1[7], 0)), <(x1[7], 4)), x1[7], +(x3[8], 1), x2[7], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

We simplified constraint (87) using rule (V) (with possible (I) afterwards) using induction on 4356_0_bubble_Load(x20)=1635_0_length_Return which results in the following new constraint:

(88)    (4266_0_bubble_NULL(x21)=1635_0_length_ReturnNULL=x214320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4320_0_TEST_GE(&&(&&(>=(+(x3[8], 1), x2[7]), >(x1[7], 0)), <(x1[7], 4)), x1[7], +(x3[8], 1), x2[7], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(89)    (4266_0_bubble_NULL(NULL)=1635_0_length_Return4320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4320_0_TEST_GE(&&(&&(>=(+(x3[8], 1), x2[7]), >(x1[7], 0)), <(x1[7], 4)), x1[7], +(x3[8], 1), x2[7], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(90)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[7] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(91)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[7] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(92)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[7] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(93)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧0 = 0∧0 = 0∧[bni_45] = 0∧[(-1)bni_45 + (-1)Bound*bni_45] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_46] ≥ 0)

• We consider the chain COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x2[9], x3[9], x4[9], java.lang.Object(List(x0[9]))) → 4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9]), 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]) which results in the following constraint:

(94)    (4356_0_bubble_Load(x4[7])=4345_0_bubble_Return(java.lang.Object(List(x0[9])))∧x1[7]=x2[9]x2[7]=x3[9]x3[7]=x4[9]x4[7]=java.lang.Object(List(x0[9]))∧x2[9]=x1[4]+(x4[9], 1)=x3[4]x3[9]=x2[4]4320_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4320_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(95)    (java.lang.Object(List(x0[9]))=x224356_0_bubble_Load(x22)=4345_0_bubble_Return(java.lang.Object(List(x0[9]))) ⇒ 4320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4320_0_TEST_GE(&&(&&(>=(+(x4[9], 1), x2[7]), >(x1[7], 0)), <(x1[7], 4)), x1[7], +(x4[9], 1), x2[7], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

We simplified constraint (95) using rule (V) (with possible (I) afterwards) using induction on 4356_0_bubble_Load(x22)=4345_0_bubble_Return(java.lang.Object(List(x0[9]))) which results in the following new constraint:

(96)    (4266_0_bubble_NULL(x23)=4345_0_bubble_Return(java.lang.Object(List(x0[9])))∧java.lang.Object(List(x0[9]))=x234320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4320_0_TEST_GE(&&(&&(>=(+(x4[9], 1), x2[7]), >(x1[7], 0)), <(x1[7], 4)), x1[7], +(x4[9], 1), x2[7], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

We simplified constraint (96) using rule (III) which results in the following new constraint:

(97)    (4266_0_bubble_NULL(java.lang.Object(List(x0[9])))=4345_0_bubble_Return(java.lang.Object(List(x0[9]))) ⇒ 4320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4320_0_TEST_GE(&&(&&(>=(+(x4[9], 1), x2[7]), >(x1[7], 0)), <(x1[7], 4)), x1[7], +(x4[9], 1), x2[7], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(98)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[7] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(99)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[7] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(100)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[7] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(101)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧0 = 0∧0 = 0∧[bni_45] = 0∧[(-1)bni_45 + (-1)Bound*bni_45] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_46] ≥ 0)

• We consider the chain COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[10], x2[10], x3[10], x4[10]) → 4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10]), 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]) which results in the following constraint:

(102)    (4356_0_bubble_Load(x4[7])=1635_0_length_Returnx1[7]=x1[10]x2[7]=x2[10]x3[7]=x3[10]x4[7]=x4[10]x1[10]=x1[4]+(x3[10], 1)=x3[4]x2[10]=x2[4]4320_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4320_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(103)    (4356_0_bubble_Load(x4[7])=1635_0_length_Return4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥COND_4320_0_TEST_GE(&&(&&(>=(+(x3[10], 1), x2[7]), >(x1[7], 0)), <(x1[7], 4)), x1[7], +(x3[10], 1), x2[7], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

We simplified constraint (103) using rule (V) (with possible (I) afterwards) using induction on 4356_0_bubble_Load(x4[7])=1635_0_length_Return which results in the following new constraint:

(104)    (4266_0_bubble_NULL(x24)=1635_0_length_Return4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥COND_4320_0_TEST_GE(&&(&&(>=(+(x3[10], 1), x2[7]), >(x1[7], 0)), <(x1[7], 4)), x1[7], +(x3[10], 1), x2[7], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(105)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[7] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(106)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[7] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(107)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-1)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[7] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(108)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧0 = 0∧0 = 0∧[bni_45] = 0∧[(-1)bni_45 + (-1)Bound*bni_45] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_46] ≥ 0)

• We consider the chain COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[2], 0, x0[2]), 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]) which results in the following constraint:

(109)    (1915_0_length_Load(x4[5])=2393_0_length_Return(x0[2])∧-(x1[5], 1)=x2[2]x4[5]=java.lang.Object(List(1635_0_length_Return))∧x2[2]=x1[4]0=x3[4]x0[2]=x2[4]4320_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4320_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(110)    (java.lang.Object(List(1635_0_length_Return))=x251915_0_length_Load(x25)=2393_0_length_Return(x0[2]) ⇒ 4320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4320_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

We simplified constraint (110) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x25)=2393_0_length_Return(x0[2]) which results in the following new constraint:

(111)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2])∧java.lang.Object(List(1635_0_length_Return))=x264320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4320_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(112)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2]) ⇒ 4320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4320_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(113)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[5] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(114)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[5] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(115)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[5] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(116)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧0 = 0∧[bni_45] = 0∧[(-2)bni_45 + (-1)Bound*bni_45] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_46] ≥ 0)

• We consider the chain COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[3], 0, 1), 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]) which results in the following constraint:

(117)    (1915_0_length_Load(x4[5])=1635_0_length_Return-(x1[5], 1)=x2[3]x4[5]=java.lang.Object(List(1635_0_length_Return))∧x2[3]=x1[4]0=x3[4]1=x2[4]4320_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4320_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(118)    (java.lang.Object(List(1635_0_length_Return))=x271915_0_length_Load(x27)=1635_0_length_Return4320_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4320_0_TEST_GE(&&(&&(>=(0, 1), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, 1, x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

We simplified constraint (118) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x27)=1635_0_length_Return which results in the following new constraint:

(119)    (1627_0_length_NONNULL=1635_0_length_Returnjava.lang.Object(List(1635_0_length_Return))=x284320_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4320_0_TEST_GE(&&(&&(>=(0, 1), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, 1, x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(120)    (1627_0_length_NONNULL=1635_0_length_Return4320_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4320_0_TEST_GE(&&(&&(>=(0, 1), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, 1, x4[4])∧(UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥))

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

(121)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[5] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(122)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[5] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(123)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[(-2)bni_45 + (-1)Bound*bni_45] + [bni_45]x1[5] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(124)    ((UIncreasing(COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])), ≥)∧[bni_45] = 0∧[(-2)bni_45 + (-1)Bound*bni_45] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)

For Pair COND_4320_0_TEST_GE(TRUE, x1, x3, x2, x4) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4), -(x1, 1), x4) the following chains were created:
• We consider the chain 4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]), COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5]) which results in the following constraint:

(125)    (&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4))=TRUEx1[4]=x1[5]x3[4]=x3[5]x2[4]=x2[5]x4[4]=x4[5]COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5])≥NonInfC∧COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5])≥1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])∧(UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])), ≥))

We simplified constraint (125) using rules (III), (IDP_BOOLEAN) which results in the following new constraint:

(126)    (<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUECOND_4320_0_TEST_GE(TRUE, x1[4], x3[4], x2[4], x4[4])≥NonInfC∧COND_4320_0_TEST_GE(TRUE, x1[4], x3[4], x2[4], x4[4])≥1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[4]), -(x1[4], 1), x4[4])∧(UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])), ≥))

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

(127)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])), ≥)∧[(-1)bni_47 + (-1)Bound*bni_47] + [bni_47]x1[4] ≥ 0∧[1 + (-1)bso_48] ≥ 0)

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

(128)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])), ≥)∧[(-1)bni_47 + (-1)Bound*bni_47] + [bni_47]x1[4] ≥ 0∧[1 + (-1)bso_48] ≥ 0)

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

(129)    ([3] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] + [-1] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])), ≥)∧[(-1)bni_47 + (-1)Bound*bni_47] + [bni_47]x1[4] ≥ 0∧[1 + (-1)bso_48] ≥ 0)

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

(130)    ([2] + [-1]x1[4] ≥ 0∧x3[4] + [-1]x2[4] ≥ 0∧x1[4] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])), ≥)∧[(-1)Bound*bni_47] + [bni_47]x1[4] ≥ 0∧[1 + (-1)bso_48] ≥ 0)

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

(131)    ([2] + [-1]x1[4] ≥ 0∧x3[4] ≥ 0∧x1[4] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])), ≥)∧[(-1)Bound*bni_47] + [bni_47]x1[4] ≥ 0∧[1 + (-1)bso_48] ≥ 0)

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

(132)    ([2] + [-1]x1[4] ≥ 0∧x3[4] ≥ 0∧x1[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])), ≥)∧[(-1)Bound*bni_47] + [bni_47]x1[4] ≥ 0∧[1 + (-1)bso_48] ≥ 0)

(133)    ([2] + [-1]x1[4] ≥ 0∧x3[4] ≥ 0∧x1[4] ≥ 0∧x2[4] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])), ≥)∧[(-1)Bound*bni_47] + [bni_47]x1[4] ≥ 0∧[1 + (-1)bso_48] ≥ 0)

For Pair 4320_0_TEST_GE(x1, x3, x2) → COND_4320_0_TEST_GE1(&&(<(x3, x2), <(x1, 3)), x1, x3, x2, x4) the following chains were created:
• We consider the chain COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[2], 0, x0[2]), 4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6]) which results in the following constraint:

(134)    (1915_0_length_Load(x3[1])=2393_0_length_Return(x0[2])∧-(x2[1], 1)=x2[2]x3[1]=java.lang.Object(List(1635_0_length_Return))∧x2[2]=x1[6]0=x3[6]x0[2]=x2[6]4320_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4320_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(135)    (java.lang.Object(List(1635_0_length_Return))=x291915_0_length_Load(x29)=2393_0_length_Return(x0[2]) ⇒ 4320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4320_0_TEST_GE1(&&(<(0, x0[2]), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

We simplified constraint (135) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x29)=2393_0_length_Return(x0[2]) which results in the following new constraint:

(136)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2])∧java.lang.Object(List(1635_0_length_Return))=x304320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4320_0_TEST_GE1(&&(<(0, x0[2]), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(137)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2]) ⇒ 4320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4320_0_TEST_GE1(&&(<(0, x0[2]), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(138)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x2[1] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(139)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x2[1] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(140)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x2[1] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(141)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧0 = 0∧[bni_49] = 0∧[(-2)bni_49 + (-1)Bound*bni_49] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_50] ≥ 0)

• We consider the chain COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[3], 0, 1), 4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6]) which results in the following constraint:

(142)    (1915_0_length_Load(x3[1])=1635_0_length_Return-(x2[1], 1)=x2[3]x3[1]=java.lang.Object(List(1635_0_length_Return))∧x2[3]=x1[6]0=x3[6]1=x2[6]4320_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4320_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(143)    (java.lang.Object(List(1635_0_length_Return))=x311915_0_length_Load(x31)=1635_0_length_Return4320_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4320_0_TEST_GE1(&&(<(0, 1), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, 1, x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

We simplified constraint (143) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x31)=1635_0_length_Return which results in the following new constraint:

(144)    (1627_0_length_NONNULL=1635_0_length_Returnjava.lang.Object(List(1635_0_length_Return))=x324320_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4320_0_TEST_GE1(&&(<(0, 1), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, 1, x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(145)    (1627_0_length_NONNULL=1635_0_length_Return4320_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4320_0_TEST_GE1(&&(<(0, 1), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, 1, x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(146)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x2[1] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(147)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x2[1] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(148)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x2[1] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(149)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[bni_49] = 0∧[(-2)bni_49 + (-1)Bound*bni_49] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)

• We consider the chain COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[8], x2[8], x3[8], NULL) → 4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8]), 4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6]) which results in the following constraint:

(150)    (4356_0_bubble_Load(x4[7])=1635_0_length_Returnx1[7]=x1[8]x2[7]=x2[8]x3[7]=x3[8]x4[7]=NULLx1[8]=x1[6]+(x3[8], 1)=x3[6]x2[8]=x2[6]4320_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4320_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(151)    (NULL=x334356_0_bubble_Load(x33)=1635_0_length_Return4320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4320_0_TEST_GE1(&&(<(+(x3[8], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[8], 1), x2[7], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

We simplified constraint (151) using rule (V) (with possible (I) afterwards) using induction on 4356_0_bubble_Load(x33)=1635_0_length_Return which results in the following new constraint:

(152)    (4266_0_bubble_NULL(x34)=1635_0_length_ReturnNULL=x344320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4320_0_TEST_GE1(&&(<(+(x3[8], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[8], 1), x2[7], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(153)    (4266_0_bubble_NULL(NULL)=1635_0_length_Return4320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4320_0_TEST_GE1(&&(<(+(x3[8], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[8], 1), x2[7], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(154)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[7] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(155)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[7] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(156)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[7] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(157)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧0 = 0∧0 = 0∧[bni_49] = 0∧[(-1)bni_49 + (-1)Bound*bni_49] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_50] ≥ 0)

• We consider the chain COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x2[9], x3[9], x4[9], java.lang.Object(List(x0[9]))) → 4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9]), 4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6]) which results in the following constraint:

(158)    (4356_0_bubble_Load(x4[7])=4345_0_bubble_Return(java.lang.Object(List(x0[9])))∧x1[7]=x2[9]x2[7]=x3[9]x3[7]=x4[9]x4[7]=java.lang.Object(List(x0[9]))∧x2[9]=x1[6]+(x4[9], 1)=x3[6]x3[9]=x2[6]4320_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4320_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(159)    (java.lang.Object(List(x0[9]))=x354356_0_bubble_Load(x35)=4345_0_bubble_Return(java.lang.Object(List(x0[9]))) ⇒ 4320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4320_0_TEST_GE1(&&(<(+(x4[9], 1), x2[7]), <(x1[7], 3)), x1[7], +(x4[9], 1), x2[7], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

We simplified constraint (159) using rule (V) (with possible (I) afterwards) using induction on 4356_0_bubble_Load(x35)=4345_0_bubble_Return(java.lang.Object(List(x0[9]))) which results in the following new constraint:

(160)    (4266_0_bubble_NULL(x36)=4345_0_bubble_Return(java.lang.Object(List(x0[9])))∧java.lang.Object(List(x0[9]))=x364320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4320_0_TEST_GE1(&&(<(+(x4[9], 1), x2[7]), <(x1[7], 3)), x1[7], +(x4[9], 1), x2[7], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

We simplified constraint (160) using rule (III) which results in the following new constraint:

(161)    (4266_0_bubble_NULL(java.lang.Object(List(x0[9])))=4345_0_bubble_Return(java.lang.Object(List(x0[9]))) ⇒ 4320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4320_0_TEST_GE1(&&(<(+(x4[9], 1), x2[7]), <(x1[7], 3)), x1[7], +(x4[9], 1), x2[7], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(162)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[7] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(163)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[7] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(164)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[7] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(165)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧0 = 0∧0 = 0∧[bni_49] = 0∧[(-1)bni_49 + (-1)Bound*bni_49] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_50] ≥ 0)

• We consider the chain COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[10], x2[10], x3[10], x4[10]) → 4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10]), 4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6]) which results in the following constraint:

(166)    (4356_0_bubble_Load(x4[7])=1635_0_length_Returnx1[7]=x1[10]x2[7]=x2[10]x3[7]=x3[10]x4[7]=x4[10]x1[10]=x1[6]+(x3[10], 1)=x3[6]x2[10]=x2[6]4320_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4320_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(167)    (4356_0_bubble_Load(x4[7])=1635_0_length_Return4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥COND_4320_0_TEST_GE1(&&(<(+(x3[10], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[10], 1), x2[7], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

We simplified constraint (167) using rule (V) (with possible (I) afterwards) using induction on 4356_0_bubble_Load(x4[7])=1635_0_length_Return which results in the following new constraint:

(168)    (4266_0_bubble_NULL(x37)=1635_0_length_Return4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥COND_4320_0_TEST_GE1(&&(<(+(x3[10], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[10], 1), x2[7], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(169)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[7] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(170)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[7] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(171)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[7] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(172)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧0 = 0∧0 = 0∧[bni_49] = 0∧[(-1)bni_49 + (-1)Bound*bni_49] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_50] ≥ 0)

• We consider the chain COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[2], 0, x0[2]), 4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6]) which results in the following constraint:

(173)    (1915_0_length_Load(x4[5])=2393_0_length_Return(x0[2])∧-(x1[5], 1)=x2[2]x4[5]=java.lang.Object(List(1635_0_length_Return))∧x2[2]=x1[6]0=x3[6]x0[2]=x2[6]4320_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4320_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(174)    (java.lang.Object(List(1635_0_length_Return))=x381915_0_length_Load(x38)=2393_0_length_Return(x0[2]) ⇒ 4320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4320_0_TEST_GE1(&&(<(0, x0[2]), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

We simplified constraint (174) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x38)=2393_0_length_Return(x0[2]) which results in the following new constraint:

(175)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2])∧java.lang.Object(List(1635_0_length_Return))=x394320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4320_0_TEST_GE1(&&(<(0, x0[2]), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(176)    (1627_0_length_NONNULL=2393_0_length_Return(x0[2]) ⇒ 4320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4320_0_TEST_GE1(&&(<(0, x0[2]), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(177)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[5] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(178)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[5] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(179)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[5] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(180)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧0 = 0∧[bni_49] = 0∧[(-2)bni_49 + (-1)Bound*bni_49] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_50] ≥ 0)

• We consider the chain COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[3], 0, 1), 4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6]) which results in the following constraint:

(181)    (1915_0_length_Load(x4[5])=1635_0_length_Return-(x1[5], 1)=x2[3]x4[5]=java.lang.Object(List(1635_0_length_Return))∧x2[3]=x1[6]0=x3[6]1=x2[6]4320_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4320_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(182)    (java.lang.Object(List(1635_0_length_Return))=x401915_0_length_Load(x40)=1635_0_length_Return4320_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4320_0_TEST_GE1(&&(<(0, 1), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, 1, x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

We simplified constraint (182) using rule (V) (with possible (I) afterwards) using induction on 1915_0_length_Load(x40)=1635_0_length_Return which results in the following new constraint:

(183)    (1627_0_length_NONNULL=1635_0_length_Returnjava.lang.Object(List(1635_0_length_Return))=x414320_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4320_0_TEST_GE1(&&(<(0, 1), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, 1, x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(184)    (1627_0_length_NONNULL=1635_0_length_Return4320_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4320_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4320_0_TEST_GE1(&&(<(0, 1), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, 1, x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))

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

(185)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[5] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(186)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[5] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(187)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_49 + (-1)Bound*bni_49] + [bni_49]x1[5] ≥ 0∧[(-1)bso_50] ≥ 0)

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

(188)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[bni_49] = 0∧[(-2)bni_49 + (-1)Bound*bni_49] ≥ 0∧0 = 0∧[(-1)bso_50] ≥ 0)

For Pair COND_4320_0_TEST_GE1(TRUE, x1, x3, x2, x4) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4), x1, x2, x3, x4) the following chains were created:
• We consider the chain 4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6]), COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7],