### (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:
4388_0_bubble_NULL(EOS(STATIC_4388), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4389_0_bubble_NULL(EOS(STATIC_4389), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4389_0_bubble_NULL(EOS(STATIC_4389), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4392_0_bubble_Load(EOS(STATIC_4392), java.lang.Object(o6546sub))
4392_0_bubble_Load(EOS(STATIC_4392), java.lang.Object(o6546sub)) → 4394_0_bubble_InvokeMethod(EOS(STATIC_4394), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4394_0_bubble_InvokeMethod(EOS(STATIC_4394), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4397_0_getTail_Load(EOS(STATIC_4397), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4397_0_getTail_Load(EOS(STATIC_4397), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4406_0_getTail_FieldAccess(EOS(STATIC_4406), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4406_0_getTail_FieldAccess(EOS(STATIC_4406), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4410_0_getTail_FieldAccess(EOS(STATIC_4410), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4406_0_getTail_FieldAccess(EOS(STATIC_4406), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4411_0_getTail_FieldAccess(EOS(STATIC_4411), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4410_0_getTail_FieldAccess(EOS(STATIC_4410), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4413_0_getTail_FieldAccess(EOS(STATIC_4413), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4410_0_getTail_FieldAccess(EOS(STATIC_4410), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4414_0_getTail_FieldAccess(EOS(STATIC_4414), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4413_0_getTail_FieldAccess(EOS(STATIC_4413), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4422_0_getTail_FieldAccess(EOS(STATIC_4422), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4413_0_getTail_FieldAccess(EOS(STATIC_4413), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4423_0_getTail_FieldAccess(EOS(STATIC_4423), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4422_0_getTail_FieldAccess(EOS(STATIC_4422), java.lang.Object(List(o6588sub, o6589, i2129)), java.lang.Object(List(o6588sub, o6589, i2129)), java.lang.Object(List(o6588sub, o6589, i2129))) → 4428_0_getTail_FieldAccess(EOS(STATIC_4428), java.lang.Object(List(o6588sub, o6589, i2129)), java.lang.Object(List(o6588sub, o6589, i2129)), java.lang.Object(List(o6588sub, o6589, i2129)))
4428_0_getTail_FieldAccess(EOS(STATIC_4428), java.lang.Object(List(o6588sub, o6589, i2129)), java.lang.Object(List(o6588sub, o6589, i2129)), java.lang.Object(List(o6588sub, o6589, i2129))) → 4438_0_getTail_Return(EOS(STATIC_4438), java.lang.Object(List(o6588sub, o6589, i2129)), java.lang.Object(List(o6588sub, o6589, i2129)), o6589)
4438_0_getTail_Return(EOS(STATIC_4438), java.lang.Object(List(o6588sub, o6589, i2129)), java.lang.Object(List(o6588sub, o6589, i2129)), o6589) → 4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(o6588sub, o6589, i2129)), o6589)
4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), java.lang.Object(o6632sub)) → 4451_0_bubble_NONNULL(EOS(STATIC_4451), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), java.lang.Object(o6632sub))
4451_0_bubble_NONNULL(EOS(STATIC_4451), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), java.lang.Object(o6632sub)) → 4455_0_bubble_Load(EOS(STATIC_4455), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)))
4455_0_bubble_Load(EOS(STATIC_4455), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129))) → 4460_0_bubble_FieldAccess(EOS(STATIC_4460), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)))
4460_0_bubble_FieldAccess(EOS(STATIC_4460), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129))) → 4465_0_bubble_Load(EOS(STATIC_4465), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129)
4465_0_bubble_Load(EOS(STATIC_4465), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129) → 4468_0_bubble_InvokeMethod(EOS(STATIC_4468), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)))
4468_0_bubble_InvokeMethod(EOS(STATIC_4468), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129))) → 4472_0_getTail_Load(EOS(STATIC_4472), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)))
4472_0_getTail_Load(EOS(STATIC_4472), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129))) → 4476_0_getTail_FieldAccess(EOS(STATIC_4476), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)))
4476_0_getTail_FieldAccess(EOS(STATIC_4476), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129))) → 4482_0_getTail_Return(EOS(STATIC_4482), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), java.lang.Object(o6632sub))
4482_0_getTail_Return(EOS(STATIC_4482), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), java.lang.Object(o6632sub)) → 4486_0_bubble_FieldAccess(EOS(STATIC_4486), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub))
4486_0_bubble_FieldAccess(EOS(STATIC_4486), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub)) → 4491_0_bubble_FieldAccess(EOS(STATIC_4491), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub))
4486_0_bubble_FieldAccess(EOS(STATIC_4486), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub)) → 4492_0_bubble_FieldAccess(EOS(STATIC_4492), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub))
4491_0_bubble_FieldAccess(EOS(STATIC_4491), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub)) → 4499_0_bubble_FieldAccess(EOS(STATIC_4499), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub))
4491_0_bubble_FieldAccess(EOS(STATIC_4491), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub)) → 4500_0_bubble_FieldAccess(EOS(STATIC_4500), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub))
4499_0_bubble_FieldAccess(EOS(STATIC_4499), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub)) → 4509_0_bubble_FieldAccess(EOS(STATIC_4509), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub))
4499_0_bubble_FieldAccess(EOS(STATIC_4499), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub)) → 4510_0_bubble_FieldAccess(EOS(STATIC_4510), java.lang.Object(List(o6588sub, java.lang.Object(o6632sub), i2129)), i2129, java.lang.Object(o6632sub))
4509_0_bubble_FieldAccess(EOS(STATIC_4509), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(EOC, o6706, i2144))) → 4521_0_bubble_FieldAccess(EOS(STATIC_4521), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(EOC, o6706, i2144)))
4521_0_bubble_FieldAccess(EOS(STATIC_4521), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(EOC, o6706, i2144))) → 4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, i2144)
4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, i2144) → 4543_0_bubble_LE(EOS(STATIC_4543), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, i2144)
4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, i2144) → 4544_0_bubble_LE(EOS(STATIC_4544), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, i2144)
4543_0_bubble_LE(EOS(STATIC_4543), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, i2144) → 4547_0_bubble_Load(EOS(STATIC_4547), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129))) | <=(i2129, i2144)
4547_0_bubble_Load(EOS(STATIC_4547), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129))) → 4628_0_bubble_Load(EOS(STATIC_4628), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)))
4628_0_bubble_Load(EOS(STATIC_4628), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144))) → 4631_0_bubble_InvokeMethod(EOS(STATIC_4631), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144)))
4631_0_bubble_InvokeMethod(EOS(STATIC_4631), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144))) → 4635_0_getTail_Load(EOS(STATIC_4635), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144)))
4635_0_getTail_Load(EOS(STATIC_4635), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144))) → 4637_0_getTail_FieldAccess(EOS(STATIC_4637), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144)))
4637_0_getTail_FieldAccess(EOS(STATIC_4637), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144))) → 4639_0_getTail_Return(EOS(STATIC_4639), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144)), java.lang.Object(List(EOC, o6706, i2129)))
4639_0_getTail_Return(EOS(STATIC_4639), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144)), java.lang.Object(List(EOC, o6706, i2129))) → 4640_0_bubble_InvokeMethod(EOS(STATIC_4640), java.lang.Object(List(EOC, o6706, i2129)))
4640_0_bubble_InvokeMethod(EOS(STATIC_4640), java.lang.Object(List(EOC, o6706, i2129))) → 4641_1_bubble_InvokeMethod(4641_0_bubble_Load(EOS(STATIC_4641), java.lang.Object(List(EOC, o6706, i2129))), java.lang.Object(List(EOC, o6706, i2129)))
4641_0_bubble_Load(EOS(STATIC_4641), java.lang.Object(List(EOC, o6706, i2129))) → 4642_0_bubble_Load(EOS(STATIC_4642), java.lang.Object(List(EOC, o6706, i2129)))
4642_0_bubble_Load(EOS(STATIC_4642), java.lang.Object(List(EOC, o6706, i2129))) → 4387_0_bubble_Load(EOS(STATIC_4387), java.lang.Object(List(EOC, o6706, i2129)))
4387_0_bubble_Load(EOS(STATIC_4387), o6540) → 4388_0_bubble_NULL(EOS(STATIC_4388), o6540, o6540)
4544_0_bubble_LE(EOS(STATIC_4544), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, i2144) → 4548_0_bubble_Load(EOS(STATIC_4548), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129))) | >(i2129, i2144)
4548_0_bubble_Load(EOS(STATIC_4548), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129))) → 4554_0_bubble_FieldAccess(EOS(STATIC_4554), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)))
4554_0_bubble_FieldAccess(EOS(STATIC_4554), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129))) → 4557_0_bubble_Store(EOS(STATIC_4557), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129)
4557_0_bubble_Store(EOS(STATIC_4557), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129) → 4558_0_bubble_Load(EOS(STATIC_4558), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129)
4558_0_bubble_Load(EOS(STATIC_4558), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129) → 4561_0_bubble_Load(EOS(STATIC_4561), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)))
4561_0_bubble_Load(EOS(STATIC_4561), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129))) → 4564_0_bubble_InvokeMethod(EOS(STATIC_4564), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)))
4564_0_bubble_InvokeMethod(EOS(STATIC_4564), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129))) → 4567_0_getTail_Load(EOS(STATIC_4567), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)))
4567_0_getTail_Load(EOS(STATIC_4567), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129))) → 4571_0_getTail_FieldAccess(EOS(STATIC_4571), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)))
4571_0_getTail_FieldAccess(EOS(STATIC_4571), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129))) → 4573_0_getTail_Return(EOS(STATIC_4573), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(EOC, o6706, i2144)))
4573_0_getTail_Return(EOS(STATIC_4573), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(EOC, o6706, i2144))) → 4578_0_bubble_FieldAccess(EOS(STATIC_4578), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(EOC, o6706, i2144)))
4578_0_bubble_FieldAccess(EOS(STATIC_4578), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), java.lang.Object(List(EOC, o6706, i2144))) → 4582_0_bubble_FieldAccess(EOS(STATIC_4582), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2144)
4582_0_bubble_FieldAccess(EOS(STATIC_4582), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2129)), i2144) → 4584_0_bubble_Load(EOS(STATIC_4584), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129)
4584_0_bubble_Load(EOS(STATIC_4584), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129) → 4587_0_bubble_InvokeMethod(EOS(STATIC_4587), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)))
4587_0_bubble_InvokeMethod(EOS(STATIC_4587), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144))) → 4591_0_getTail_Load(EOS(STATIC_4591), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)))
4591_0_getTail_Load(EOS(STATIC_4591), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144))) → 4598_0_getTail_FieldAccess(EOS(STATIC_4598), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)))
4598_0_getTail_FieldAccess(EOS(STATIC_4598), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144))) → 4603_0_getTail_Return(EOS(STATIC_4603), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), java.lang.Object(List(EOC, o6706, i2144)))
4603_0_getTail_Return(EOS(STATIC_4603), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129, java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), java.lang.Object(List(EOC, o6706, i2144))) → 4609_0_bubble_Load(EOS(STATIC_4609), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129, java.lang.Object(List(EOC, o6706, i2144)))
4609_0_bubble_Load(EOS(STATIC_4609), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), i2129, java.lang.Object(List(EOC, o6706, i2144))) → 4619_0_bubble_FieldAccess(EOS(STATIC_4619), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), java.lang.Object(List(EOC, o6706, i2144)), i2129)
4619_0_bubble_FieldAccess(EOS(STATIC_4619), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2144)), i2144)), java.lang.Object(List(EOC, o6706, i2144)), i2129) → 4628_0_bubble_Load(EOS(STATIC_4628), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6706, i2129)), i2144)))
4510_0_bubble_FieldAccess(EOS(STATIC_4510), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6708, i2145)), i2129)), i2129, java.lang.Object(List(EOC, o6708, i2145))) → 4522_0_bubble_FieldAccess(EOS(STATIC_4522), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6708, i2145)), i2129)), i2129, java.lang.Object(List(EOC, o6708, i2145)))
4522_0_bubble_FieldAccess(EOS(STATIC_4522), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6708, i2145)), i2129)), i2129, java.lang.Object(List(EOC, o6708, i2145))) → 4538_0_bubble_LE(EOS(STATIC_4538), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6708, i2145)), i2129)), i2129, i2145)
4538_0_bubble_LE(EOS(STATIC_4538), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6708, i2145)), i2129)), i2129, i2145) → 4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6708, i2145)), i2129)), i2129, i2145)
4500_0_bubble_FieldAccess(EOS(STATIC_4500), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6685, i2142)), i2129)), i2129, java.lang.Object(List(EOC, o6685, i2142))) → 4512_0_bubble_FieldAccess(EOS(STATIC_4512), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6685, i2142)), i2129)), i2129, java.lang.Object(List(EOC, o6685, i2142)))
4512_0_bubble_FieldAccess(EOS(STATIC_4512), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6685, i2142)), i2129)), i2129, java.lang.Object(List(EOC, o6685, i2142))) → 4525_0_bubble_LE(EOS(STATIC_4525), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6685, i2142)), i2129)), i2129, i2142)
4525_0_bubble_LE(EOS(STATIC_4525), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6685, i2142)), i2129)), i2129, i2142) → 4513_0_bubble_LE(EOS(STATIC_4513), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6685, i2142)), i2129)), i2129, i2142)
4513_0_bubble_LE(EOS(STATIC_4513), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6671, i2139)), i2129)), i2129, i2139) → 4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6671, i2139)), i2129)), i2129, i2139)
4492_0_bubble_FieldAccess(EOS(STATIC_4492), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6671, i2139)), i2129)), i2129, java.lang.Object(List(EOC, o6671, i2139))) → 4501_0_bubble_FieldAccess(EOS(STATIC_4501), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6671, i2139)), i2129)), i2129, java.lang.Object(List(EOC, o6671, i2139)))
4501_0_bubble_FieldAccess(EOS(STATIC_4501), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6671, i2139)), i2129)), i2129, java.lang.Object(List(EOC, o6671, i2139))) → 4513_0_bubble_LE(EOS(STATIC_4513), java.lang.Object(List(o6588sub, java.lang.Object(List(EOC, o6671, i2139)), i2129)), i2129, i2139)
4423_0_getTail_FieldAccess(EOS(STATIC_4423), java.lang.Object(List(EOC, o6591, i2130)), java.lang.Object(List(EOC, o6591, i2130)), java.lang.Object(List(EOC, o6591, i2130))) → 4429_0_getTail_FieldAccess(EOS(STATIC_4429), java.lang.Object(List(EOC, o6591, i2130)), java.lang.Object(List(EOC, o6591, i2130)), java.lang.Object(List(EOC, o6591, i2130)))
4429_0_getTail_FieldAccess(EOS(STATIC_4429), java.lang.Object(List(EOC, o6591, i2130)), java.lang.Object(List(EOC, o6591, i2130)), java.lang.Object(List(EOC, o6591, i2130))) → 4439_0_getTail_Return(EOS(STATIC_4439), java.lang.Object(List(EOC, o6591, i2130)), java.lang.Object(List(EOC, o6591, i2130)), o6591)
4439_0_getTail_Return(EOS(STATIC_4439), java.lang.Object(List(EOC, o6591, i2130)), java.lang.Object(List(EOC, o6591, i2130)), o6591) → 4446_0_bubble_NONNULL(EOS(STATIC_4446), java.lang.Object(List(EOC, o6591, i2130)), o6591)
4446_0_bubble_NONNULL(EOS(STATIC_4446), java.lang.Object(List(EOC, o6591, i2130)), o6591) → 4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(EOC, o6591, i2130)), o6591)
4414_0_getTail_FieldAccess(EOS(STATIC_4414), java.lang.Object(List(EOC, o6583, i2128)), java.lang.Object(List(EOC, o6583, i2128)), java.lang.Object(List(EOC, o6583, i2128))) → 4424_0_getTail_FieldAccess(EOS(STATIC_4424), java.lang.Object(List(EOC, o6583, i2128)), java.lang.Object(List(EOC, o6583, i2128)), java.lang.Object(List(EOC, o6583, i2128)))
4424_0_getTail_FieldAccess(EOS(STATIC_4424), java.lang.Object(List(EOC, o6583, i2128)), java.lang.Object(List(EOC, o6583, i2128)), java.lang.Object(List(EOC, o6583, i2128))) → 4431_0_getTail_Return(EOS(STATIC_4431), java.lang.Object(List(EOC, o6583, i2128)), java.lang.Object(List(EOC, o6583, i2128)), o6583)
4431_0_getTail_Return(EOS(STATIC_4431), java.lang.Object(List(EOC, o6583, i2128)), java.lang.Object(List(EOC, o6583, i2128)), o6583) → 4438_0_getTail_Return(EOS(STATIC_4438), java.lang.Object(List(EOC, o6583, i2128)), java.lang.Object(List(EOC, o6583, i2128)), o6583)
4411_0_getTail_FieldAccess(EOS(STATIC_4411), java.lang.Object(List(EOC, o6565, i2123)), java.lang.Object(List(EOC, o6565, i2123)), java.lang.Object(List(EOC, o6565, i2123))) → 4415_0_getTail_FieldAccess(EOS(STATIC_4415), java.lang.Object(List(EOC, o6565, i2123)), java.lang.Object(List(EOC, o6565, i2123)), java.lang.Object(List(EOC, o6565, i2123)))
4415_0_getTail_FieldAccess(EOS(STATIC_4415), java.lang.Object(List(EOC, o6565, i2123)), java.lang.Object(List(EOC, o6565, i2123)), java.lang.Object(List(EOC, o6565, i2123))) → 4425_0_getTail_Return(EOS(STATIC_4425), java.lang.Object(List(EOC, o6565, i2123)), java.lang.Object(List(EOC, o6565, i2123)), o6565)
4425_0_getTail_Return(EOS(STATIC_4425), java.lang.Object(List(EOC, o6565, i2123)), java.lang.Object(List(EOC, o6565, i2123)), o6565) → 4431_0_getTail_Return(EOS(STATIC_4431), java.lang.Object(List(EOC, o6565, i2123)), java.lang.Object(List(EOC, o6565, i2123)), o6565)
R rules:
4388_0_bubble_NULL(EOS(STATIC_4388), NULL, NULL) → 4390_0_bubble_NULL(EOS(STATIC_4390), NULL, NULL)
4390_0_bubble_NULL(EOS(STATIC_4390), NULL, NULL) → 4393_0_bubble_Return(EOS(STATIC_4393), NULL)
4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(o6588sub, NULL, i2129)), NULL) → 4452_0_bubble_NONNULL(EOS(STATIC_4452), java.lang.Object(List(o6588sub, NULL, i2129)), NULL)
4452_0_bubble_NONNULL(EOS(STATIC_4452), java.lang.Object(List(o6588sub, NULL, i2129)), NULL) → 4457_0_bubble_Return(EOS(STATIC_4457), java.lang.Object(List(o6588sub, NULL, i2129)))
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(EOS(STATIC_4457), java.lang.Object(List(EOC, NULL, i2215))), java.lang.Object(List(EOC, NULL, i2215))) → 4650_0_bubble_Return(EOS(STATIC_4650), java.lang.Object(List(EOC, NULL, i2215)), java.lang.Object(List(EOC, NULL, i2215)))
4641_1_bubble_InvokeMethod(4651_0_bubble_Return(EOS(STATIC_4651)), java.lang.Object(List(EOC, o6706, i2129))) → 4658_0_bubble_Return(EOS(STATIC_4658), java.lang.Object(List(EOC, java.lang.Object(List(EOC, NULL, i2215)), i2216)))
4641_1_bubble_InvokeMethod(4673_0_bubble_Return(EOS(STATIC_4673)), java.lang.Object(List(EOC, o6706, i2129))) → 4684_0_bubble_Return(EOS(STATIC_4684), java.lang.Object(List(EOC, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o7024, i2224)), i2223)), i2232)))
4650_0_bubble_Return(EOS(STATIC_4650), java.lang.Object(List(EOC, NULL, i2215)), java.lang.Object(List(EOC, NULL, i2215))) → 4651_0_bubble_Return(EOS(STATIC_4651))
4658_0_bubble_Return(EOS(STATIC_4658), java.lang.Object(List(EOC, java.lang.Object(List(EOC, NULL, i2215)), i2216))) → 4671_0_bubble_Return(EOS(STATIC_4671), java.lang.Object(List(EOC, java.lang.Object(List(EOC, NULL, i2215)), i2216)))
4671_0_bubble_Return(EOS(STATIC_4671), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o7024, i2224)), i2223))) → 4673_0_bubble_Return(EOS(STATIC_4673))
4684_0_bubble_Return(EOS(STATIC_4684), java.lang.Object(List(EOC, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o7024, i2224)), i2223)), i2232))) → 4671_0_bubble_Return(EOS(STATIC_4671), java.lang.Object(List(EOC, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o7024, i2224)), i2223)), i2232)))

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

P rules:
4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3)), x3, x2) → 4641_1_bubble_InvokeMethod(4388_0_bubble_NULL(EOS(STATIC_4388), java.lang.Object(List(EOC, x1, x2)), java.lang.Object(List(EOC, x1, x2))), java.lang.Object(List(EOC, x1, x2))) | <=(x3, x2)
4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3)), x3, x2) → 4641_1_bubble_InvokeMethod(4388_0_bubble_NULL(EOS(STATIC_4388), java.lang.Object(List(EOC, x1, x3)), java.lang.Object(List(EOC, x1, x3))), java.lang.Object(List(EOC, x1, x3))) | >(x3, x2)
4388_0_bubble_NULL(EOS(STATIC_4388), 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))) → 4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3)), x3, x2)
4388_0_bubble_NULL(EOS(STATIC_4388), 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))) → 4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0, x1)), x2)), x2, x1)
R rules:
4388_0_bubble_NULL(EOS(STATIC_4388), NULL, NULL) → 4393_0_bubble_Return(EOS(STATIC_4393), NULL)
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(EOS(STATIC_4457), java.lang.Object(List(EOC, NULL, x0))), java.lang.Object(List(EOC, NULL, x0))) → 4651_0_bubble_Return(EOS(STATIC_4651))
4641_1_bubble_InvokeMethod(4651_0_bubble_Return(EOS(STATIC_4651)), java.lang.Object(List(EOC, x0, x1))) → 4673_0_bubble_Return(EOS(STATIC_4673))
4641_1_bubble_InvokeMethod(4673_0_bubble_Return(EOS(STATIC_4673)), java.lang.Object(List(EOC, x0, x1))) → 4673_0_bubble_Return(EOS(STATIC_4673))

Filtered ground terms:

4534_0_bubble_LE(x1, x2, x3, x4) → 4534_0_bubble_LE(x2, x3, x4)
4388_0_bubble_NULL(x1, x2, x3) → 4388_0_bubble_NULL(x2, x3)
Cond_4534_0_bubble_LE1(x1, x2, x3, x4, x5) → Cond_4534_0_bubble_LE1(x1, x3, x4, x5)
Cond_4534_0_bubble_LE(x1, x2, x3, x4, x5) → Cond_4534_0_bubble_LE(x1, x3, x4, x5)
4673_0_bubble_Return(x1) → 4673_0_bubble_Return
4651_0_bubble_Return(x1) → 4651_0_bubble_Return
4457_0_bubble_Return(x1, x2) → 4457_0_bubble_Return(x2)
4393_0_bubble_Return(x1, x2) → 4393_0_bubble_Return

Filtered duplicate args:

4534_0_bubble_LE(x1, x2, x3) → 4534_0_bubble_LE(x1)
Cond_4534_0_bubble_LE(x1, x2, x3, x4) → Cond_4534_0_bubble_LE(x1, x2)
4388_0_bubble_NULL(x1, x2) → 4388_0_bubble_NULL(x2)
Cond_4534_0_bubble_LE1(x1, x2, x3, x4) → Cond_4534_0_bubble_LE1(x1, x2)

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

P rules:
4534_0_bubble_LE(java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3))) → 4641_1_bubble_InvokeMethod(4388_0_bubble_NULL(java.lang.Object(List(EOC, x1, x2))), java.lang.Object(List(EOC, x1, x2))) | <=(x3, x2)
4534_0_bubble_LE(java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3))) → 4641_1_bubble_InvokeMethod(4388_0_bubble_NULL(java.lang.Object(List(EOC, x1, x3))), java.lang.Object(List(EOC, x1, x3))) | >(x3, x2)
4388_0_bubble_NULL(java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3))) → 4534_0_bubble_LE(java.lang.Object(List(x0, java.lang.Object(List(EOC, x1, x2)), x3)))
4388_0_bubble_NULL(java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0, x1)), x2))) → 4534_0_bubble_LE(java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0, x1)), x2)))
R rules:
4388_0_bubble_NULL(NULL) → 4393_0_bubble_Return
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(EOC, NULL, x0))), java.lang.Object(List(EOC, NULL, x0))) → 4651_0_bubble_Return
4641_1_bubble_InvokeMethod(4651_0_bubble_Return, java.lang.Object(List(EOC, x0, x1))) → 4673_0_bubble_Return
4641_1_bubble_InvokeMethod(4673_0_bubble_Return, java.lang.Object(List(EOC, x0, x1))) → 4673_0_bubble_Return

Performed bisimulation on rules. Used the following equivalence classes: {[4393_0_bubble_Return, EOC, 4651_0_bubble_Return, 4673_0_bubble_Return]=4393_0_bubble_Return}

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

P rules:
4534_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → COND_4534_0_BUBBLE_LE(<=(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3)))
COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1, x2)))
4534_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → COND_4534_0_BUBBLE_LE1(>(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3)))
COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1, x3)))
4388_0_BUBBLE_NULL(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → 4534_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3)))
4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0, x1)), x2))) → 4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0, x1)), x2)))
R rules:
4388_0_bubble_NULL(NULL) → 4393_0_bubble_Return
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(4393_0_bubble_Return, NULL, x0))), java.lang.Object(List(4393_0_bubble_Return, NULL, x0))) → 4393_0_bubble_Return
4641_1_bubble_InvokeMethod(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0, x1))) → 4393_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:
4388_0_bubble_NULL(NULL) → 4393_0_bubble_Return
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(4393_0_bubble_Return, NULL, x0))), java.lang.Object(List(4393_0_bubble_Return, NULL, x0))) → 4393_0_bubble_Return
4641_1_bubble_InvokeMethod(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0, x1))) → 4393_0_bubble_Return

The integer pair graph contains the following rules and edges:
(0): 4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4534_0_BUBBLE_LE(x3[0] <= x2[0], java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])))
(1): COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])))
(2): 4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4534_0_BUBBLE_LE1(x3[2] > x2[2], java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])))
(3): COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[3], x3[3])))
(4): 4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))
(5): 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4393_0_bubble_Return, x1[0], x2[0])), x3[0])) →* java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1])))

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

(1) -> (5), if (java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])) →* java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4393_0_bubble_Return, x1[2], x2[2])), x3[2])) →* java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3])))

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

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

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

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

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

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

The set Q consists of the following terms:
4388_0_bubble_NULL(NULL)
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(4393_0_bubble_Return, NULL, x0))), java.lang.Object(List(4393_0_bubble_Return, NULL, x0)))
4641_1_bubble_InvokeMethod(4393_0_bubble_Return, java.lang.Object(List(4393_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@38d8e7ae 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 4534_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → COND_4534_0_BUBBLE_LE(<=(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) the following chains were created:
• We consider the chain 4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))), COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))=java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1])) ⇒ 4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])))≥NonInfC∧4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])))≥COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])))∧(UIncreasing(COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_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])=TRUE4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])))≥NonInfC∧4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])))≥COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])))∧(UIncreasing(COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1, x2))) the following chains were created:
• We consider the chain 4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))), COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1]))), 4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))=java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1]))∧java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1]))=java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])) ⇒ COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1])))≥NonInfC∧COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1])))≥4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])))∧(UIncreasing(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x2[0])), x3[0])))≥NonInfC∧COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x2[0])), x3[0])))≥4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x2[0])))∧(UIncreasing(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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 4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))), COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1]))), 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))=java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1]))∧java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1]))=java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])) ⇒ COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1])))≥NonInfC∧COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1])))≥4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])))∧(UIncreasing(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[0])), x3[0])))≥NonInfC∧COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[0])), x3[0])))≥4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[0])))∧(UIncreasing(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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 4534_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → COND_4534_0_BUBBLE_LE1(>(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) the following chains were created:
• We consider the chain 4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))), COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))=java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3])) ⇒ 4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])))≥NonInfC∧4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])))≥COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])))∧(UIncreasing(COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_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])=TRUE4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])))≥NonInfC∧4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])))≥COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])))∧(UIncreasing(COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1, x3))) the following chains were created:
• We consider the chain 4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))), COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[3], x3[3]))), 4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))=java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3]))∧java.lang.Object(List(4393_0_bubble_Return, x1[3], x3[3]))=java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])) ⇒ COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3])))≥NonInfC∧COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3])))≥4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[3], x3[3])))∧(UIncreasing(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x2[2])), x3[2])))≥NonInfC∧COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x2[2])), x3[2])))≥4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[2])))∧(UIncreasing(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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 4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))), COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[3], x3[3]))), 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))=java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3]))∧java.lang.Object(List(4393_0_bubble_Return, x1[3], x3[3]))=java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])) ⇒ COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3])))≥NonInfC∧COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3])))≥4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[3], x3[3])))∧(UIncreasing(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[2])), x3[2])))≥NonInfC∧COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[2])), x3[2])))≥4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x3[2])))∧(UIncreasing(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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 4388_0_BUBBLE_NULL(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → 4534_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) the following chains were created:
• We consider the chain 4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4]))), 4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_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(4393_0_bubble_Return, x1[4], x2[4])), x3[4]))=java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])) ⇒ 4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))≥NonInfC∧4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))≥4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))∧(UIncreasing(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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)    (4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))≥NonInfC∧4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))≥4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))∧(UIncreasing(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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 4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4]))), 4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_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(4393_0_bubble_Return, x1[4], x2[4])), x3[4]))=java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])) ⇒ 4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))≥NonInfC∧4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))≥4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))∧(UIncreasing(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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)    (4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))≥NonInfC∧4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))≥4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))∧(UIncreasing(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0, x1)), x2))) → 4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0, x1)), x2))) the following chains were created:
• We consider the chain 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5]))), 4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))) which results in the following constraint:

(49)    (java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5]))=java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])) ⇒ 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))≥NonInfC∧4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))≥4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))∧(UIncreasing(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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)    (4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))≥NonInfC∧4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))≥4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))∧(UIncreasing(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5]))), 4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))) which results in the following constraint:

(55)    (java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5]))=java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])) ⇒ 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))≥NonInfC∧4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))≥4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))∧(UIncreasing(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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)    (4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))≥NonInfC∧4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))≥4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))∧(UIncreasing(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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.
• 4534_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → COND_4534_0_BUBBLE_LE(<=(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1, x2)))
• (0 ≥ 0 ⇒ (UIncreasing(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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)

• 4534_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → COND_4534_0_BUBBLE_LE1(>(x3, x2), java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_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_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1, x3)))
• (0 ≥ 0 ⇒ (UIncreasing(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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(4388_0_BUBBLE_NULL(java.lang.Object(List(4393_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)

• 4388_0_BUBBLE_NULL(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3))) → 4534_0_BUBBLE_LE(java.lang.Object(List(x0, java.lang.Object(List(4393_0_bubble_Return, x1, x2)), x3)))
• ((UIncreasing(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_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(4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))), ≥)∧[bni_34] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_35] ≥ 0)

• 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0, x1)), x2))) → 4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0, x1)), x2)))
• ((UIncreasing(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))), ≥)∧[bni_36] = 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_37] ≥ 0)
• ((UIncreasing(4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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(4388_0_bubble_NULL(x1)) = 0
POL(NULL) = 0
POL(4393_0_bubble_Return) = 0
POL(4641_1_bubble_InvokeMethod(x1, x2)) = 0
POL(4457_0_bubble_Return(x1)) = 0
POL(java.lang.Object(x1)) = x1
POL(List(x1, x2, x3)) = [1] + [2]x2
POL(4534_0_BUBBLE_LE(x1)) = [-1] + x1
POL(COND_4534_0_BUBBLE_LE(x1, x2)) = [-1] + x2
POL(<=(x1, x2)) = 0
POL(4388_0_BUBBLE_NULL(x1)) = [-1] + x1
POL(COND_4534_0_BUBBLE_LE1(x1, x2)) = [-1] + x2
POL(>(x1, x2)) = 0

The following pairs are in P>:

COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])))
COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[3], x3[3])))

The following pairs are in Pbound:

4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])))
COND_4534_0_BUBBLE_LE(TRUE, java.lang.Object(List(x0[1], java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])), x3[1]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[1], x2[1])))
4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])))
COND_4534_0_BUBBLE_LE1(TRUE, java.lang.Object(List(x0[3], java.lang.Object(List(4393_0_bubble_Return, x1[3], x2[3])), x3[3]))) → 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, x1[3], x3[3])))

The following pairs are in P:

4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4534_0_BUBBLE_LE(<=(x3[0], x2[0]), java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])))
4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4534_0_BUBBLE_LE1(>(x3[2], x2[2]), java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])))
4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))
4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_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:
4388_0_bubble_NULL(NULL) → 4393_0_bubble_Return
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(4393_0_bubble_Return, NULL, x0))), java.lang.Object(List(4393_0_bubble_Return, NULL, x0))) → 4393_0_bubble_Return
4641_1_bubble_InvokeMethod(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0, x1))) → 4393_0_bubble_Return

The integer pair graph contains the following rules and edges:
(0): 4534_0_BUBBLE_LE(java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0]))) → COND_4534_0_BUBBLE_LE(x3[0] <= x2[0], java.lang.Object(List(x0[0], java.lang.Object(List(4393_0_bubble_Return, x1[0], x2[0])), x3[0])))
(2): 4534_0_BUBBLE_LE(java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2]))) → COND_4534_0_BUBBLE_LE1(x3[2] > x2[2], java.lang.Object(List(x0[2], java.lang.Object(List(4393_0_bubble_Return, x1[2], x2[2])), x3[2])))
(4): 4388_0_BUBBLE_NULL(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(x0[4], java.lang.Object(List(4393_0_bubble_Return, x1[4], x2[4])), x3[4])))
(5): 4388_0_BUBBLE_NULL(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5]))) → 4534_0_BUBBLE_LE(java.lang.Object(List(4393_0_bubble_Return, java.lang.Object(List(4393_0_bubble_Return, x0[5], x1[5])), x2[5])))

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

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

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

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

The set Q consists of the following terms:
4388_0_bubble_NULL(NULL)
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(4393_0_bubble_Return, NULL, x0))), java.lang.Object(List(4393_0_bubble_Return, NULL, x0)))
4641_1_bubble_InvokeMethod(4393_0_bubble_Return, java.lang.Object(List(4393_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:
1870_0_length_NONNULL(EOS(STATIC_1870), java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1871_0_length_NONNULL(EOS(STATIC_1871), java.lang.Object(o1163sub), java.lang.Object(o1163sub))
1871_0_length_NONNULL(EOS(STATIC_1871), java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1874_0_length_ConstantStackPush(EOS(STATIC_1874), java.lang.Object(o1163sub))
1874_0_length_ConstantStackPush(EOS(STATIC_1874), java.lang.Object(o1163sub)) → 1877_0_length_Load(EOS(STATIC_1877), java.lang.Object(o1163sub))
1877_0_length_Load(EOS(STATIC_1877), java.lang.Object(o1163sub)) → 1880_0_length_InvokeMethod(EOS(STATIC_1880), java.lang.Object(o1163sub))
1880_0_length_InvokeMethod(EOS(STATIC_1880), java.lang.Object(o1163sub)) → 1882_0_getTail_Load(EOS(STATIC_1882), java.lang.Object(o1163sub), java.lang.Object(o1163sub))
1882_0_getTail_Load(EOS(STATIC_1882), java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1887_0_getTail_FieldAccess(EOS(STATIC_1887), java.lang.Object(o1163sub), java.lang.Object(o1163sub))
1887_0_getTail_FieldAccess(EOS(STATIC_1887), java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1890_0_getTail_FieldAccess(EOS(STATIC_1890), java.lang.Object(o1163sub), java.lang.Object(o1163sub))
1887_0_getTail_FieldAccess(EOS(STATIC_1887), java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1892_0_getTail_FieldAccess(EOS(STATIC_1892), java.lang.Object(o1163sub), java.lang.Object(o1163sub))
1890_0_getTail_FieldAccess(EOS(STATIC_1890), java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1895_0_getTail_FieldAccess(EOS(STATIC_1895), java.lang.Object(o1163sub), java.lang.Object(o1163sub))
1890_0_getTail_FieldAccess(EOS(STATIC_1890), java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1896_0_getTail_FieldAccess(EOS(STATIC_1896), java.lang.Object(o1163sub), java.lang.Object(o1163sub))
1895_0_getTail_FieldAccess(EOS(STATIC_1895), java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1901_0_getTail_FieldAccess(EOS(STATIC_1901), java.lang.Object(o1163sub), java.lang.Object(o1163sub))
1895_0_getTail_FieldAccess(EOS(STATIC_1895), java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1902_0_getTail_FieldAccess(EOS(STATIC_1902), java.lang.Object(o1163sub), java.lang.Object(o1163sub))
1901_0_getTail_FieldAccess(EOS(STATIC_1901), java.lang.Object(List(o1174sub, o1175)), java.lang.Object(List(o1174sub, o1175))) → 1907_0_getTail_FieldAccess(EOS(STATIC_1907), java.lang.Object(List(o1174sub, o1175)), java.lang.Object(List(o1174sub, o1175)))
1907_0_getTail_FieldAccess(EOS(STATIC_1907), java.lang.Object(List(o1174sub, o1175)), java.lang.Object(List(o1174sub, o1175))) → 1917_0_getTail_Return(EOS(STATIC_1917), java.lang.Object(List(o1174sub, o1175)), o1175)
1917_0_getTail_Return(EOS(STATIC_1917), java.lang.Object(List(o1174sub, o1175)), o1175) → 1921_0_getTail_Return(EOS(STATIC_1921), java.lang.Object(List(o1174sub, o1175)), o1175)
1921_0_getTail_Return(EOS(STATIC_1921), java.lang.Object(List(EOC, o1177)), o1177) → 1931_0_length_InvokeMethod(EOS(STATIC_1931), o1177)
1931_0_length_InvokeMethod(EOS(STATIC_1931), o1177) → 1936_1_length_InvokeMethod(1936_0_length_Load(EOS(STATIC_1936), o1177), o1177)
1936_0_length_Load(EOS(STATIC_1936), o1177) → 1941_0_length_Load(EOS(STATIC_1941), o1177)
1941_0_length_Load(EOS(STATIC_1941), o1177) → 1953_0_length_Load(EOS(STATIC_1953), o1177)
1953_0_length_Load(EOS(STATIC_1953), o1177) → 1868_0_length_Load(EOS(STATIC_1868), o1177)
1868_0_length_Load(EOS(STATIC_1868), o1157) → 1870_0_length_NONNULL(EOS(STATIC_1870), o1157, o1157)
1902_0_getTail_FieldAccess(EOS(STATIC_1902), java.lang.Object(List(EOC, o1177)), java.lang.Object(List(EOC, o1177))) → 1908_0_getTail_FieldAccess(EOS(STATIC_1908), java.lang.Object(List(EOC, o1177)), java.lang.Object(List(EOC, o1177)))
1908_0_getTail_FieldAccess(EOS(STATIC_1908), java.lang.Object(List(EOC, o1177)), java.lang.Object(List(EOC, o1177))) → 1921_0_getTail_Return(EOS(STATIC_1921), java.lang.Object(List(EOC, o1177)), o1177)
1896_0_getTail_FieldAccess(EOS(STATIC_1896), java.lang.Object(List(EOC, o1173)), java.lang.Object(List(EOC, o1173))) → 1903_0_getTail_FieldAccess(EOS(STATIC_1903), java.lang.Object(List(EOC, o1173)), java.lang.Object(List(EOC, o1173)))
1903_0_getTail_FieldAccess(EOS(STATIC_1903), java.lang.Object(List(EOC, o1173)), java.lang.Object(List(EOC, o1173))) → 1911_0_getTail_Return(EOS(STATIC_1911), java.lang.Object(List(EOC, o1173)), o1173)
1911_0_getTail_Return(EOS(STATIC_1911), java.lang.Object(List(EOC, o1173)), o1173) → 1923_0_length_InvokeMethod(EOS(STATIC_1923), o1173)
1923_0_length_InvokeMethod(EOS(STATIC_1923), o1173) → 1933_1_length_InvokeMethod(1933_0_length_Load(EOS(STATIC_1933), o1173), o1173)
1933_0_length_Load(EOS(STATIC_1933), o1173) → 1938_0_length_Load(EOS(STATIC_1938), o1173)
1938_0_length_Load(EOS(STATIC_1938), o1173) → 1947_0_length_Load(EOS(STATIC_1947), o1173)
1947_0_length_Load(EOS(STATIC_1947), o1173) → 1868_0_length_Load(EOS(STATIC_1868), o1173)
1892_0_getTail_FieldAccess(EOS(STATIC_1892), java.lang.Object(List(EOC, o1171)), java.lang.Object(List(EOC, o1171))) → 1897_0_getTail_FieldAccess(EOS(STATIC_1897), java.lang.Object(List(EOC, o1171)), java.lang.Object(List(EOC, o1171)))
1897_0_getTail_FieldAccess(EOS(STATIC_1897), java.lang.Object(List(EOC, o1171)), java.lang.Object(List(EOC, o1171))) → 1904_0_getTail_Return(EOS(STATIC_1904), java.lang.Object(List(EOC, o1171)), o1171)
1904_0_getTail_Return(EOS(STATIC_1904), java.lang.Object(List(EOC, o1171)), o1171) → 1912_0_length_InvokeMethod(EOS(STATIC_1912), o1171)
1912_0_length_InvokeMethod(EOS(STATIC_1912), o1171) → 1924_1_length_InvokeMethod(1924_0_length_Load(EOS(STATIC_1924), o1171), o1171)
1924_0_length_Load(EOS(STATIC_1924), o1171) → 1934_0_length_Load(EOS(STATIC_1934), o1171)
1934_0_length_Load(EOS(STATIC_1934), o1171) → 1943_0_length_Load(EOS(STATIC_1943), o1171)
1943_0_length_Load(EOS(STATIC_1943), o1171) → 1868_0_length_Load(EOS(STATIC_1868), o1171)
R rules:
1870_0_length_NONNULL(EOS(STATIC_1870), NULL, NULL) → 1872_0_length_NONNULL(EOS(STATIC_1872), NULL, NULL)
1872_0_length_NONNULL(EOS(STATIC_1872), NULL, NULL) → 1875_0_length_ConstantStackPush(EOS(STATIC_1875), NULL)
1875_0_length_ConstantStackPush(EOS(STATIC_1875), NULL) → 1878_0_length_Return(EOS(STATIC_1878), NULL)
1924_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL), NULL) → 1957_0_length_Return(EOS(STATIC_1957), NULL, NULL)
1924_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970)), java.lang.Object(List(EOC, NULL))) → 1999_0_length_Return(EOS(STATIC_1999), java.lang.Object(List(EOC, NULL)))
1924_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977)), java.lang.Object(List(EOC, NULL))) → 2009_0_length_Return(EOS(STATIC_2009), java.lang.Object(List(EOC, NULL)))
1924_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981)), java.lang.Object(List(EOC, NULL))) → 2023_0_length_Return(EOS(STATIC_2023), java.lang.Object(List(EOC, NULL)))
1924_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3294))))) → 2566_0_length_Return(EOS(STATIC_2566), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3294)))))
1924_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3313))))) → 2579_0_length_Return(EOS(STATIC_2579), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3313)))))
1924_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3332))))) → 2590_0_length_Return(EOS(STATIC_2590), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3332)))))
1933_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL), NULL) → 1962_0_length_Return(EOS(STATIC_1962), NULL, NULL)
1933_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970)), java.lang.Object(List(EOC, NULL))) → 2000_0_length_Return(EOS(STATIC_2000), java.lang.Object(List(EOC, NULL)))
1933_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977)), java.lang.Object(List(EOC, NULL))) → 2011_0_length_Return(EOS(STATIC_2011), java.lang.Object(List(EOC, NULL)))
1933_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981)), java.lang.Object(List(EOC, NULL))) → 2025_0_length_Return(EOS(STATIC_2025), java.lang.Object(List(EOC, NULL)))
1933_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3298))))) → 2569_0_length_Return(EOS(STATIC_2569), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3298)))))
1933_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3317))))) → 2582_0_length_Return(EOS(STATIC_2582), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3317)))))
1933_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3336))))) → 2593_0_length_Return(EOS(STATIC_2593), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3336)))))
1936_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL), NULL) → 1966_0_length_Return(EOS(STATIC_1966), NULL, NULL)
1936_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970)), java.lang.Object(List(EOC, NULL))) → 2001_0_length_Return(EOS(STATIC_2001), java.lang.Object(List(EOC, NULL)))
1936_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977)), java.lang.Object(List(EOC, NULL))) → 2013_0_length_Return(EOS(STATIC_2013), java.lang.Object(List(EOC, NULL)))
1936_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981)), java.lang.Object(List(EOC, NULL))) → 2027_0_length_Return(EOS(STATIC_2027), java.lang.Object(List(EOC, NULL)))
1936_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3302))))) → 2573_0_length_Return(EOS(STATIC_2573), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3302)))))
1936_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3321))))) → 2585_0_length_Return(EOS(STATIC_2585), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3321)))))
1936_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3340))))) → 2596_0_length_Return(EOS(STATIC_2596), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3340)))))
1957_0_length_Return(EOS(STATIC_1957), NULL, NULL) → 1964_0_length_IntArithmetic(EOS(STATIC_1964))
1962_0_length_Return(EOS(STATIC_1962), NULL, NULL) → 1968_0_length_IntArithmetic(EOS(STATIC_1968))
1964_0_length_IntArithmetic(EOS(STATIC_1964)) → 1970_0_length_Return(EOS(STATIC_1970))
1966_0_length_Return(EOS(STATIC_1966), NULL, NULL) → 1975_0_length_IntArithmetic(EOS(STATIC_1975))
1968_0_length_IntArithmetic(EOS(STATIC_1968)) → 1977_0_length_Return(EOS(STATIC_1977))
1975_0_length_IntArithmetic(EOS(STATIC_1975)) → 1981_0_length_Return(EOS(STATIC_1981))
1999_0_length_Return(EOS(STATIC_1999), java.lang.Object(List(EOC, NULL))) → 2072_0_length_Return(EOS(STATIC_2072), java.lang.Object(List(EOC, NULL)))
2000_0_length_Return(EOS(STATIC_2000), java.lang.Object(List(EOC, NULL))) → 2080_0_length_Return(EOS(STATIC_2080), java.lang.Object(List(EOC, NULL)))
2001_0_length_Return(EOS(STATIC_2001), java.lang.Object(List(EOC, NULL))) → 2088_0_length_Return(EOS(STATIC_2088), java.lang.Object(List(EOC, NULL)))
2009_0_length_Return(EOS(STATIC_2009), java.lang.Object(List(EOC, NULL))) → 1999_0_length_Return(EOS(STATIC_1999), java.lang.Object(List(EOC, NULL)))
2011_0_length_Return(EOS(STATIC_2011), java.lang.Object(List(EOC, NULL))) → 2000_0_length_Return(EOS(STATIC_2000), java.lang.Object(List(EOC, NULL)))
2013_0_length_Return(EOS(STATIC_2013), java.lang.Object(List(EOC, NULL))) → 2001_0_length_Return(EOS(STATIC_2001), java.lang.Object(List(EOC, NULL)))
2023_0_length_Return(EOS(STATIC_2023), java.lang.Object(List(EOC, NULL))) → 1999_0_length_Return(EOS(STATIC_1999), java.lang.Object(List(EOC, NULL)))
2025_0_length_Return(EOS(STATIC_2025), java.lang.Object(List(EOC, NULL))) → 2000_0_length_Return(EOS(STATIC_2000), java.lang.Object(List(EOC, NULL)))
2027_0_length_Return(EOS(STATIC_2027), java.lang.Object(List(EOC, NULL))) → 2001_0_length_Return(EOS(STATIC_2001), java.lang.Object(List(EOC, NULL)))
2072_0_length_Return(EOS(STATIC_2072), java.lang.Object(List(EOC, o1603))) → 2152_0_length_Return(EOS(STATIC_2152), java.lang.Object(List(EOC, o1603)))
2080_0_length_Return(EOS(STATIC_2080), java.lang.Object(List(EOC, o1661))) → 2160_0_length_Return(EOS(STATIC_2160), java.lang.Object(List(EOC, o1661)))
2088_0_length_Return(EOS(STATIC_2088), java.lang.Object(List(EOC, o1712))) → 2168_0_length_Return(EOS(STATIC_2168), java.lang.Object(List(EOC, o1712)))
2152_0_length_Return(EOS(STATIC_2152), java.lang.Object(List(EOC, o1978))) → 2286_0_length_Return(EOS(STATIC_2286), java.lang.Object(List(EOC, o1978)))
2160_0_length_Return(EOS(STATIC_2160), java.lang.Object(List(EOC, o2040))) → 2294_0_length_Return(EOS(STATIC_2294), java.lang.Object(List(EOC, o2040)))
2168_0_length_Return(EOS(STATIC_2168), java.lang.Object(List(EOC, o2095))) → 2303_0_length_Return(EOS(STATIC_2303), java.lang.Object(List(EOC, o2095)))
2286_0_length_Return(EOS(STATIC_2286), java.lang.Object(List(EOC, o2468))) → 2426_0_length_Return(EOS(STATIC_2426), java.lang.Object(List(EOC, o2468)))
2294_0_length_Return(EOS(STATIC_2294), java.lang.Object(List(EOC, o2530))) → 2437_0_length_Return(EOS(STATIC_2437), java.lang.Object(List(EOC, o2530)))
2303_0_length_Return(EOS(STATIC_2303), java.lang.Object(List(EOC, o2585))) → 2447_0_length_Return(EOS(STATIC_2447), java.lang.Object(List(EOC, o2585)))
2426_0_length_Return(EOS(STATIC_2426), java.lang.Object(List(EOC, o2906))) → 2482_0_length_IntArithmetic(EOS(STATIC_2482))
2437_0_length_Return(EOS(STATIC_2437), java.lang.Object(List(EOC, o2968))) → 2484_0_length_IntArithmetic(EOS(STATIC_2484))
2447_0_length_Return(EOS(STATIC_2447), java.lang.Object(List(EOC, o3023))) → 2489_0_length_IntArithmetic(EOS(STATIC_2489))
2482_0_length_IntArithmetic(EOS(STATIC_2482)) → 2496_0_length_Return(EOS(STATIC_2496))
2484_0_length_IntArithmetic(EOS(STATIC_2484)) → 2501_0_length_Return(EOS(STATIC_2501))
2489_0_length_IntArithmetic(EOS(STATIC_2489)) → 2506_0_length_Return(EOS(STATIC_2506))
2566_0_length_Return(EOS(STATIC_2566), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3294))))) → 2426_0_length_Return(EOS(STATIC_2426), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3294)))))
2569_0_length_Return(EOS(STATIC_2569), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3298))))) → 2437_0_length_Return(EOS(STATIC_2437), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3298)))))
2573_0_length_Return(EOS(STATIC_2573), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3302))))) → 2447_0_length_Return(EOS(STATIC_2447), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3302)))))
2579_0_length_Return(EOS(STATIC_2579), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3313))))) → 2426_0_length_Return(EOS(STATIC_2426), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3313)))))
2582_0_length_Return(EOS(STATIC_2582), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3317))))) → 2437_0_length_Return(EOS(STATIC_2437), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3317)))))
2585_0_length_Return(EOS(STATIC_2585), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3321))))) → 2447_0_length_Return(EOS(STATIC_2447), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3321)))))
2590_0_length_Return(EOS(STATIC_2590), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3332))))) → 2426_0_length_Return(EOS(STATIC_2426), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3332)))))
2593_0_length_Return(EOS(STATIC_2593), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3336))))) → 2437_0_length_Return(EOS(STATIC_2437), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3336)))))
2596_0_length_Return(EOS(STATIC_2596), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3340))))) → 2447_0_length_Return(EOS(STATIC_2447), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o3340)))))

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

P rules:
1870_0_length_NONNULL(EOS(STATIC_1870), java.lang.Object(List(EOC, x0)), java.lang.Object(List(EOC, x0))) → 1936_1_length_InvokeMethod(1870_0_length_NONNULL(EOS(STATIC_1870), x0, x0), x0)
1870_0_length_NONNULL(EOS(STATIC_1870), java.lang.Object(List(EOC, x0)), java.lang.Object(List(EOC, x0))) → 1933_1_length_InvokeMethod(1870_0_length_NONNULL(EOS(STATIC_1870), x0, x0), x0)
1870_0_length_NONNULL(EOS(STATIC_1870), java.lang.Object(List(EOC, x0)), java.lang.Object(List(EOC, x0))) → 1924_1_length_InvokeMethod(1870_0_length_NONNULL(EOS(STATIC_1870), x0, x0), x0)
R rules:
1870_0_length_NONNULL(EOS(STATIC_1870), NULL, NULL) → 1878_0_length_Return(EOS(STATIC_1878), NULL)
1924_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL), NULL) → 1970_0_length_Return(EOS(STATIC_1970))
1933_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL), NULL) → 1977_0_length_Return(EOS(STATIC_1977))
1936_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL), NULL) → 1981_0_length_Return(EOS(STATIC_1981))
1924_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2496_0_length_Return(EOS(STATIC_2496))
1924_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2496_0_length_Return(EOS(STATIC_2496))
1924_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2496_0_length_Return(EOS(STATIC_2496))
1924_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970)), java.lang.Object(List(EOC, NULL))) → 2496_0_length_Return(EOS(STATIC_2496))
1924_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977)), java.lang.Object(List(EOC, NULL))) → 2496_0_length_Return(EOS(STATIC_2496))
1924_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981)), java.lang.Object(List(EOC, NULL))) → 2496_0_length_Return(EOS(STATIC_2496))
1933_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2501_0_length_Return(EOS(STATIC_2501))
1933_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2501_0_length_Return(EOS(STATIC_2501))
1933_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2501_0_length_Return(EOS(STATIC_2501))
1933_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970)), java.lang.Object(List(EOC, NULL))) → 2501_0_length_Return(EOS(STATIC_2501))
1933_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977)), java.lang.Object(List(EOC, NULL))) → 2501_0_length_Return(EOS(STATIC_2501))
1933_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981)), java.lang.Object(List(EOC, NULL))) → 2501_0_length_Return(EOS(STATIC_2501))
1936_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2506_0_length_Return(EOS(STATIC_2506))
1936_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2506_0_length_Return(EOS(STATIC_2506))
1936_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, x0))))) → 2506_0_length_Return(EOS(STATIC_2506))
1936_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970)), java.lang.Object(List(EOC, NULL))) → 2506_0_length_Return(EOS(STATIC_2506))
1936_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977)), java.lang.Object(List(EOC, NULL))) → 2506_0_length_Return(EOS(STATIC_2506))
1936_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981)), java.lang.Object(List(EOC, NULL))) → 2506_0_length_Return(EOS(STATIC_2506))

Filtered ground terms:

1870_0_length_NONNULL(x1, x2, x3) → 1870_0_length_NONNULL(x2, x3)
List(x1, x2) → List(x2)
2506_0_length_Return(x1) → 2506_0_length_Return
1981_0_length_Return(x1) → 1981_0_length_Return
1977_0_length_Return(x1) → 1977_0_length_Return
1970_0_length_Return(x1) → 1970_0_length_Return
2501_0_length_Return(x1) → 2501_0_length_Return
2496_0_length_Return(x1) → 2496_0_length_Return
1878_0_length_Return(x1, x2) → 1878_0_length_Return

Filtered duplicate args:

1870_0_length_NONNULL(x1, x2) → 1870_0_length_NONNULL(x2)

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

P rules:
1870_0_length_NONNULL(java.lang.Object(List(x0))) → 1936_1_length_InvokeMethod(1870_0_length_NONNULL(x0), x0)
1870_0_length_NONNULL(java.lang.Object(List(x0))) → 1933_1_length_InvokeMethod(1870_0_length_NONNULL(x0), x0)
1870_0_length_NONNULL(java.lang.Object(List(x0))) → 1924_1_length_InvokeMethod(1870_0_length_NONNULL(x0), x0)
R rules:
1870_0_length_NONNULL(NULL) → 1878_0_length_Return
1924_1_length_InvokeMethod(1878_0_length_Return, NULL) → 1970_0_length_Return
1933_1_length_InvokeMethod(1878_0_length_Return, NULL) → 1977_0_length_Return
1936_1_length_InvokeMethod(1878_0_length_Return, NULL) → 1981_0_length_Return
1924_1_length_InvokeMethod(2496_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2496_0_length_Return
1924_1_length_InvokeMethod(2501_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2496_0_length_Return
1924_1_length_InvokeMethod(2506_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2496_0_length_Return
1924_1_length_InvokeMethod(1970_0_length_Return, java.lang.Object(List(NULL))) → 2496_0_length_Return
1924_1_length_InvokeMethod(1977_0_length_Return, java.lang.Object(List(NULL))) → 2496_0_length_Return
1924_1_length_InvokeMethod(1981_0_length_Return, java.lang.Object(List(NULL))) → 2496_0_length_Return
1933_1_length_InvokeMethod(2496_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2501_0_length_Return
1933_1_length_InvokeMethod(2501_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2501_0_length_Return
1933_1_length_InvokeMethod(2506_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2501_0_length_Return
1933_1_length_InvokeMethod(1970_0_length_Return, java.lang.Object(List(NULL))) → 2501_0_length_Return
1933_1_length_InvokeMethod(1977_0_length_Return, java.lang.Object(List(NULL))) → 2501_0_length_Return
1933_1_length_InvokeMethod(1981_0_length_Return, java.lang.Object(List(NULL))) → 2501_0_length_Return
1936_1_length_InvokeMethod(2496_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2506_0_length_Return
1936_1_length_InvokeMethod(2501_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2506_0_length_Return
1936_1_length_InvokeMethod(2506_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 2506_0_length_Return
1936_1_length_InvokeMethod(1970_0_length_Return, java.lang.Object(List(NULL))) → 2506_0_length_Return
1936_1_length_InvokeMethod(1977_0_length_Return, java.lang.Object(List(NULL))) → 2506_0_length_Return
1936_1_length_InvokeMethod(1981_0_length_Return, java.lang.Object(List(NULL))) → 2506_0_length_Return

Performed bisimulation on rules. Used the following equivalence classes: {[1878_0_length_Return, 1970_0_length_Return, 1977_0_length_Return, 1981_0_length_Return, 2496_0_length_Return, 2501_0_length_Return, 2506_0_length_Return]=1878_0_length_Return, [1924_1_length_InvokeMethod_2, 1933_1_length_InvokeMethod_2, 1936_1_length_InvokeMethod_2]=1924_1_length_InvokeMethod_2}

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

P rules:
1870_0_LENGTH_NONNULL(java.lang.Object(List(x0))) → 1870_0_LENGTH_NONNULL(x0)
R rules:
1870_0_length_NONNULL(NULL) → 1878_0_length_Return
1924_1_length_InvokeMethod(1878_0_length_Return, NULL) → 1878_0_length_Return
1924_1_length_InvokeMethod(1878_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 1878_0_length_Return
1924_1_length_InvokeMethod(1878_0_length_Return, java.lang.Object(List(NULL))) → 1878_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:
1870_0_length_NONNULL(NULL) → 1878_0_length_Return
1924_1_length_InvokeMethod(1878_0_length_Return, NULL) → 1878_0_length_Return
1924_1_length_InvokeMethod(1878_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 1878_0_length_Return
1924_1_length_InvokeMethod(1878_0_length_Return, java.lang.Object(List(NULL))) → 1878_0_length_Return

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

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

The set Q consists of the following terms:
1870_0_length_NONNULL(NULL)
1924_1_length_InvokeMethod(1878_0_length_Return, NULL)
1924_1_length_InvokeMethod(1878_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0)))))
1924_1_length_InvokeMethod(1878_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:

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

The TRS R consists of the following rules:

1870_0_length_NONNULL(NULL) → 1878_0_length_Return
1924_1_length_InvokeMethod(1878_0_length_Return, NULL) → 1878_0_length_Return
1924_1_length_InvokeMethod(1878_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0))))) → 1878_0_length_Return
1924_1_length_InvokeMethod(1878_0_length_Return, java.lang.Object(List(NULL))) → 1878_0_length_Return

The set Q consists of the following terms:

1870_0_length_NONNULL(NULL)
1924_1_length_InvokeMethod(1878_0_length_Return, NULL)
1924_1_length_InvokeMethod(1878_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0)))))
1924_1_length_InvokeMethod(1878_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:

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

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

1870_0_length_NONNULL(NULL)
1924_1_length_InvokeMethod(1878_0_length_Return, NULL)
1924_1_length_InvokeMethod(1878_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0)))))
1924_1_length_InvokeMethod(1878_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].

1870_0_length_NONNULL(NULL)
1924_1_length_InvokeMethod(1878_0_length_Return, NULL)
1924_1_length_InvokeMethod(1878_0_length_Return, java.lang.Object(List(java.lang.Object(List(x0)))))
1924_1_length_InvokeMethod(1878_0_length_Return, java.lang.Object(List(NULL)))

### (20) Obligation:

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

1870_0_LENGTH_NONNULL(java.lang.Object(List(x0[0]))) → 1870_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:

• 1870_0_LENGTH_NONNULL(java.lang.Object(List(x0[0]))) → 1870_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:
2003_0_test_LT(EOS(STATIC_2003), java.lang.Object(ARRAY(matching1)), i750, i750) → 2021_0_test_LT(EOS(STATIC_2021), java.lang.Object(ARRAY(3)), i750, i750) | =(matching1, 3)
2021_0_test_LT(EOS(STATIC_2021), java.lang.Object(ARRAY(matching1)), i750, i750) → 2039_0_test_Load(EOS(STATIC_2039), java.lang.Object(ARRAY(3)), i750) | &&(>=(i750, 0), =(matching1, 3))
2039_0_test_Load(EOS(STATIC_2039), java.lang.Object(ARRAY(matching1)), i750) → 2045_0_test_Load(EOS(STATIC_2045), java.lang.Object(ARRAY(3)), i750, java.lang.Object(ARRAY(3))) | =(matching1, 3)
2045_0_test_Load(EOS(STATIC_2045), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(ARRAY(matching2))) → 2064_0_test_ArrayAccess(EOS(STATIC_2064), java.lang.Object(ARRAY(3)), i750, java.lang.Object(ARRAY(3)), i750) | &&(=(matching1, 3), =(matching2, 3))
2064_0_test_ArrayAccess(EOS(STATIC_2064), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(ARRAY(matching2)), i750) → 2104_0_test_InvokeMethod(EOS(STATIC_2104), java.lang.Object(ARRAY(3)), i750, o1796) | &&(&&(<(i750, 3), =(matching1, 3)), =(matching2, 3))
2104_0_test_InvokeMethod(EOS(STATIC_2104), java.lang.Object(ARRAY(matching1)), i750, o1796) → 2112_1_test_InvokeMethod(2112_0_length_Load(EOS(STATIC_2112), o1796), java.lang.Object(ARRAY(3)), i750, o1796) | =(matching1, 3)
2112_1_test_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL, matching1), java.lang.Object(ARRAY(matching2)), i750, NULL) → 2246_0_length_Return(EOS(STATIC_2246), java.lang.Object(ARRAY(3)), i750, NULL, NULL, 0) | &&(=(matching1, 0), =(matching2, 3))
2112_1_test_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970), matching1), java.lang.Object(ARRAY(matching2)), i750, java.lang.Object(List(EOC))) → 2247_0_length_Return(EOS(STATIC_2247), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 3))
2112_1_test_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977), matching1), java.lang.Object(ARRAY(matching2)), i750, java.lang.Object(List(EOC))) → 2253_0_length_Return(EOS(STATIC_2253), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 3))
2112_1_test_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981), matching1), java.lang.Object(ARRAY(matching2)), i750, java.lang.Object(List(EOC))) → 2262_0_length_Return(EOS(STATIC_2262), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 3))
2112_1_test_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496), i1297), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC))) → 2577_0_length_Return(EOS(STATIC_2577), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), i1297) | =(matching1, 3)
2112_1_test_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501), i1305), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC))) → 2587_0_length_Return(EOS(STATIC_2587), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), i1305) | =(matching1, 3)
2112_1_test_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506), i1317), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC))) → 2600_0_length_Return(EOS(STATIC_2600), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), i1317) | =(matching1, 3)
2246_0_length_Return(EOS(STATIC_2246), java.lang.Object(ARRAY(matching1)), i750, NULL, NULL, matching2) → 2324_0_test_Store(EOS(STATIC_2324), java.lang.Object(ARRAY(3)), i750, 0) | &&(=(matching1, 3), =(matching2, 0))
2324_0_test_Store(EOS(STATIC_2324), java.lang.Object(ARRAY(matching1)), i750, matching2) → 2343_0_test_ConstantStackPush(EOS(STATIC_2343), java.lang.Object(ARRAY(3)), i750, 0) | &&(=(matching1, 3), =(matching2, 0))
2343_0_test_ConstantStackPush(EOS(STATIC_2343), java.lang.Object(ARRAY(matching1)), i750, matching2) → 2364_0_test_Store(EOS(STATIC_2364), java.lang.Object(ARRAY(3)), i750, 0, 0) | &&(=(matching1, 3), =(matching2, 0))
2364_0_test_Store(EOS(STATIC_2364), java.lang.Object(ARRAY(matching1)), i750, matching2, matching3) → 2372_0_test_Load(EOS(STATIC_2372), java.lang.Object(ARRAY(3)), i750, 0, 0) | &&(&&(=(matching1, 3), =(matching2, 0)), =(matching3, 0))
2372_0_test_Load(EOS(STATIC_2372), java.lang.Object(ARRAY(matching1)), i750, matching2, matching3) → 2411_0_test_Load(EOS(STATIC_2411), java.lang.Object(ARRAY(3)), i750, 0, 0, 0) | &&(&&(=(matching1, 3), =(matching2, 0)), =(matching3, 0))
2411_0_test_Load(EOS(STATIC_2411), java.lang.Object(ARRAY(matching1)), i750, matching2, matching3, matching4) → 2480_0_test_GE(EOS(STATIC_2480), java.lang.Object(ARRAY(3)), i750, 0, 0, 0, 0) | &&(&&(&&(=(matching1, 3), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2480_0_test_GE(EOS(STATIC_2480), java.lang.Object(ARRAY(matching1)), i750, matching2, matching3, matching4, matching5) → 2493_0_test_Load(EOS(STATIC_2493), java.lang.Object(ARRAY(3)), i750) | &&(&&(&&(&&(=(matching1, 3), =(matching2, 0)), =(matching3, 0)), =(matching4, 0)), =(matching5, 0))
2493_0_test_Load(EOS(STATIC_2493), java.lang.Object(ARRAY(matching1)), i750) → 2738_0_test_Load(EOS(STATIC_2738), java.lang.Object(ARRAY(3)), i750) | =(matching1, 3)
2738_0_test_Load(EOS(STATIC_2738), java.lang.Object(ARRAY(matching1)), i750) → 3154_0_test_Load(EOS(STATIC_3154), java.lang.Object(ARRAY(3)), i750) | =(matching1, 3)
3154_0_test_Load(EOS(STATIC_3154), java.lang.Object(ARRAY(matching1)), i750) → 3416_0_test_Load(EOS(STATIC_3416), java.lang.Object(ARRAY(3)), i750) | =(matching1, 3)
3416_0_test_Load(EOS(STATIC_3416), java.lang.Object(ARRAY(matching1)), i750) → 3796_0_test_Load(EOS(STATIC_3796), java.lang.Object(ARRAY(3)), i750) | =(matching1, 3)
3796_0_test_Load(EOS(STATIC_3796), java.lang.Object(ARRAY(matching1)), i750) → 4448_0_test_Load(EOS(STATIC_4448), java.lang.Object(ARRAY(3)), i750) | =(matching1, 3)
4448_0_test_Load(EOS(STATIC_4448), java.lang.Object(ARRAY(matching1)), i750) → 4453_0_test_Load(EOS(STATIC_4453), i750, java.lang.Object(ARRAY(3))) | =(matching1, 3)
4453_0_test_Load(EOS(STATIC_4453), i750, java.lang.Object(ARRAY(matching1))) → 4458_0_test_ConstantStackPush(EOS(STATIC_4458), java.lang.Object(ARRAY(3)), i750) | =(matching1, 3)
4458_0_test_ConstantStackPush(EOS(STATIC_4458), java.lang.Object(ARRAY(matching1)), i750) → 4462_0_test_IntArithmetic(EOS(STATIC_4462), java.lang.Object(ARRAY(3)), i750, 1) | =(matching1, 3)
4462_0_test_IntArithmetic(EOS(STATIC_4462), java.lang.Object(ARRAY(matching1)), i750, matching2) → 4466_0_test_InvokeMethod(EOS(STATIC_4466), java.lang.Object(ARRAY(3)), -(i750, 1)) | &&(&&(>=(i750, 0), =(matching1, 3)), =(matching2, 1))
4466_0_test_InvokeMethod(EOS(STATIC_4466), java.lang.Object(ARRAY(matching1)), i2135) → 4469_1_test_InvokeMethod(4469_0_test_Load(EOS(STATIC_4469), java.lang.Object(ARRAY(3)), i2135), java.lang.Object(ARRAY(3)), i2135) | =(matching1, 3)
4469_0_test_Load(EOS(STATIC_4469), java.lang.Object(ARRAY(matching1)), i2135) → 4473_0_test_Load(EOS(STATIC_4473), java.lang.Object(ARRAY(3)), i2135) | =(matching1, 3)
4473_0_test_Load(EOS(STATIC_4473), java.lang.Object(ARRAY(matching1)), i2135) → 1992_0_test_Load(EOS(STATIC_1992), java.lang.Object(ARRAY(3)), i2135) | =(matching1, 3)
1992_0_test_Load(EOS(STATIC_1992), java.lang.Object(ARRAY(matching1)), i725) → 2003_0_test_LT(EOS(STATIC_2003), java.lang.Object(ARRAY(3)), i725, i725) | =(matching1, 3)
2247_0_length_Return(EOS(STATIC_2247), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC)), matching2) → 2254_0_length_Return(EOS(STATIC_2254), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 3), =(matching2, 1))
2254_0_length_Return(EOS(STATIC_2254), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC)), matching2) → 2263_0_length_Return(EOS(STATIC_2263), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 3), =(matching2, 1))
2263_0_length_Return(EOS(STATIC_2263), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC)), matching2) → 2271_0_length_Return(EOS(STATIC_2271), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 3), =(matching2, 1))
2271_0_length_Return(EOS(STATIC_2271), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC)), i1066) → 2454_0_length_Return(EOS(STATIC_2454), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), i1066) | =(matching1, 3)
2454_0_length_Return(EOS(STATIC_2454), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC)), i1256) → 2491_0_test_Store(EOS(STATIC_2491), java.lang.Object(ARRAY(3)), i750, i1256) | =(matching1, 3)
2491_0_test_Store(EOS(STATIC_2491), java.lang.Object(ARRAY(matching1)), i750, i1256) → 2508_0_test_ConstantStackPush(EOS(STATIC_2508), java.lang.Object(ARRAY(3)), i750, i1256) | =(matching1, 3)
2508_0_test_ConstantStackPush(EOS(STATIC_2508), java.lang.Object(ARRAY(matching1)), i750, i1256) → 2515_0_test_Store(EOS(STATIC_2515), java.lang.Object(ARRAY(3)), i750, i1256, 0) | =(matching1, 3)
2515_0_test_Store(EOS(STATIC_2515), java.lang.Object(ARRAY(matching1)), i750, i1256, matching2) → 2561_0_test_Load(EOS(STATIC_2561), java.lang.Object(ARRAY(3)), i750, i1256, 0) | &&(=(matching1, 3), =(matching2, 0))
2561_0_test_Load(EOS(STATIC_2561), java.lang.Object(ARRAY(matching1)), i750, i1256, matching2) → 2685_0_test_Load(EOS(STATIC_2685), java.lang.Object(ARRAY(3)), i750, i1256, 0) | &&(=(matching1, 3), =(matching2, 0))
2685_0_test_Load(EOS(STATIC_2685), java.lang.Object(ARRAY(matching1)), i750, i1256, i1414) → 3033_0_test_Load(EOS(STATIC_3033), java.lang.Object(ARRAY(3)), i750, i1256, i1414) | =(matching1, 3)
3033_0_test_Load(EOS(STATIC_3033), java.lang.Object(ARRAY(matching1)), i750, i1256, i1538) → 3346_0_test_Load(EOS(STATIC_3346), java.lang.Object(ARRAY(3)), i750, i1256, i1538) | =(matching1, 3)
3346_0_test_Load(EOS(STATIC_3346), java.lang.Object(ARRAY(matching1)), i750, i1256, i1670) → 3696_0_test_Load(EOS(STATIC_3696), java.lang.Object(ARRAY(3)), i750, i1256, i1670) | =(matching1, 3)
3696_0_test_Load(EOS(STATIC_3696), java.lang.Object(ARRAY(matching1)), i750, i1256, i1788) → 4420_0_test_Load(EOS(STATIC_4420), java.lang.Object(ARRAY(3)), i750, i1256, i1788) | =(matching1, 3)
4420_0_test_Load(EOS(STATIC_4420), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126) → 4427_0_test_Load(EOS(STATIC_4427), java.lang.Object(ARRAY(3)), i750, i1256, i2126, i2126) | =(matching1, 3)
4427_0_test_Load(EOS(STATIC_4427), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, i2126) → 4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), i750, i1256, i2126, i2126, i1256) | =(matching1, 3)
4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, i2126, i1256) → 4441_0_test_GE(EOS(STATIC_4441), java.lang.Object(ARRAY(3)), i750, i1256, i2126, i2126, i1256) | =(matching1, 3)
4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, i2126, i1256) → 4442_0_test_GE(EOS(STATIC_4442), java.lang.Object(ARRAY(3)), i750, i1256, i2126, i2126, i1256) | =(matching1, 3)
4441_0_test_GE(EOS(STATIC_4441), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, i2126, i1256) → 4448_0_test_Load(EOS(STATIC_4448), java.lang.Object(ARRAY(3)), i750) | &&(>=(i2126, i1256), =(matching1, 3))
4442_0_test_GE(EOS(STATIC_4442), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, i2126, i1256) → 4449_0_test_Load(EOS(STATIC_4449), java.lang.Object(ARRAY(3)), i750, i1256, i2126) | &&(<(i2126, i1256), =(matching1, 3))
4449_0_test_Load(EOS(STATIC_4449), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126) → 4454_0_test_Load(EOS(STATIC_4454), java.lang.Object(ARRAY(3)), i750, i1256, i2126, java.lang.Object(ARRAY(3))) | =(matching1, 3)
4454_0_test_Load(EOS(STATIC_4454), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, java.lang.Object(ARRAY(matching2))) → 4459_0_test_ArrayAccess(EOS(STATIC_4459), java.lang.Object(ARRAY(3)), i750, i1256, i2126, java.lang.Object(ARRAY(3)), i750) | &&(=(matching1, 3), =(matching2, 3))
4459_0_test_ArrayAccess(EOS(STATIC_4459), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, java.lang.Object(ARRAY(matching2)), i750) → 4464_0_test_InvokeMethod(EOS(STATIC_4464), java.lang.Object(ARRAY(3)), i750, i1256, i2126, o6634) | &&(&&(<(i750, 3), =(matching1, 3)), =(matching2, 3))
4464_0_test_InvokeMethod(EOS(STATIC_4464), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, o6634) → 4467_1_test_InvokeMethod(4467_0_bubble_Load(EOS(STATIC_4467), o6634), java.lang.Object(ARRAY(3)), i750, i1256, i2126, o6634) | =(matching1, 3)
4467_1_test_InvokeMethod(4393_0_bubble_Return(EOS(STATIC_4393), NULL), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, NULL) → 4504_0_bubble_Return(EOS(STATIC_4504), java.lang.Object(ARRAY(3)), i750, i1256, i2126, NULL, NULL) | =(matching1, 3)
4467_1_test_InvokeMethod(4457_0_bubble_Return(EOS(STATIC_4457), java.lang.Object(List(o6668sub))), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, java.lang.Object(List(o6668sub))) → 4507_0_bubble_Return(EOS(STATIC_4507), java.lang.Object(ARRAY(3)), i750, i1256, i2126, java.lang.Object(List(o6668sub)), java.lang.Object(List(o6668sub))) | =(matching1, 3)
4467_1_test_InvokeMethod(4651_0_bubble_Return(EOS(STATIC_4651)), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, o6634) → 4657_0_bubble_Return(EOS(STATIC_4657), java.lang.Object(ARRAY(3)), i750, i1256, i2126, java.lang.Object(List(o6588sub))) | =(matching1, 3)
4467_1_test_InvokeMethod(4673_0_bubble_Return(EOS(STATIC_4673)), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, o6634) → 4680_0_bubble_Return(EOS(STATIC_4680), java.lang.Object(ARRAY(3)), i750, i1256, i2126, java.lang.Object(List(o7021sub))) | =(matching1, 3)
4504_0_bubble_Return(EOS(STATIC_4504), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, NULL, NULL) → 4508_0_bubble_Return(EOS(STATIC_4508), java.lang.Object(ARRAY(3)), i750, i1256, i2126, NULL, NULL) | =(matching1, 3)
4508_0_bubble_Return(EOS(STATIC_4508), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, o6678, o6678) → 4520_0_test_Inc(EOS(STATIC_4520), java.lang.Object(ARRAY(3)), i750, i1256, i2126) | =(matching1, 3)
4520_0_test_Inc(EOS(STATIC_4520), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126) → 4595_0_test_Inc(EOS(STATIC_4595), java.lang.Object(ARRAY(3)), i750, i1256, i2126) | =(matching1, 3)
4595_0_test_Inc(EOS(STATIC_4595), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126) → 4621_0_test_Inc(EOS(STATIC_4621), java.lang.Object(ARRAY(3)), i750, i1256, i2126) | =(matching1, 3)
4621_0_test_Inc(EOS(STATIC_4621), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126) → 4629_0_test_JMP(EOS(STATIC_4629), java.lang.Object(ARRAY(3)), i750, i1256, +(i2126, 1)) | =(matching1, 3)
4629_0_test_JMP(EOS(STATIC_4629), java.lang.Object(ARRAY(matching1)), i750, i1256, i2200) → 4633_0_test_Load(EOS(STATIC_4633), java.lang.Object(ARRAY(3)), i750, i1256, i2200) | =(matching1, 3)
4633_0_test_Load(EOS(STATIC_4633), java.lang.Object(ARRAY(matching1)), i750, i1256, i2200) → 4420_0_test_Load(EOS(STATIC_4420), java.lang.Object(ARRAY(3)), i750, i1256, i2200) | =(matching1, 3)
4507_0_bubble_Return(EOS(STATIC_4507), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, java.lang.Object(List(o6668sub)), java.lang.Object(List(o6668sub))) → 4508_0_bubble_Return(EOS(STATIC_4508), java.lang.Object(ARRAY(3)), i750, i1256, i2126, java.lang.Object(List(o6668sub)), java.lang.Object(List(o6668sub))) | =(matching1, 3)
4657_0_bubble_Return(EOS(STATIC_4657), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, java.lang.Object(List(o6588sub))) → 4613_0_bubble_Return(EOS(STATIC_4613), java.lang.Object(ARRAY(3)), i750, i1256, i2126, java.lang.Object(List(o6588sub))) | =(matching1, 3)
4613_0_bubble_Return(EOS(STATIC_4613), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, java.lang.Object(List(o6881sub))) → 4621_0_test_Inc(EOS(STATIC_4621), java.lang.Object(ARRAY(3)), i750, i1256, i2126) | =(matching1, 3)
4680_0_bubble_Return(EOS(STATIC_4680), java.lang.Object(ARRAY(matching1)), i750, i1256, i2126, java.lang.Object(List(o7021sub))) → 4613_0_bubble_Return(EOS(STATIC_4613), java.lang.Object(ARRAY(3)), i750, i1256, i2126, java.lang.Object(List(o7021sub))) | =(matching1, 3)
2253_0_length_Return(EOS(STATIC_2253), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC)), matching2) → 2254_0_length_Return(EOS(STATIC_2254), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 3), =(matching2, 1))
2262_0_length_Return(EOS(STATIC_2262), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC)), matching2) → 2263_0_length_Return(EOS(STATIC_2263), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 3), =(matching2, 1))
2577_0_length_Return(EOS(STATIC_2577), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC)), i1297) → 2454_0_length_Return(EOS(STATIC_2454), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), i1297) | =(matching1, 3)
2587_0_length_Return(EOS(STATIC_2587), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC)), i1305) → 2454_0_length_Return(EOS(STATIC_2454), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), i1305) | =(matching1, 3)
2600_0_length_Return(EOS(STATIC_2600), java.lang.Object(ARRAY(matching1)), i750, java.lang.Object(List(EOC)), i1317) → 2454_0_length_Return(EOS(STATIC_2454), java.lang.Object(ARRAY(3)), i750, java.lang.Object(List(EOC)), i1317) | =(matching1, 3)
R rules:
2112_0_length_Load(EOS(STATIC_2112), o1796) → 2125_0_length_Load(EOS(STATIC_2125), o1796)
2125_0_length_Load(EOS(STATIC_2125), o1796) → 2146_0_length_Load(EOS(STATIC_2146), o1796)
2146_0_length_Load(EOS(STATIC_2146), o1796) → 2182_0_length_Load(EOS(STATIC_2182), o1796)
2182_0_length_Load(EOS(STATIC_2182), o1796) → 2191_0_length_Load(EOS(STATIC_2191), o1796)
2191_0_length_Load(EOS(STATIC_2191), o1796) → 2205_0_length_Load(EOS(STATIC_2205), o1796)
2205_0_length_Load(EOS(STATIC_2205), o1796) → 1868_0_length_Load(EOS(STATIC_1868), o1796)
4467_0_bubble_Load(EOS(STATIC_4467), o6634) → 4471_0_bubble_Load(EOS(STATIC_4471), o6634)
4471_0_bubble_Load(EOS(STATIC_4471), o6634) → 4475_0_bubble_Load(EOS(STATIC_4475), o6634)
4475_0_bubble_Load(EOS(STATIC_4475), o6634) → 4480_0_bubble_Load(EOS(STATIC_4480), o6634)
4480_0_bubble_Load(EOS(STATIC_4480), o6634) → 4484_0_bubble_Load(EOS(STATIC_4484), o6634)
4484_0_bubble_Load(EOS(STATIC_4484), o6634) → 4489_0_bubble_Load(EOS(STATIC_4489), o6634)
4489_0_bubble_Load(EOS(STATIC_4489), o6634) → 4387_0_bubble_Load(EOS(STATIC_4387), o6634)
1943_0_length_Load(EOS(STATIC_1943), o1171) → 1868_0_length_Load(EOS(STATIC_1868), o1171)
1947_0_length_Load(EOS(STATIC_1947), o1173) → 1868_0_length_Load(EOS(STATIC_1868), o1173)
1953_0_length_Load(EOS(STATIC_1953), o1177) → 1868_0_length_Load(EOS(STATIC_1868), o1177)
4642_0_bubble_Load(EOS(STATIC_4642), java.lang.Object(List(EOC))) → 4387_0_bubble_Load(EOS(STATIC_4387), java.lang.Object(List(EOC)))
1868_0_length_Load(EOS(STATIC_1868), o1157) → 1870_0_length_NONNULL(EOS(STATIC_1870), o1157, o1157)
1870_0_length_NONNULL(EOS(STATIC_1870), java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1871_0_length_NONNULL(EOS(STATIC_1871), java.lang.Object(o1163sub), java.lang.Object(o1163sub))
1870_0_length_NONNULL(EOS(STATIC_1870), NULL, NULL) → 1872_0_length_NONNULL(EOS(STATIC_1872), NULL, NULL)
1871_0_length_NONNULL(EOS(STATIC_1871), java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1874_0_length_ConstantStackPush(EOS(STATIC_1874), java.lang.Object(o1163sub))
1872_0_length_NONNULL(EOS(STATIC_1872), NULL, NULL) → 1875_0_length_ConstantStackPush(EOS(STATIC_1875), NULL)
1874_0_length_ConstantStackPush(EOS(STATIC_1874), java.lang.Object(o1163sub)) → 1877_0_length_Load(EOS(STATIC_1877), java.lang.Object(o1163sub), 1)
1875_0_length_ConstantStackPush(EOS(STATIC_1875), NULL) → 1878_0_length_Return(EOS(STATIC_1878), NULL, 0)
1877_0_length_Load(EOS(STATIC_1877), java.lang.Object(o1163sub), matching1) → 1880_0_length_InvokeMethod(EOS(STATIC_1880), 1, java.lang.Object(o1163sub)) | =(matching1, 1)
1880_0_length_InvokeMethod(EOS(STATIC_1880), matching1, java.lang.Object(o1163sub)) → 1882_0_getTail_Load(EOS(STATIC_1882), 1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) | =(matching1, 1)
1882_0_getTail_Load(EOS(STATIC_1882), matching1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1887_0_getTail_FieldAccess(EOS(STATIC_1887), 1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) | =(matching1, 1)
1887_0_getTail_FieldAccess(EOS(STATIC_1887), matching1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1890_0_getTail_FieldAccess(EOS(STATIC_1890), 1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) | =(matching1, 1)
1887_0_getTail_FieldAccess(EOS(STATIC_1887), matching1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1892_0_getTail_FieldAccess(EOS(STATIC_1892), 1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) | =(matching1, 1)
1890_0_getTail_FieldAccess(EOS(STATIC_1890), matching1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1895_0_getTail_FieldAccess(EOS(STATIC_1895), 1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) | =(matching1, 1)
1890_0_getTail_FieldAccess(EOS(STATIC_1890), matching1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1896_0_getTail_FieldAccess(EOS(STATIC_1896), 1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) | =(matching1, 1)
1892_0_getTail_FieldAccess(EOS(STATIC_1892), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1897_0_getTail_FieldAccess(EOS(STATIC_1897), 1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) | =(matching1, 1)
1895_0_getTail_FieldAccess(EOS(STATIC_1895), matching1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1901_0_getTail_FieldAccess(EOS(STATIC_1901), 1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) | =(matching1, 1)
1895_0_getTail_FieldAccess(EOS(STATIC_1895), matching1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) → 1902_0_getTail_FieldAccess(EOS(STATIC_1902), 1, java.lang.Object(o1163sub), java.lang.Object(o1163sub)) | =(matching1, 1)
1896_0_getTail_FieldAccess(EOS(STATIC_1896), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1903_0_getTail_FieldAccess(EOS(STATIC_1903), 1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) | =(matching1, 1)
1897_0_getTail_FieldAccess(EOS(STATIC_1897), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1904_0_getTail_Return(EOS(STATIC_1904), 1, java.lang.Object(List(EOC)), o1171) | =(matching1, 1)
1901_0_getTail_FieldAccess(EOS(STATIC_1901), matching1, java.lang.Object(List(o1174sub)), java.lang.Object(List(o1174sub))) → 1907_0_getTail_FieldAccess(EOS(STATIC_1907), 1, java.lang.Object(List(o1174sub)), java.lang.Object(List(o1174sub))) | =(matching1, 1)
1902_0_getTail_FieldAccess(EOS(STATIC_1902), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1908_0_getTail_FieldAccess(EOS(STATIC_1908), 1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) | =(matching1, 1)
1903_0_getTail_FieldAccess(EOS(STATIC_1903), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1911_0_getTail_Return(EOS(STATIC_1911), 1, java.lang.Object(List(EOC)), o1173) | =(matching1, 1)
1904_0_getTail_Return(EOS(STATIC_1904), matching1, java.lang.Object(List(EOC)), o1171) → 1912_0_length_InvokeMethod(EOS(STATIC_1912), 1, o1171) | =(matching1, 1)
1907_0_getTail_FieldAccess(EOS(STATIC_1907), matching1, java.lang.Object(List(o1174sub)), java.lang.Object(List(o1174sub))) → 1917_0_getTail_Return(EOS(STATIC_1917), 1, java.lang.Object(List(o1174sub)), o1175) | =(matching1, 1)
1908_0_getTail_FieldAccess(EOS(STATIC_1908), matching1, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1921_0_getTail_Return(EOS(STATIC_1921), 1, java.lang.Object(List(EOC)), o1177) | =(matching1, 1)
1911_0_getTail_Return(EOS(STATIC_1911), matching1, java.lang.Object(List(EOC)), o1173) → 1923_0_length_InvokeMethod(EOS(STATIC_1923), 1, o1173) | =(matching1, 1)
1912_0_length_InvokeMethod(EOS(STATIC_1912), matching1, o1171) → 1924_1_length_InvokeMethod(1924_0_length_Load(EOS(STATIC_1924), o1171), 1, o1171) | =(matching1, 1)
1917_0_getTail_Return(EOS(STATIC_1917), matching1, java.lang.Object(List(o1174sub)), o1175) → 1921_0_getTail_Return(EOS(STATIC_1921), 1, java.lang.Object(List(o1174sub)), o1175) | =(matching1, 1)
1921_0_getTail_Return(EOS(STATIC_1921), matching1, java.lang.Object(List(EOC)), o1177) → 1931_0_length_InvokeMethod(EOS(STATIC_1931), 1, o1177) | =(matching1, 1)
1923_0_length_InvokeMethod(EOS(STATIC_1923), matching1, o1173) → 1933_1_length_InvokeMethod(1933_0_length_Load(EOS(STATIC_1933), o1173), 1, o1173) | =(matching1, 1)
1924_0_length_Load(EOS(STATIC_1924), o1171) → 1934_0_length_Load(EOS(STATIC_1934), o1171)
1924_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL, matching1), matching2, NULL) → 1957_0_length_Return(EOS(STATIC_1957), 1, NULL, NULL, 0) | &&(=(matching1, 0), =(matching2, 1))
1924_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970), matching1), matching2, java.lang.Object(List(EOC))) → 1999_0_length_Return(EOS(STATIC_1999), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1924_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977), matching1), matching2, java.lang.Object(List(EOC))) → 2009_0_length_Return(EOS(STATIC_2009), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1924_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981), matching1), matching2, java.lang.Object(List(EOC))) → 2023_0_length_Return(EOS(STATIC_2023), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1924_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496), i1297), matching1, java.lang.Object(List(EOC))) → 2566_0_length_Return(EOS(STATIC_2566), 1, java.lang.Object(List(EOC)), i1297) | =(matching1, 1)
1924_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501), i1305), matching1, java.lang.Object(List(EOC))) → 2579_0_length_Return(EOS(STATIC_2579), 1, java.lang.Object(List(EOC)), i1305) | =(matching1, 1)
1924_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506), i1317), matching1, java.lang.Object(List(EOC))) → 2590_0_length_Return(EOS(STATIC_2590), 1, java.lang.Object(List(EOC)), i1317) | =(matching1, 1)
1931_0_length_InvokeMethod(EOS(STATIC_1931), matching1, o1177) → 1936_1_length_InvokeMethod(1936_0_length_Load(EOS(STATIC_1936), o1177), 1, o1177) | =(matching1, 1)
1933_0_length_Load(EOS(STATIC_1933), o1173) → 1938_0_length_Load(EOS(STATIC_1938), o1173)
1933_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL, matching1), matching2, NULL) → 1962_0_length_Return(EOS(STATIC_1962), 1, NULL, NULL, 0) | &&(=(matching1, 0), =(matching2, 1))
1933_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970), matching1), matching2, java.lang.Object(List(EOC))) → 2000_0_length_Return(EOS(STATIC_2000), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1933_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977), matching1), matching2, java.lang.Object(List(EOC))) → 2011_0_length_Return(EOS(STATIC_2011), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1933_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981), matching1), matching2, java.lang.Object(List(EOC))) → 2025_0_length_Return(EOS(STATIC_2025), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1933_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496), i1297), matching1, java.lang.Object(List(EOC))) → 2569_0_length_Return(EOS(STATIC_2569), 1, java.lang.Object(List(EOC)), i1297) | =(matching1, 1)
1933_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501), i1305), matching1, java.lang.Object(List(EOC))) → 2582_0_length_Return(EOS(STATIC_2582), 1, java.lang.Object(List(EOC)), i1305) | =(matching1, 1)
1933_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506), i1317), matching1, java.lang.Object(List(EOC))) → 2593_0_length_Return(EOS(STATIC_2593), 1, java.lang.Object(List(EOC)), i1317) | =(matching1, 1)
1934_0_length_Load(EOS(STATIC_1934), o1171) → 1943_0_length_Load(EOS(STATIC_1943), o1171)
1936_0_length_Load(EOS(STATIC_1936), o1177) → 1941_0_length_Load(EOS(STATIC_1941), o1177)
1936_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL, matching1), matching2, NULL) → 1966_0_length_Return(EOS(STATIC_1966), 1, NULL, NULL, 0) | &&(=(matching1, 0), =(matching2, 1))
1936_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970), matching1), matching2, java.lang.Object(List(EOC))) → 2001_0_length_Return(EOS(STATIC_2001), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1936_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977), matching1), matching2, java.lang.Object(List(EOC))) → 2013_0_length_Return(EOS(STATIC_2013), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1936_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981), matching1), matching2, java.lang.Object(List(EOC))) → 2027_0_length_Return(EOS(STATIC_2027), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
1936_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496), i1297), matching1, java.lang.Object(List(EOC))) → 2573_0_length_Return(EOS(STATIC_2573), 1, java.lang.Object(List(EOC)), i1297) | =(matching1, 1)
1936_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501), i1305), matching1, java.lang.Object(List(EOC))) → 2585_0_length_Return(EOS(STATIC_2585), 1, java.lang.Object(List(EOC)), i1305) | =(matching1, 1)
1936_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506), i1317), matching1, java.lang.Object(List(EOC))) → 2596_0_length_Return(EOS(STATIC_2596), 1, java.lang.Object(List(EOC)), i1317) | =(matching1, 1)
1938_0_length_Load(EOS(STATIC_1938), o1173) → 1947_0_length_Load(EOS(STATIC_1947), o1173)
1941_0_length_Load(EOS(STATIC_1941), o1177) → 1953_0_length_Load(EOS(STATIC_1953), o1177)
1957_0_length_Return(EOS(STATIC_1957), matching1, NULL, NULL, matching2) → 1964_0_length_IntArithmetic(EOS(STATIC_1964), 1, 0) | &&(=(matching1, 1), =(matching2, 0))
1962_0_length_Return(EOS(STATIC_1962), matching1, NULL, NULL, matching2) → 1968_0_length_IntArithmetic(EOS(STATIC_1968), 1, 0) | &&(=(matching1, 1), =(matching2, 0))
1964_0_length_IntArithmetic(EOS(STATIC_1964), matching1, matching2) → 1970_0_length_Return(EOS(STATIC_1970), 1) | &&(=(matching1, 1), =(matching2, 0))
1966_0_length_Return(EOS(STATIC_1966), matching1, NULL, NULL, matching2) → 1975_0_length_IntArithmetic(EOS(STATIC_1975), 1, 0) | &&(=(matching1, 1), =(matching2, 0))
1968_0_length_IntArithmetic(EOS(STATIC_1968), matching1, matching2) → 1977_0_length_Return(EOS(STATIC_1977), 1) | &&(=(matching1, 1), =(matching2, 0))
1975_0_length_IntArithmetic(EOS(STATIC_1975), matching1, matching2) → 1981_0_length_Return(EOS(STATIC_1981), 1) | &&(=(matching1, 1), =(matching2, 0))
1999_0_length_Return(EOS(STATIC_1999), matching1, java.lang.Object(List(EOC)), matching2) → 2072_0_length_Return(EOS(STATIC_2072), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
2000_0_length_Return(EOS(STATIC_2000), matching1, java.lang.Object(List(EOC)), matching2) → 2080_0_length_Return(EOS(STATIC_2080), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
2001_0_length_Return(EOS(STATIC_2001), matching1, java.lang.Object(List(EOC)), matching2) → 2088_0_length_Return(EOS(STATIC_2088), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
2009_0_length_Return(EOS(STATIC_2009), matching1, java.lang.Object(List(EOC)), matching2) → 1999_0_length_Return(EOS(STATIC_1999), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
2011_0_length_Return(EOS(STATIC_2011), matching1, java.lang.Object(List(EOC)), matching2) → 2000_0_length_Return(EOS(STATIC_2000), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
2013_0_length_Return(EOS(STATIC_2013), matching1, java.lang.Object(List(EOC)), matching2) → 2001_0_length_Return(EOS(STATIC_2001), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
2023_0_length_Return(EOS(STATIC_2023), matching1, java.lang.Object(List(EOC)), matching2) → 1999_0_length_Return(EOS(STATIC_1999), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
2025_0_length_Return(EOS(STATIC_2025), matching1, java.lang.Object(List(EOC)), matching2) → 2000_0_length_Return(EOS(STATIC_2000), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
2027_0_length_Return(EOS(STATIC_2027), matching1, java.lang.Object(List(EOC)), matching2) → 2001_0_length_Return(EOS(STATIC_2001), 1, java.lang.Object(List(EOC)), 1) | &&(=(matching1, 1), =(matching2, 1))
2072_0_length_Return(EOS(STATIC_2072), matching1, java.lang.Object(List(EOC)), i800) → 2152_0_length_Return(EOS(STATIC_2152), 1, java.lang.Object(List(EOC)), i800) | =(matching1, 1)
2080_0_length_Return(EOS(STATIC_2080), matching1, java.lang.Object(List(EOC)), i818) → 2160_0_length_Return(EOS(STATIC_2160), 1, java.lang.Object(List(EOC)), i818) | =(matching1, 1)
2088_0_length_Return(EOS(STATIC_2088), matching1, java.lang.Object(List(EOC)), i834) → 2168_0_length_Return(EOS(STATIC_2168), 1, java.lang.Object(List(EOC)), i834) | =(matching1, 1)
2152_0_length_Return(EOS(STATIC_2152), matching1, java.lang.Object(List(EOC)), i926) → 2286_0_length_Return(EOS(STATIC_2286), 1, java.lang.Object(List(EOC)), i926) | =(matching1, 1)
2160_0_length_Return(EOS(STATIC_2160), matching1, java.lang.Object(List(EOC)), i944) → 2294_0_length_Return(EOS(STATIC_2294), 1, java.lang.Object(List(EOC)), i944) | =(matching1, 1)
2168_0_length_Return(EOS(STATIC_2168), matching1, java.lang.Object(List(EOC)), i960) → 2303_0_length_Return(EOS(STATIC_2303), 1, java.lang.Object(List(EOC)), i960) | =(matching1, 1)
2286_0_length_Return(EOS(STATIC_2286), matching1, java.lang.Object(List(EOC)), i1077) → 2426_0_length_Return(EOS(STATIC_2426), 1, java.lang.Object(List(EOC)), i1077) | =(matching1, 1)
2294_0_length_Return(EOS(STATIC_2294), matching1, java.lang.Object(List(EOC)), i1095) → 2437_0_length_Return(EOS(STATIC_2437), 1, java.lang.Object(List(EOC)), i1095) | =(matching1, 1)
2303_0_length_Return(EOS(STATIC_2303), matching1, java.lang.Object(List(EOC)), i1111) → 2447_0_length_Return(EOS(STATIC_2447), 1, java.lang.Object(List(EOC)), i1111) | =(matching1, 1)
2426_0_length_Return(EOS(STATIC_2426), matching1, java.lang.Object(List(EOC)), i1209) → 2482_0_length_IntArithmetic(EOS(STATIC_2482), 1, i1209) | =(matching1, 1)
2437_0_length_Return(EOS(STATIC_2437), matching1, java.lang.Object(List(EOC)), i1227) → 2484_0_length_IntArithmetic(EOS(STATIC_2484), 1, i1227) | =(matching1, 1)
2447_0_length_Return(EOS(STATIC_2447), matching1, java.lang.Object(List(EOC)), i1243) → 2489_0_length_IntArithmetic(EOS(STATIC_2489), 1, i1243) | =(matching1, 1)
2482_0_length_IntArithmetic(EOS(STATIC_2482), matching1, i1209) → 2496_0_length_Return(EOS(STATIC_2496), +(1, i1209)) | &&(>(i1209, 0), =(matching1, 1))
2484_0_length_IntArithmetic(EOS(STATIC_2484), matching1, i1227) → 2501_0_length_Return(EOS(STATIC_2501), +(1, i1227)) | &&(>(i1227, 0), =(matching1, 1))
2489_0_length_IntArithmetic(EOS(STATIC_2489), matching1, i1243) → 2506_0_length_Return(EOS(STATIC_2506), +(1, i1243)) | &&(>(i1243, 0), =(matching1, 1))
2566_0_length_Return(EOS(STATIC_2566), matching1, java.lang.Object(List(EOC)), i1297) → 2426_0_length_Return(EOS(STATIC_2426), 1, java.lang.Object(List(EOC)), i1297) | =(matching1, 1)
2569_0_length_Return(EOS(STATIC_2569), matching1, java.lang.Object(List(EOC)), i1297) → 2437_0_length_Return(EOS(STATIC_2437), 1, java.lang.Object(List(EOC)), i1297) | =(matching1, 1)
2573_0_length_Return(EOS(STATIC_2573), matching1, java.lang.Object(List(EOC)), i1297) → 2447_0_length_Return(EOS(STATIC_2447), 1, java.lang.Object(List(EOC)), i1297) | =(matching1, 1)
2579_0_length_Return(EOS(STATIC_2579), matching1, java.lang.Object(List(EOC)), i1305) → 2426_0_length_Return(EOS(STATIC_2426), 1, java.lang.Object(List(EOC)), i1305) | =(matching1, 1)
2582_0_length_Return(EOS(STATIC_2582), matching1, java.lang.Object(List(EOC)), i1305) → 2437_0_length_Return(EOS(STATIC_2437), 1, java.lang.Object(List(EOC)), i1305) | =(matching1, 1)
2585_0_length_Return(EOS(STATIC_2585), matching1, java.lang.Object(List(EOC)), i1305) → 2447_0_length_Return(EOS(STATIC_2447), 1, java.lang.Object(List(EOC)), i1305) | =(matching1, 1)
2590_0_length_Return(EOS(STATIC_2590), matching1, java.lang.Object(List(EOC)), i1317) → 2426_0_length_Return(EOS(STATIC_2426), 1, java.lang.Object(List(EOC)), i1317) | =(matching1, 1)
2593_0_length_Return(EOS(STATIC_2593), matching1, java.lang.Object(List(EOC)), i1317) → 2437_0_length_Return(EOS(STATIC_2437), 1, java.lang.Object(List(EOC)), i1317) | =(matching1, 1)
2596_0_length_Return(EOS(STATIC_2596), matching1, java.lang.Object(List(EOC)), i1317) → 2447_0_length_Return(EOS(STATIC_2447), 1, java.lang.Object(List(EOC)), i1317) | =(matching1, 1)
2003_0_test_LT(EOS(STATIC_2003), java.lang.Object(ARRAY(matching1)), matching2, matching3) → 2020_0_test_LT(EOS(STATIC_2020), java.lang.Object(ARRAY(3)), -1, -1) | &&(&&(=(matching1, 3), =(matching2, -1)), =(matching3, -1))
2020_0_test_LT(EOS(STATIC_2020), java.lang.Object(ARRAY(matching1)), matching2, matching3) → 2038_0_test_Return(EOS(STATIC_2038)) | &&(&&(&&(<(-1, 0), =(matching1, 3)), =(matching2, -1)), =(matching3, -1))
4469_1_test_InvokeMethod(2038_0_test_Return(EOS(STATIC_2038)), java.lang.Object(ARRAY(matching1)), matching2) → 4483_0_test_Return(EOS(STATIC_4483), java.lang.Object(ARRAY(3)), -1) | &&(=(matching1, 3), =(matching2, -1))
4469_1_test_InvokeMethod(4528_0_test_Return(EOS(STATIC_4528)), java.lang.Object(ARRAY(matching1)), i2155) → 4552_0_test_Return(EOS(STATIC_4552), java.lang.Object(ARRAY(3)), i2155) | =(matching1, 3)
4483_0_test_Return(EOS(STATIC_4483), java.lang.Object(ARRAY(matching1)), matching2) → 4518_0_test_Return(EOS(STATIC_4518), java.lang.Object(ARRAY(3)), -1) | &&(=(matching1, 3), =(matching2, -1))
4518_0_test_Return(EOS(STATIC_4518), java.lang.Object(ARRAY(matching1)), i2143) → 4528_0_test_Return(EOS(STATIC_4528)) | =(matching1, 3)
4552_0_test_Return(EOS(STATIC_4552), java.lang.Object(ARRAY(matching1)), i2155) → 4518_0_test_Return(EOS(STATIC_4518), java.lang.Object(ARRAY(3)), i2155) | =(matching1, 3)
4387_0_bubble_Load(EOS(STATIC_4387), o6540) → 4388_0_bubble_NULL(EOS(STATIC_4388), o6540, o6540)
4388_0_bubble_NULL(EOS(STATIC_4388), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4389_0_bubble_NULL(EOS(STATIC_4389), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4388_0_bubble_NULL(EOS(STATIC_4388), NULL, NULL) → 4390_0_bubble_NULL(EOS(STATIC_4390), NULL, NULL)
4389_0_bubble_NULL(EOS(STATIC_4389), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4392_0_bubble_Load(EOS(STATIC_4392), java.lang.Object(o6546sub))
4390_0_bubble_NULL(EOS(STATIC_4390), NULL, NULL) → 4393_0_bubble_Return(EOS(STATIC_4393), NULL)
4392_0_bubble_Load(EOS(STATIC_4392), java.lang.Object(o6546sub)) → 4394_0_bubble_InvokeMethod(EOS(STATIC_4394), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4394_0_bubble_InvokeMethod(EOS(STATIC_4394), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4397_0_getTail_Load(EOS(STATIC_4397), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4397_0_getTail_Load(EOS(STATIC_4397), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4406_0_getTail_FieldAccess(EOS(STATIC_4406), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4406_0_getTail_FieldAccess(EOS(STATIC_4406), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4410_0_getTail_FieldAccess(EOS(STATIC_4410), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4406_0_getTail_FieldAccess(EOS(STATIC_4406), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4411_0_getTail_FieldAccess(EOS(STATIC_4411), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4410_0_getTail_FieldAccess(EOS(STATIC_4410), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4413_0_getTail_FieldAccess(EOS(STATIC_4413), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4410_0_getTail_FieldAccess(EOS(STATIC_4410), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4414_0_getTail_FieldAccess(EOS(STATIC_4414), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4411_0_getTail_FieldAccess(EOS(STATIC_4411), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4415_0_getTail_FieldAccess(EOS(STATIC_4415), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)))
4413_0_getTail_FieldAccess(EOS(STATIC_4413), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4422_0_getTail_FieldAccess(EOS(STATIC_4422), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4413_0_getTail_FieldAccess(EOS(STATIC_4413), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub)) → 4423_0_getTail_FieldAccess(EOS(STATIC_4423), java.lang.Object(o6546sub), java.lang.Object(o6546sub), java.lang.Object(o6546sub))
4414_0_getTail_FieldAccess(EOS(STATIC_4414), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4424_0_getTail_FieldAccess(EOS(STATIC_4424), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)))
4415_0_getTail_FieldAccess(EOS(STATIC_4415), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4425_0_getTail_Return(EOS(STATIC_4425), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6565)
4422_0_getTail_FieldAccess(EOS(STATIC_4422), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4428_0_getTail_FieldAccess(EOS(STATIC_4428), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4423_0_getTail_FieldAccess(EOS(STATIC_4423), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4429_0_getTail_FieldAccess(EOS(STATIC_4429), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)))
4424_0_getTail_FieldAccess(EOS(STATIC_4424), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4431_0_getTail_Return(EOS(STATIC_4431), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6583)
4425_0_getTail_Return(EOS(STATIC_4425), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6565) → 4431_0_getTail_Return(EOS(STATIC_4431), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6565)
4428_0_getTail_FieldAccess(EOS(STATIC_4428), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4438_0_getTail_Return(EOS(STATIC_4438), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)), o6589)
4429_0_getTail_FieldAccess(EOS(STATIC_4429), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4439_0_getTail_Return(EOS(STATIC_4439), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6591)
4431_0_getTail_Return(EOS(STATIC_4431), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6583) → 4438_0_getTail_Return(EOS(STATIC_4438), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6583)
4438_0_getTail_Return(EOS(STATIC_4438), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)), o6589) → 4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(o6588sub)), o6589)
4439_0_getTail_Return(EOS(STATIC_4439), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), o6591) → 4446_0_bubble_NONNULL(EOS(STATIC_4446), java.lang.Object(List(EOC)), o6591)
4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(o6588sub)), java.lang.Object(o6632sub)) → 4451_0_bubble_NONNULL(EOS(STATIC_4451), java.lang.Object(List(o6588sub)), java.lang.Object(o6632sub))
4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(o6588sub)), NULL) → 4452_0_bubble_NONNULL(EOS(STATIC_4452), java.lang.Object(List(o6588sub)), NULL)
4446_0_bubble_NONNULL(EOS(STATIC_4446), java.lang.Object(List(EOC)), o6591) → 4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(EOC)), o6591)
4451_0_bubble_NONNULL(EOS(STATIC_4451), java.lang.Object(List(o6588sub)), java.lang.Object(o6632sub)) → 4455_0_bubble_Load(EOS(STATIC_4455), java.lang.Object(List(o6588sub)))
4452_0_bubble_NONNULL(EOS(STATIC_4452), java.lang.Object(List(o6588sub)), NULL) → 4457_0_bubble_Return(EOS(STATIC_4457), java.lang.Object(List(o6588sub)))
4455_0_bubble_Load(EOS(STATIC_4455), java.lang.Object(List(o6588sub))) → 4460_0_bubble_FieldAccess(EOS(STATIC_4460), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4460_0_bubble_FieldAccess(EOS(STATIC_4460), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4465_0_bubble_Load(EOS(STATIC_4465), java.lang.Object(List(o6588sub)), i2129)
4465_0_bubble_Load(EOS(STATIC_4465), java.lang.Object(List(o6588sub)), i2129) → 4468_0_bubble_InvokeMethod(EOS(STATIC_4468), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)))
4468_0_bubble_InvokeMethod(EOS(STATIC_4468), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub))) → 4472_0_getTail_Load(EOS(STATIC_4472), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4472_0_getTail_Load(EOS(STATIC_4472), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4476_0_getTail_FieldAccess(EOS(STATIC_4476), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4476_0_getTail_FieldAccess(EOS(STATIC_4476), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4482_0_getTail_Return(EOS(STATIC_4482), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(o6632sub))
4482_0_getTail_Return(EOS(STATIC_4482), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(o6632sub)) → 4486_0_bubble_FieldAccess(EOS(STATIC_4486), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub))
4486_0_bubble_FieldAccess(EOS(STATIC_4486), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub)) → 4491_0_bubble_FieldAccess(EOS(STATIC_4491), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub))
4486_0_bubble_FieldAccess(EOS(STATIC_4486), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub)) → 4492_0_bubble_FieldAccess(EOS(STATIC_4492), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub))
4491_0_bubble_FieldAccess(EOS(STATIC_4491), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub)) → 4499_0_bubble_FieldAccess(EOS(STATIC_4499), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub))
4491_0_bubble_FieldAccess(EOS(STATIC_4491), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub)) → 4500_0_bubble_FieldAccess(EOS(STATIC_4500), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub))
4492_0_bubble_FieldAccess(EOS(STATIC_4492), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC))) → 4501_0_bubble_FieldAccess(EOS(STATIC_4501), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC)))
4499_0_bubble_FieldAccess(EOS(STATIC_4499), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub)) → 4509_0_bubble_FieldAccess(EOS(STATIC_4509), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub))
4499_0_bubble_FieldAccess(EOS(STATIC_4499), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub)) → 4510_0_bubble_FieldAccess(EOS(STATIC_4510), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(o6632sub))
4500_0_bubble_FieldAccess(EOS(STATIC_4500), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC))) → 4512_0_bubble_FieldAccess(EOS(STATIC_4512), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC)))
4501_0_bubble_FieldAccess(EOS(STATIC_4501), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC))) → 4513_0_bubble_LE(EOS(STATIC_4513), java.lang.Object(List(o6588sub)), i2129, i2139)
4509_0_bubble_FieldAccess(EOS(STATIC_4509), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC))) → 4521_0_bubble_FieldAccess(EOS(STATIC_4521), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC)))
4510_0_bubble_FieldAccess(EOS(STATIC_4510), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC))) → 4522_0_bubble_FieldAccess(EOS(STATIC_4522), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC)))
4512_0_bubble_FieldAccess(EOS(STATIC_4512), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC))) → 4525_0_bubble_LE(EOS(STATIC_4525), java.lang.Object(List(o6588sub)), i2129, i2142)
4513_0_bubble_LE(EOS(STATIC_4513), java.lang.Object(List(o6588sub)), i2129, i2139) → 4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(o6588sub)), i2129, i2139)
4521_0_bubble_FieldAccess(EOS(STATIC_4521), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC))) → 4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(o6588sub)), i2129, i2144)
4522_0_bubble_FieldAccess(EOS(STATIC_4522), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC))) → 4538_0_bubble_LE(EOS(STATIC_4538), java.lang.Object(List(o6588sub)), i2129, i2145)
4525_0_bubble_LE(EOS(STATIC_4525), java.lang.Object(List(o6588sub)), i2129, i2142) → 4513_0_bubble_LE(EOS(STATIC_4513), java.lang.Object(List(o6588sub)), i2129, i2142)
4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(o6588sub)), i2129, i2144) → 4543_0_bubble_LE(EOS(STATIC_4543), java.lang.Object(List(o6588sub)), i2129, i2144)
4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(o6588sub)), i2129, i2144) → 4544_0_bubble_LE(EOS(STATIC_4544), java.lang.Object(List(o6588sub)), i2129, i2144)
4538_0_bubble_LE(EOS(STATIC_4538), java.lang.Object(List(o6588sub)), i2129, i2145) → 4534_0_bubble_LE(EOS(STATIC_4534), java.lang.Object(List(o6588sub)), i2129, i2145)
4543_0_bubble_LE(EOS(STATIC_4543), java.lang.Object(List(o6588sub)), i2129, i2144) → 4547_0_bubble_Load(EOS(STATIC_4547), java.lang.Object(List(o6588sub))) | <=(i2129, i2144)
4544_0_bubble_LE(EOS(STATIC_4544), java.lang.Object(List(o6588sub)), i2129, i2144) → 4548_0_bubble_Load(EOS(STATIC_4548), java.lang.Object(List(o6588sub))) | >(i2129, i2144)
4547_0_bubble_Load(EOS(STATIC_4547), java.lang.Object(List(o6588sub))) → 4628_0_bubble_Load(EOS(STATIC_4628), java.lang.Object(List(o6588sub)))
4548_0_bubble_Load(EOS(STATIC_4548), java.lang.Object(List(o6588sub))) → 4554_0_bubble_FieldAccess(EOS(STATIC_4554), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4554_0_bubble_FieldAccess(EOS(STATIC_4554), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4557_0_bubble_Store(EOS(STATIC_4557), java.lang.Object(List(o6588sub)), i2129)
4557_0_bubble_Store(EOS(STATIC_4557), java.lang.Object(List(o6588sub)), i2129) → 4558_0_bubble_Load(EOS(STATIC_4558), java.lang.Object(List(o6588sub)), i2129)
4558_0_bubble_Load(EOS(STATIC_4558), java.lang.Object(List(o6588sub)), i2129) → 4561_0_bubble_Load(EOS(STATIC_4561), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)))
4561_0_bubble_Load(EOS(STATIC_4561), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub))) → 4564_0_bubble_InvokeMethod(EOS(STATIC_4564), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4564_0_bubble_InvokeMethod(EOS(STATIC_4564), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4567_0_getTail_Load(EOS(STATIC_4567), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4567_0_getTail_Load(EOS(STATIC_4567), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4571_0_getTail_FieldAccess(EOS(STATIC_4571), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4571_0_getTail_FieldAccess(EOS(STATIC_4571), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4573_0_getTail_Return(EOS(STATIC_4573), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)), java.lang.Object(List(EOC)))
4573_0_getTail_Return(EOS(STATIC_4573), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)), java.lang.Object(List(EOC))) → 4578_0_bubble_FieldAccess(EOS(STATIC_4578), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(EOC)))
4578_0_bubble_FieldAccess(EOS(STATIC_4578), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(EOC))) → 4582_0_bubble_FieldAccess(EOS(STATIC_4582), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), i2144)
4582_0_bubble_FieldAccess(EOS(STATIC_4582), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), i2144) → 4584_0_bubble_Load(EOS(STATIC_4584), java.lang.Object(List(o6588sub)), i2129)
4584_0_bubble_Load(EOS(STATIC_4584), java.lang.Object(List(o6588sub)), i2129) → 4587_0_bubble_InvokeMethod(EOS(STATIC_4587), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)))
4587_0_bubble_InvokeMethod(EOS(STATIC_4587), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub))) → 4591_0_getTail_Load(EOS(STATIC_4591), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4591_0_getTail_Load(EOS(STATIC_4591), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4598_0_getTail_FieldAccess(EOS(STATIC_4598), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4598_0_getTail_FieldAccess(EOS(STATIC_4598), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4603_0_getTail_Return(EOS(STATIC_4603), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(EOC)))
4603_0_getTail_Return(EOS(STATIC_4603), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(o6588sub)), java.lang.Object(List(EOC))) → 4609_0_bubble_Load(EOS(STATIC_4609), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC)))
4609_0_bubble_Load(EOS(STATIC_4609), java.lang.Object(List(o6588sub)), i2129, java.lang.Object(List(EOC))) → 4619_0_bubble_FieldAccess(EOS(STATIC_4619), java.lang.Object(List(o6588sub)), java.lang.Object(List(EOC)), i2129)
4619_0_bubble_FieldAccess(EOS(STATIC_4619), java.lang.Object(List(o6588sub)), java.lang.Object(List(EOC)), i2129) → 4628_0_bubble_Load(EOS(STATIC_4628), java.lang.Object(List(o6588sub)))
4628_0_bubble_Load(EOS(STATIC_4628), java.lang.Object(List(o6588sub))) → 4631_0_bubble_InvokeMethod(EOS(STATIC_4631), java.lang.Object(List(o6588sub)))
4631_0_bubble_InvokeMethod(EOS(STATIC_4631), java.lang.Object(List(o6588sub))) → 4635_0_getTail_Load(EOS(STATIC_4635), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4635_0_getTail_Load(EOS(STATIC_4635), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4637_0_getTail_FieldAccess(EOS(STATIC_4637), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub)))
4637_0_getTail_FieldAccess(EOS(STATIC_4637), java.lang.Object(List(o6588sub)), java.lang.Object(List(o6588sub))) → 4639_0_getTail_Return(EOS(STATIC_4639), java.lang.Object(List(o6588sub)), java.lang.Object(List(EOC)))
4639_0_getTail_Return(EOS(STATIC_4639), java.lang.Object(List(o6588sub)), java.lang.Object(List(EOC))) → 4640_0_bubble_InvokeMethod(EOS(STATIC_4640), java.lang.Object(List(EOC)))
4640_0_bubble_InvokeMethod(EOS(STATIC_4640), java.lang.Object(List(EOC))) → 4641_1_bubble_InvokeMethod(4641_0_bubble_Load(EOS(STATIC_4641), java.lang.Object(List(EOC))), java.lang.Object(List(EOC)))
4641_0_bubble_Load(EOS(STATIC_4641), java.lang.Object(List(EOC))) → 4642_0_bubble_Load(EOS(STATIC_4642), java.lang.Object(List(EOC)))
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(EOS(STATIC_4457), java.lang.Object(List(EOC))), java.lang.Object(List(EOC))) → 4650_0_bubble_Return(EOS(STATIC_4650), java.lang.Object(List(EOC)), java.lang.Object(List(EOC)))
4641_1_bubble_InvokeMethod(4651_0_bubble_Return(EOS(STATIC_4651)), java.lang.Object(List(EOC))) → 4658_0_bubble_Return(EOS(STATIC_4658), java.lang.Object(List(EOC)))
4641_1_bubble_InvokeMethod(4673_0_bubble_Return(EOS(STATIC_4673)), java.lang.Object(List(EOC))) → 4684_0_bubble_Return(EOS(STATIC_4684), java.lang.Object(List(EOC)))
4650_0_bubble_Return(EOS(STATIC_4650), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4651_0_bubble_Return(EOS(STATIC_4651))
4658_0_bubble_Return(EOS(STATIC_4658), java.lang.Object(List(EOC))) → 4671_0_bubble_Return(EOS(STATIC_4671), java.lang.Object(List(EOC)))
4671_0_bubble_Return(EOS(STATIC_4671), java.lang.Object(List(EOC))) → 4673_0_bubble_Return(EOS(STATIC_4673))
4684_0_bubble_Return(EOS(STATIC_4684), java.lang.Object(List(EOC))) → 4671_0_bubble_Return(EOS(STATIC_4671), java.lang.Object(List(EOC)))

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

P rules:
2112_1_test_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL, 0), java.lang.Object(ARRAY(3)), x2, NULL) → 4469_1_test_InvokeMethod(2112_1_test_InvokeMethod(2112_0_length_Load(EOS(STATIC_2112), x3), java.lang.Object(ARRAY(3)), -(x2, 1), x3), java.lang.Object(ARRAY(3)), -(x2, 1)) | &&(>(+(x2, 1), 1), <(x2, 4))
2112_1_test_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496), x0), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x2, x0, 0, 0, x0)
2112_1_test_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501), x0), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x2, x0, 0, 0, x0)
2112_1_test_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506), x0), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x2, x0, 0, 0, x0)
2112_1_test_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981), 1), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x2, 1, 0, 0, 1)
2112_1_test_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970), 1), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x2, 1, 0, 0, 1)
2112_1_test_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977), 1), java.lang.Object(ARRAY(3)), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x2, 1, 0, 0, 1)
4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x1, x2, x3, x3, x2) → 4469_1_test_InvokeMethod(2112_1_test_InvokeMethod(2112_0_length_Load(EOS(STATIC_2112), x4), java.lang.Object(ARRAY(3)), -(x1, 1), x4), java.lang.Object(ARRAY(3)), -(x1, 1)) | &&(&&(>=(x3, x2), >(+(x1, 1), 1)), <(x1, 4))
4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x1, x2, x3, x3, x2) → 4467_1_test_InvokeMethod(4467_0_bubble_Load(EOS(STATIC_4467), x4), java.lang.Object(ARRAY(3)), x1, x2, x3, x4) | &&(<(x3, x2), <(x1, 3))
4467_1_test_InvokeMethod(4393_0_bubble_Return(EOS(STATIC_4393), NULL), java.lang.Object(ARRAY(3)), x1, x2, x3, NULL) → 4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x1, x2, +(x3, 1), +(x3, 1), x2)
4467_1_test_InvokeMethod(4457_0_bubble_Return(EOS(STATIC_4457), java.lang.Object(List(x0))), java.lang.Object(ARRAY(3)), x2, x3, x4, java.lang.Object(List(x0))) → 4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x2, x3, +(x4, 1), +(x4, 1), x3)
4467_1_test_InvokeMethod(4651_0_bubble_Return(EOS(STATIC_4651)), java.lang.Object(ARRAY(3)), x1, x2, x3, x4) → 4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x1, x2, +(x3, 1), +(x3, 1), x2)
4467_1_test_InvokeMethod(4673_0_bubble_Return(EOS(STATIC_4673)), java.lang.Object(ARRAY(3)), x1, x2, x3, x4) → 4434_0_test_GE(EOS(STATIC_4434), java.lang.Object(ARRAY(3)), x1, x2, +(x3, 1), +(x3, 1), x2)
R rules:
2112_0_length_Load(EOS(STATIC_2112), x0) → 1870_0_length_NONNULL(EOS(STATIC_1870), x0, x0)
4467_0_bubble_Load(EOS(STATIC_4467), x0) → 4388_0_bubble_NULL(EOS(STATIC_4388), x0, x0)
1870_0_length_NONNULL(EOS(STATIC_1870), NULL, NULL) → 1878_0_length_Return(EOS(STATIC_1878), NULL, 0)
1870_0_length_NONNULL(EOS(STATIC_1870), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1924_1_length_InvokeMethod(1870_0_length_NONNULL(EOS(STATIC_1870), x0, x0), 1, x0)
1870_0_length_NONNULL(EOS(STATIC_1870), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1933_1_length_InvokeMethod(1870_0_length_NONNULL(EOS(STATIC_1870), x0, x0), 1, x0)
1870_0_length_NONNULL(EOS(STATIC_1870), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1936_1_length_InvokeMethod(1870_0_length_NONNULL(EOS(STATIC_1870), x0, x0), 1, x0)
1924_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL, 0), 1, NULL) → 1970_0_length_Return(EOS(STATIC_1970), 1)
1933_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL, 0), 1, NULL) → 1977_0_length_Return(EOS(STATIC_1977), 1)
1936_1_length_InvokeMethod(1878_0_length_Return(EOS(STATIC_1878), NULL, 0), 1, NULL) → 1981_0_length_Return(EOS(STATIC_1981), 1)
1924_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496), x0), 1, java.lang.Object(List(EOC))) → 2496_0_length_Return(EOS(STATIC_2496), +(1, x0)) | >(x0, 0)
1924_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501), x0), 1, java.lang.Object(List(EOC))) → 2496_0_length_Return(EOS(STATIC_2496), +(1, x0)) | >(x0, 0)
1924_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506), x0), 1, java.lang.Object(List(EOC))) → 2496_0_length_Return(EOS(STATIC_2496), +(1, x0)) | >(x0, 0)
1924_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970), 1), 1, java.lang.Object(List(EOC))) → 2496_0_length_Return(EOS(STATIC_2496), 2)
1924_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977), 1), 1, java.lang.Object(List(EOC))) → 2496_0_length_Return(EOS(STATIC_2496), 2)
1924_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981), 1), 1, java.lang.Object(List(EOC))) → 2496_0_length_Return(EOS(STATIC_2496), 2)
1933_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496), x0), 1, java.lang.Object(List(EOC))) → 2501_0_length_Return(EOS(STATIC_2501), +(1, x0)) | >(x0, 0)
1933_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501), x0), 1, java.lang.Object(List(EOC))) → 2501_0_length_Return(EOS(STATIC_2501), +(1, x0)) | >(x0, 0)
1933_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506), x0), 1, java.lang.Object(List(EOC))) → 2501_0_length_Return(EOS(STATIC_2501), +(1, x0)) | >(x0, 0)
1933_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970), 1), 1, java.lang.Object(List(EOC))) → 2501_0_length_Return(EOS(STATIC_2501), 2)
1933_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977), 1), 1, java.lang.Object(List(EOC))) → 2501_0_length_Return(EOS(STATIC_2501), 2)
1933_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981), 1), 1, java.lang.Object(List(EOC))) → 2501_0_length_Return(EOS(STATIC_2501), 2)
1936_1_length_InvokeMethod(2496_0_length_Return(EOS(STATIC_2496), x0), 1, java.lang.Object(List(EOC))) → 2506_0_length_Return(EOS(STATIC_2506), +(1, x0)) | >(x0, 0)
1936_1_length_InvokeMethod(2501_0_length_Return(EOS(STATIC_2501), x0), 1, java.lang.Object(List(EOC))) → 2506_0_length_Return(EOS(STATIC_2506), +(1, x0)) | >(x0, 0)
1936_1_length_InvokeMethod(2506_0_length_Return(EOS(STATIC_2506), x0), 1, java.lang.Object(List(EOC))) → 2506_0_length_Return(EOS(STATIC_2506), +(1, x0)) | >(x0, 0)
1936_1_length_InvokeMethod(1970_0_length_Return(EOS(STATIC_1970), 1), 1, java.lang.Object(List(EOC))) → 2506_0_length_Return(EOS(STATIC_2506), 2)
1936_1_length_InvokeMethod(1977_0_length_Return(EOS(STATIC_1977), 1), 1, java.lang.Object(List(EOC))) → 2506_0_length_Return(EOS(STATIC_2506), 2)
1936_1_length_InvokeMethod(1981_0_length_Return(EOS(STATIC_1981), 1), 1, java.lang.Object(List(EOC))) → 2506_0_length_Return(EOS(STATIC_2506), 2)
4469_1_test_InvokeMethod(2038_0_test_Return(EOS(STATIC_2038)), java.lang.Object(ARRAY(3)), -1) → 4528_0_test_Return(EOS(STATIC_4528))
4469_1_test_InvokeMethod(4528_0_test_Return(EOS(STATIC_4528)), java.lang.Object(ARRAY(3)), x1) → 4528_0_test_Return(EOS(STATIC_4528))
4388_0_bubble_NULL(EOS(STATIC_4388), NULL, NULL) → 4393_0_bubble_Return(EOS(STATIC_4393), NULL)
4388_0_bubble_NULL(EOS(STATIC_4388), java.lang.Object(List(x0)), java.lang.Object(List(x0))) → 4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(x0)), x1)
4388_0_bubble_NULL(EOS(STATIC_4388), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(EOC)), x0)
4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(x0)), NULL) → 4457_0_bubble_Return(EOS(STATIC_4457), java.lang.Object(List(x0)))
4443_0_bubble_NONNULL(EOS(STATIC_4443), java.lang.Object(List(x0)), java.lang.Object(x1)) → 4641_1_bubble_InvokeMethod(4388_0_bubble_NULL(EOS(STATIC_4388), java.lang.Object(List(EOC)), java.lang.Object(List(EOC))), java.lang.Object(List(EOC)))
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(EOS(STATIC_4457), java.lang.Object(List(EOC))), java.lang.Object(List(EOC))) → 4651_0_bubble_Return(EOS(STATIC_4651))
4641_1_bubble_InvokeMethod(4651_0_bubble_Return(EOS(STATIC_4651)), java.lang.Object(List(EOC))) → 4673_0_bubble_Return(EOS(STATIC_4673))
4641_1_bubble_InvokeMethod(4673_0_bubble_Return(EOS(STATIC_4673)), java.lang.Object(List(EOC))) → 4673_0_bubble_Return(EOS(STATIC_4673))

Filtered ground terms:

4434_0_test_GE(x1, x2, x3, x4, x5, x6, x7) → 4434_0_test_GE(x3, x4, x5, x6, x7)
ARRAY(x1) → ARRAY
4467_1_test_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4467_1_test_InvokeMethod(x1, x3, x4, x5, x6)
4673_0_bubble_Return(x1) → 4673_0_bubble_Return
4651_0_bubble_Return(x1) → 4651_0_bubble_Return
4457_0_bubble_Return(x1, x2) → 4457_0_bubble_Return(x2)
4393_0_bubble_Return(x1, x2) → 4393_0_bubble_Return
4467_0_bubble_Load(x1, x2) → 4467_0_bubble_Load(x2)
Cond_4434_0_test_GE1(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_4434_0_test_GE1(x1, x4, x5, x6, x7, x8, x9)
4469_1_test_InvokeMethod(x1, x2, x3) → 4469_1_test_InvokeMethod(x1, x3)
2112_0_length_Load(x1, x2) → 2112_0_length_Load(x2)
2112_1_test_InvokeMethod(x1, x2, x3, x4) → 2112_1_test_InvokeMethod(x1, x3, x4)
Cond_4434_0_test_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_4434_0_test_GE(x1, x4, x5, x6, x7, x8, x9)
1977_0_length_Return(x1, x2) → 1977_0_length_Return
1970_0_length_Return(x1, x2) → 1970_0_length_Return
1981_0_length_Return(x1, x2) → 1981_0_length_Return
2506_0_length_Return(x1, x2) → 2506_0_length_Return(x2)
2501_0_length_Return(x1, x2) → 2501_0_length_Return(x2)
2496_0_length_Return(x1, x2) → 2496_0_length_Return(x2)
Cond_2112_1_test_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_2112_1_test_InvokeMethod(x1, x4, x6)
1878_0_length_Return(x1, x2, x3) → 1878_0_length_Return
4641_1_bubble_InvokeMethod(x1, x2) → 4641_1_bubble_InvokeMethod(x1)
4388_0_bubble_NULL(x1, x2, x3) → 4388_0_bubble_NULL(x2, x3)
4443_0_bubble_NONNULL(x1, x2, x3) → 4443_0_bubble_NONNULL(x2, x3)
4528_0_test_Return(x1) → 4528_0_test_Return
2038_0_test_Return(x1) → 2038_0_test_Return
1936_1_length_InvokeMethod(x1, x2, x3) → 1936_1_length_InvokeMethod(x1, x3)
Cond_1936_1_length_InvokeMethod2(x1, x2, x3, x4) → Cond_1936_1_length_InvokeMethod2(x1, x2)
Cond_1936_1_length_InvokeMethod1(x1, x2, x3, x4) → Cond_1936_1_length_InvokeMethod1(x1, x2)
Cond_1936_1_length_InvokeMethod(x1, x2, x3, x4) → Cond_1936_1_length_InvokeMethod(x1, x2)
1933_1_length_InvokeMethod(x1, x2, x3) → 1933_1_length_InvokeMethod(x1, x3)
Cond_1933_1_length_InvokeMethod2(x1, x2, x3, x4) → Cond_1933_1_length_InvokeMethod2(x1, x2)
Cond_1933_1_length_InvokeMethod1(x1, x2, x3, x4) → Cond_1933_1_length_InvokeMethod1(x1, x2)
Cond_1933_1_length_InvokeMethod(x1, x2, x3, x4) → Cond_1933_1_length_InvokeMethod(x1, x2)
1924_1_length_InvokeMethod(x1, x2, x3) → 1924_1_length_InvokeMethod(x1, x3)
Cond_1924_1_length_InvokeMethod2(x1, x2, x3, x4) → Cond_1924_1_length_InvokeMethod2(x1, x2)
Cond_1924_1_length_InvokeMethod1(x1, x2, x3, x4) → Cond_1924_1_length_InvokeMethod1(x1, x2)
Cond_1924_1_length_InvokeMethod(x1, x2, x3, x4) → Cond_1924_1_length_InvokeMethod(x1, x2)
1870_0_length_NONNULL(x1, x2, x3) → 1870_0_length_NONNULL(x2, x3)

Filtered duplicate args:

4434_0_test_GE(x1, x2, x3, x4, x5) → 4434_0_test_GE(x1, x4, x5)
Cond_4434_0_test_GE(x1, x2, x3, x4, x5, x6, x7) → Cond_4434_0_test_GE(x1, x2, x5, x6, x7)
Cond_4434_0_test_GE1(x1, x2, x3, x4, x5, x6, x7) → Cond_4434_0_test_GE1(x1, x2, x5, x6, x7)
1870_0_length_NONNULL(x1, x2) → 1870_0_length_NONNULL(x2)
4388_0_bubble_NULL(x1, x2) → 4388_0_bubble_NULL(x2)

Filtered unneeded arguments:

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

Filtered free variables in P:

1924_1_length_InvokeMethod(x1, x2) → 1924_1_length_InvokeMethod(x1)
1870_0_length_NONNULL(x1) → 1870_0_length_NONNULL
1933_1_length_InvokeMethod(x1, x2) → 1933_1_length_InvokeMethod(x1)
1936_1_length_InvokeMethod(x1, x2) → 1936_1_length_InvokeMethod(x1)
4443_0_bubble_NONNULL(x1, x2) → 4443_0_bubble_NONNULL(x1)

Current set of rules:

P rules:
2112_1_test_InvokeMethod(1878_0_length_Return, x2, NULL) → Cond_2112_1_test_InvokeMethod(&&(>(+(x2, 1), 1), <(x2, 4)), x2, x3)
Cond_2112_1_test_InvokeMethod(TRUE, x2, x3) → 4469_1_test_InvokeMethod(2112_1_test_InvokeMethod(2112_0_length_Load(x3), -(x2, 1), x3), -(x2, 1))
2112_1_test_InvokeMethod(2496_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, x0)
2112_1_test_InvokeMethod(2501_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, x0)
2112_1_test_InvokeMethod(2506_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, x0)
2112_1_test_InvokeMethod(1981_0_length_Return, x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, 1)
2112_1_test_InvokeMethod(1970_0_length_Return, x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, 1)
2112_1_test_InvokeMethod(1977_0_length_Return, x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, 1)
4434_0_test_GE(x1, x3, x2) → Cond_4434_0_test_GE(&&(&&(>=(x3, x2), >(+(x1, 1), 1)), <(x1, 4)), x1, x4)
Cond_4434_0_test_GE(TRUE, x1, x4) → 4469_1_test_InvokeMethod(2112_1_test_InvokeMethod(2112_0_length_Load(x4), -(x1, 1), x4), -(x1, 1))
4434_0_test_GE(x1, x3, x2) → Cond_4434_0_test_GE1(&&(<(x3, x2), <(x1, 3)), x1, x3, x2, x4)
Cond_4434_0_test_GE1(TRUE, x1, x3, x2, x4) → 4467_1_test_InvokeMethod(4467_0_bubble_Load(x4), x1, x2, x3, x4)
4467_1_test_InvokeMethod(4393_0_bubble_Return, x1, x2, x3, NULL) → 4434_0_test_GE(x1, +(x3, 1), x2)
4467_1_test_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(x0))), x2, x3, x4, java.lang.Object(List(x0))) → 4434_0_test_GE(x2, +(x4, 1), x3)
4467_1_test_InvokeMethod(4651_0_bubble_Return, x1, x2, x3, x4) → 4434_0_test_GE(x1, +(x3, 1), x2)
4467_1_test_InvokeMethod(4673_0_bubble_Return, x1, x2, x3, x4) → 4434_0_test_GE(x1, +(x3, 1), x2)
R rules:
2112_0_length_Load(x0) → 1870_0_length_NONNULL
4467_0_bubble_Load(x0) → 4388_0_bubble_NULL(x0)
1870_0_length_NONNULL1878_0_length_Return
1870_0_length_NONNULL1924_1_length_InvokeMethod(1870_0_length_NONNULL)
1870_0_length_NONNULL1933_1_length_InvokeMethod(1870_0_length_NONNULL)
1870_0_length_NONNULL1936_1_length_InvokeMethod(1870_0_length_NONNULL)
1924_1_length_InvokeMethod(1878_0_length_Return) → 1970_0_length_Return
1933_1_length_InvokeMethod(1878_0_length_Return) → 1977_0_length_Return
1936_1_length_InvokeMethod(1878_0_length_Return) → 1981_0_length_Return
1924_1_length_InvokeMethod(2496_0_length_Return(x0)) → Cond_1924_1_length_InvokeMethod(>(x0, 0), 2496_0_length_Return(x0))
Cond_1924_1_length_InvokeMethod(TRUE, 2496_0_length_Return(x0)) → 2496_0_length_Return(+(1, x0))
1924_1_length_InvokeMethod(2501_0_length_Return(x0)) → Cond_1924_1_length_InvokeMethod1(>(x0, 0), 2501_0_length_Return(x0))
Cond_1924_1_length_InvokeMethod1(TRUE, 2501_0_length_Return(x0)) → 2496_0_length_Return(+(1, x0))
1924_1_length_InvokeMethod(2506_0_length_Return(x0)) → Cond_1924_1_length_InvokeMethod2(>(x0, 0), 2506_0_length_Return(x0))
Cond_1924_1_length_InvokeMethod2(TRUE, 2506_0_length_Return(x0)) → 2496_0_length_Return(+(1, x0))
1924_1_length_InvokeMethod(1970_0_length_Return) → 2496_0_length_Return(2)
1924_1_length_InvokeMethod(1977_0_length_Return) → 2496_0_length_Return(2)
1924_1_length_InvokeMethod(1981_0_length_Return) → 2496_0_length_Return(2)
1933_1_length_InvokeMethod(2496_0_length_Return(x0)) → Cond_1933_1_length_InvokeMethod(>(x0, 0), 2496_0_length_Return(x0))
Cond_1933_1_length_InvokeMethod(TRUE, 2496_0_length_Return(x0)) → 2501_0_length_Return(+(1, x0))
1933_1_length_InvokeMethod(2501_0_length_Return(x0)) → Cond_1933_1_length_InvokeMethod1(>(x0, 0), 2501_0_length_Return(x0))
Cond_1933_1_length_InvokeMethod1(TRUE, 2501_0_length_Return(x0)) → 2501_0_length_Return(+(1, x0))
1933_1_length_InvokeMethod(2506_0_length_Return(x0)) → Cond_1933_1_length_InvokeMethod2(>(x0, 0), 2506_0_length_Return(x0))
Cond_1933_1_length_InvokeMethod2(TRUE, 2506_0_length_Return(x0)) → 2501_0_length_Return(+(1, x0))
1933_1_length_InvokeMethod(1970_0_length_Return) → 2501_0_length_Return(2)
1933_1_length_InvokeMethod(1977_0_length_Return) → 2501_0_length_Return(2)
1933_1_length_InvokeMethod(1981_0_length_Return) → 2501_0_length_Return(2)
1936_1_length_InvokeMethod(2496_0_length_Return(x0)) → Cond_1936_1_length_InvokeMethod(>(x0, 0), 2496_0_length_Return(x0))
Cond_1936_1_length_InvokeMethod(TRUE, 2496_0_length_Return(x0)) → 2506_0_length_Return(+(1, x0))
1936_1_length_InvokeMethod(2501_0_length_Return(x0)) → Cond_1936_1_length_InvokeMethod1(>(x0, 0), 2501_0_length_Return(x0))
Cond_1936_1_length_InvokeMethod1(TRUE, 2501_0_length_Return(x0)) → 2506_0_length_Return(+(1, x0))
1936_1_length_InvokeMethod(2506_0_length_Return(x0)) → Cond_1936_1_length_InvokeMethod2(>(x0, 0), 2506_0_length_Return(x0))
Cond_1936_1_length_InvokeMethod2(TRUE, 2506_0_length_Return(x0)) → 2506_0_length_Return(+(1, x0))
1936_1_length_InvokeMethod(1970_0_length_Return) → 2506_0_length_Return(2)
1936_1_length_InvokeMethod(1977_0_length_Return) → 2506_0_length_Return(2)
1936_1_length_InvokeMethod(1981_0_length_Return) → 2506_0_length_Return(2)
4469_1_test_InvokeMethod(2038_0_test_Return, -1) → 4528_0_test_Return
4469_1_test_InvokeMethod(4528_0_test_Return, x1) → 4528_0_test_Return
4388_0_bubble_NULL(NULL) → 4393_0_bubble_Return
4388_0_bubble_NULL(java.lang.Object(List(x0))) → 4443_0_bubble_NONNULL(java.lang.Object(List(x0)))
4388_0_bubble_NULL(java.lang.Object(List(EOC))) → 4443_0_bubble_NONNULL(java.lang.Object(List(EOC)))
4443_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4457_0_bubble_Return(java.lang.Object(List(x0)))
4443_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4641_1_bubble_InvokeMethod(4388_0_bubble_NULL(java.lang.Object(List(EOC))))
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(EOC)))) → 4651_0_bubble_Return
4641_1_bubble_InvokeMethod(4651_0_bubble_Return) → 4673_0_bubble_Return
4641_1_bubble_InvokeMethod(4673_0_bubble_Return) → 4673_0_bubble_Return

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

P rules:
2112_1_test_InvokeMethod(1878_0_length_Return, x2, NULL) → 4469_1_test_InvokeMethod(2112_1_test_InvokeMethod(2112_0_length_Load(x3), -(x2, 1), x3), -(x2, 1)) | &&(>(x2, 0), <(x2, 4))
2112_1_test_InvokeMethod(2496_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, x0)
2112_1_test_InvokeMethod(2501_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, x0)
2112_1_test_InvokeMethod(2506_0_length_Return(x0), x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, x0)
2112_1_test_InvokeMethod(1981_0_length_Return, x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, 1)
2112_1_test_InvokeMethod(1970_0_length_Return, x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, 1)
2112_1_test_InvokeMethod(1977_0_length_Return, x2, java.lang.Object(List(EOC))) → 4434_0_test_GE(x2, 0, 1)
4434_0_test_GE(x1, x3, x2) → 4469_1_test_InvokeMethod(2112_1_test_InvokeMethod(2112_0_length_Load(x4), -(x1, 1), x4), -(x1, 1)) | &&(&&(>=(x3, x2), >(x1, 0)), <(x1, 4))
4434_0_test_GE(x1, x3, x2) → 4467_1_test_InvokeMethod(4467_0_bubble_Load(x4), x1, x2, x3, x4) | &&(<(x3, x2), <(x1, 3))
4467_1_test_InvokeMethod(4393_0_bubble_Return, x1, x2, x3, NULL) → 4434_0_test_GE(x1, +(x3, 1), x2)
4467_1_test_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(x0))), x2, x3, x4, java.lang.Object(List(x0))) → 4434_0_test_GE(x2, +(x4, 1), x3)
4467_1_test_InvokeMethod(4651_0_bubble_Return, x1, x2, x3, x4) → 4434_0_test_GE(x1, +(x3, 1), x2)
4467_1_test_InvokeMethod(4673_0_bubble_Return, x1, x2, x3, x4) → 4434_0_test_GE(x1, +(x3, 1), x2)
R rules:
2112_0_length_Load(x0) → 1870_0_length_NONNULL
4467_0_bubble_Load(x0) → 4388_0_bubble_NULL(x0)
1870_0_length_NONNULL1878_0_length_Return
1870_0_length_NONNULL1924_1_length_InvokeMethod(1870_0_length_NONNULL)
1870_0_length_NONNULL1933_1_length_InvokeMethod(1870_0_length_NONNULL)
1870_0_length_NONNULL1936_1_length_InvokeMethod(1870_0_length_NONNULL)
1924_1_length_InvokeMethod(1878_0_length_Return) → 1970_0_length_Return
1933_1_length_InvokeMethod(1878_0_length_Return) → 1977_0_length_Return
1936_1_length_InvokeMethod(1878_0_length_Return) → 1981_0_length_Return
1924_1_length_InvokeMethod(2496_0_length_Return(x0)) → 2496_0_length_Return(+(1, x0)) | >(x0, 0)
1924_1_length_InvokeMethod(2501_0_length_Return(x0)) → 2496_0_length_Return(+(1, x0)) | >(x0, 0)
1924_1_length_InvokeMethod(2506_0_length_Return(x0)) → 2496_0_length_Return(+(1, x0)) | >(x0, 0)
1924_1_length_InvokeMethod(1970_0_length_Return) → 2496_0_length_Return(2)
1924_1_length_InvokeMethod(1977_0_length_Return) → 2496_0_length_Return(2)
1924_1_length_InvokeMethod(1981_0_length_Return) → 2496_0_length_Return(2)
1933_1_length_InvokeMethod(2496_0_length_Return(x0)) → 2501_0_length_Return(+(1, x0)) | >(x0, 0)
1933_1_length_InvokeMethod(2501_0_length_Return(x0)) → 2501_0_length_Return(+(1, x0)) | >(x0, 0)
1933_1_length_InvokeMethod(2506_0_length_Return(x0)) → 2501_0_length_Return(+(1, x0)) | >(x0, 0)
1933_1_length_InvokeMethod(1970_0_length_Return) → 2501_0_length_Return(2)
1933_1_length_InvokeMethod(1977_0_length_Return) → 2501_0_length_Return(2)
1933_1_length_InvokeMethod(1981_0_length_Return) → 2501_0_length_Return(2)
1936_1_length_InvokeMethod(2496_0_length_Return(x0)) → 2506_0_length_Return(+(1, x0)) | >(x0, 0)
1936_1_length_InvokeMethod(2501_0_length_Return(x0)) → 2506_0_length_Return(+(1, x0)) | >(x0, 0)
1936_1_length_InvokeMethod(2506_0_length_Return(x0)) → 2506_0_length_Return(+(1, x0)) | >(x0, 0)
1936_1_length_InvokeMethod(1970_0_length_Return) → 2506_0_length_Return(2)
1936_1_length_InvokeMethod(1977_0_length_Return) → 2506_0_length_Return(2)
1936_1_length_InvokeMethod(1981_0_length_Return) → 2506_0_length_Return(2)
4469_1_test_InvokeMethod(2038_0_test_Return, -1) → 4528_0_test_Return
4469_1_test_InvokeMethod(4528_0_test_Return, x1) → 4528_0_test_Return
4388_0_bubble_NULL(NULL) → 4393_0_bubble_Return
4388_0_bubble_NULL(java.lang.Object(List(x0))) → 4443_0_bubble_NONNULL(java.lang.Object(List(x0)))
4388_0_bubble_NULL(java.lang.Object(List(EOC))) → 4443_0_bubble_NONNULL(java.lang.Object(List(EOC)))
4443_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4457_0_bubble_Return(java.lang.Object(List(x0)))
4443_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4641_1_bubble_InvokeMethod(4388_0_bubble_NULL(java.lang.Object(List(EOC))))
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(EOC)))) → 4651_0_bubble_Return
4641_1_bubble_InvokeMethod(4651_0_bubble_Return) → 4673_0_bubble_Return
4641_1_bubble_InvokeMethod(4673_0_bubble_Return) → 4673_0_bubble_Return

Performed bisimulation on rules. Used the following equivalence classes: {[2496_0_length_Return_1, 2501_0_length_Return_1, 2506_0_length_Return_1]=2496_0_length_Return_1, [1924_1_length_InvokeMethod_1, 1933_1_length_InvokeMethod_1, 1936_1_length_InvokeMethod_1]=1924_1_length_InvokeMethod_1, [1878_0_length_Return, 1970_0_length_Return, 1977_0_length_Return, 1981_0_length_Return, 2038_0_test_Return, 4528_0_test_Return, 4393_0_bubble_Return, EOC, 4651_0_bubble_Return, 4673_0_bubble_Return]=1878_0_length_Return, [Cond_1924_1_length_InvokeMethod_2, Cond_1924_1_length_InvokeMethod1_2, Cond_1924_1_length_InvokeMethod2_2, Cond_1933_1_length_InvokeMethod_2, Cond_1933_1_length_InvokeMethod1_2, Cond_1933_1_length_InvokeMethod2_2, Cond_1936_1_length_InvokeMethod_2, Cond_1936_1_length_InvokeMethod1_2, Cond_1936_1_length_InvokeMethod2_2]=Cond_1924_1_length_InvokeMethod_2}

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

P rules:
2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2, NULL) → COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2, 0), <(x2, 4)), 1878_0_length_Return, x2, NULL, x3)
COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2, NULL, x3) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3), -(x2, 1), x3)
2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0), x2, java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2, 0, x0)
2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2, java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2, 0, 1)
4434_0_TEST_GE(x1, x3, x2) → COND_4434_0_TEST_GE(&&(&&(>=(x3, x2), >(x1, 0)), <(x1, 4)), x1, x3, x2, x4)
COND_4434_0_TEST_GE(TRUE, x1, x3, x2, x4) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4), -(x1, 1), x4)
4434_0_TEST_GE(x1, x3, x2) → COND_4434_0_TEST_GE1(&&(<(x3, x2), <(x1, 3)), x1, x3, x2, x4)
COND_4434_0_TEST_GE1(TRUE, x1, x3, x2, x4) → 4467_1_TEST_INVOKEMETHOD(4467_0_bubble_Load(x4), x1, x2, x3, x4)
4467_1_TEST_INVOKEMETHOD(1878_0_length_Return, x1, x2, x3, NULL) → 4434_0_TEST_GE(x1, +(x3, 1), x2)
4467_1_TEST_INVOKEMETHOD(4457_0_bubble_Return(java.lang.Object(List(x0))), x2, x3, x4, java.lang.Object(List(x0))) → 4434_0_TEST_GE(x2, +(x4, 1), x3)
4467_1_TEST_INVOKEMETHOD(1878_0_length_Return, x1, x2, x3, x4) → 4434_0_TEST_GE(x1, +(x3, 1), x2)
R rules:
2112_0_length_Load(x0) → 1870_0_length_NONNULL
4467_0_bubble_Load(x0) → 4388_0_bubble_NULL(x0)
1870_0_length_NONNULL1878_0_length_Return
1870_0_length_NONNULL1924_1_length_InvokeMethod(1870_0_length_NONNULL)
1924_1_length_InvokeMethod(1878_0_length_Return) → 1878_0_length_Return
1924_1_length_InvokeMethod(2496_0_length_Return(x0)) → Cond_1924_1_length_InvokeMethod(>(x0, 0), 2496_0_length_Return(x0))
Cond_1924_1_length_InvokeMethod(TRUE, 2496_0_length_Return(x0)) → 2496_0_length_Return(+(1, x0))
1924_1_length_InvokeMethod(1878_0_length_Return) → 2496_0_length_Return(2)
4469_1_test_InvokeMethod(1878_0_length_Return, -1) → 1878_0_length_Return
4469_1_test_InvokeMethod(1878_0_length_Return, x1) → 1878_0_length_Return
4388_0_bubble_NULL(NULL) → 1878_0_length_Return
4388_0_bubble_NULL(java.lang.Object(List(x0))) → 4443_0_bubble_NONNULL(java.lang.Object(List(x0)))
4388_0_bubble_NULL(java.lang.Object(List(1878_0_length_Return))) → 4443_0_bubble_NONNULL(java.lang.Object(List(1878_0_length_Return)))
4443_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4457_0_bubble_Return(java.lang.Object(List(x0)))
4443_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4641_1_bubble_InvokeMethod(4388_0_bubble_NULL(java.lang.Object(List(1878_0_length_Return))))
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(1878_0_length_Return)))) → 1878_0_length_Return
4641_1_bubble_InvokeMethod(1878_0_length_Return) → 1878_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:
2112_0_length_Load(x0) → 1870_0_length_NONNULL
4467_0_bubble_Load(x0) → 4388_0_bubble_NULL(x0)
1870_0_length_NONNULL1878_0_length_Return
1870_0_length_NONNULL1924_1_length_InvokeMethod(1870_0_length_NONNULL)
1924_1_length_InvokeMethod(1878_0_length_Return) → 1878_0_length_Return
1924_1_length_InvokeMethod(2496_0_length_Return(x0)) → Cond_1924_1_length_InvokeMethod(x0 > 0, 2496_0_length_Return(x0))
Cond_1924_1_length_InvokeMethod(TRUE, 2496_0_length_Return(x0)) → 2496_0_length_Return(1 + x0)
1924_1_length_InvokeMethod(1878_0_length_Return) → 2496_0_length_Return(2)
4469_1_test_InvokeMethod(1878_0_length_Return, -1) → 1878_0_length_Return
4469_1_test_InvokeMethod(1878_0_length_Return, x1) → 1878_0_length_Return
4388_0_bubble_NULL(NULL) → 1878_0_length_Return
4388_0_bubble_NULL(java.lang.Object(List(x0))) → 4443_0_bubble_NONNULL(java.lang.Object(List(x0)))
4388_0_bubble_NULL(java.lang.Object(List(1878_0_length_Return))) → 4443_0_bubble_NONNULL(java.lang.Object(List(1878_0_length_Return)))
4443_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4457_0_bubble_Return(java.lang.Object(List(x0)))
4443_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4641_1_bubble_InvokeMethod(4388_0_bubble_NULL(java.lang.Object(List(1878_0_length_Return))))
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(1878_0_length_Return)))) → 1878_0_length_Return
4641_1_bubble_InvokeMethod(1878_0_length_Return) → 1878_0_length_Return

The integer pair graph contains the following rules and edges:
(0): 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0], NULL) → COND_2112_1_TEST_INVOKEMETHOD(x2[0] > 0 && x2[0] < 4, 1878_0_length_Return, x2[0], NULL, x3[0])
(1): COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), x2[1] - 1, x3[1])
(2): 2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2[2], 0, x0[2])
(3): 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[3], java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2[3], 0, 1)
(4): 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_0_TEST_GE(x3[4] >= x2[4] && x1[4] > 0 && x1[4] < 4, x1[4], x3[4], x2[4], x4[4])
(5): COND_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4[5]), x1[5] - 1, x4[5])
(6): 4434_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4434_0_TEST_GE1(x3[6] < x2[6] && x1[6] < 3, x1[6], x3[6], x2[6], x4[6])
(7): COND_4434_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4467_1_TEST_INVOKEMETHOD(4467_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])
(8): 4467_1_TEST_INVOKEMETHOD(1878_0_length_Return, x1[8], x2[8], x3[8], NULL) → 4434_0_TEST_GE(x1[8], x3[8] + 1, x2[8])
(9): 4467_1_TEST_INVOKEMETHOD(4457_0_bubble_Return(java.lang.Object(List(x0[9]))), x2[9], x3[9], x4[9], java.lang.Object(List(x0[9]))) → 4434_0_TEST_GE(x2[9], x4[9] + 1, x3[9])
(10): 4467_1_TEST_INVOKEMETHOD(1878_0_length_Return, x1[10], x2[10], x3[10], x4[10]) → 4434_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 (2112_0_length_Load(x3[1]) →* 1878_0_length_Returnx2[1] - 1* x2[0]x3[1]* NULL)

(1) -> (2), if (2112_0_length_Load(x3[1]) →* 2496_0_length_Return(x0[2])∧x2[1] - 1* x2[2]x3[1]* java.lang.Object(List(1878_0_length_Return)))

(1) -> (3), if (2112_0_length_Load(x3[1]) →* 1878_0_length_Returnx2[1] - 1* x2[3]x3[1]* java.lang.Object(List(1878_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 (2112_0_length_Load(x4[5]) →* 1878_0_length_Returnx1[5] - 1* x2[0]x4[5]* NULL)

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

(5) -> (3), if (2112_0_length_Load(x4[5]) →* 1878_0_length_Returnx1[5] - 1* x2[3]x4[5]* java.lang.Object(List(1878_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 (4467_0_bubble_Load(x4[7]) →* 1878_0_length_Returnx1[7]* x1[8]x2[7]* x2[8]x3[7]* x3[8]x4[7]* NULL)

(7) -> (9), if (4467_0_bubble_Load(x4[7]) →* 4457_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 (4467_0_bubble_Load(x4[7]) →* 1878_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:
2112_0_length_Load(x0)
4467_0_bubble_Load(x0)
1870_0_length_NONNULL
1924_1_length_InvokeMethod(1878_0_length_Return)
1924_1_length_InvokeMethod(2496_0_length_Return(x0))
Cond_1924_1_length_InvokeMethod(TRUE, 2496_0_length_Return(x0))
4469_1_test_InvokeMethod(1878_0_length_Return, x0)
4388_0_bubble_NULL(NULL)
4388_0_bubble_NULL(java.lang.Object(List(x0)))
4443_0_bubble_NONNULL(java.lang.Object(List(x0)))
4641_1_bubble_InvokeMethod(4457_0_bubble_Return(java.lang.Object(List(1878_0_length_Return))))
4641_1_bubble_InvokeMethod(1878_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@ef8e911 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 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2, NULL) → COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2, 0), <(x2, 4)), 1878_0_length_Return, x2, NULL, x3) the following chains were created:
• We consider the chain 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0], NULL) → COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_0_length_Return, x2[0], NULL, x3[0]), COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0], NULL) → COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_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]2112_0_length_Load(x3[1])=1878_0_length_Return-(x2[1], 1)=x2[0]1x3[1]=NULL2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0]1, NULL)≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0]1, NULL)≥COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1878_0_length_Return, x2[0]1, NULL, x3[0]1)∧(UIncreasing(COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1878_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=x02112_0_length_Load(x0)=1878_0_length_Return>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), NULL)≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), NULL)≥COND_2112_1_TEST_INVOKEMETHOD(&&(>(-(x2[0], 1), 0), <(-(x2[0], 1), 4)), 1878_0_length_Return, -(x2[0], 1), NULL, x3[0]1)∧(UIncreasing(COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1878_0_length_Return, x2[0]1, NULL, x3[0]1)), ≥))

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

(3)    (1870_0_length_NONNULL=1878_0_length_ReturnNULL=x1>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), NULL)≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), NULL)≥COND_2112_1_TEST_INVOKEMETHOD(&&(>(-(x2[0], 1), 0), <(-(x2[0], 1), 4)), 1878_0_length_Return, -(x2[0], 1), NULL, x3[0]1)∧(UIncreasing(COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1878_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)    (1870_0_length_NONNULL=1878_0_length_Return>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), NULL)≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), NULL)≥COND_2112_1_TEST_INVOKEMETHOD(&&(>(-(x2[0], 1), 0), <(-(x2[0], 1), 4)), 1878_0_length_Return, -(x2[0], 1), NULL, x3[0]1)∧(UIncreasing(COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1878_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_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1878_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_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1878_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_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1878_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_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1878_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 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]), COND_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0], NULL) → COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_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]2112_0_length_Load(x4[5])=1878_0_length_Return-(x1[5], 1)=x2[0]x4[5]=NULL2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0], NULL)≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0], NULL)≥COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_0_length_Return, x2[0], NULL, x3[0])∧(UIncreasing(COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_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=x22112_0_length_Load(x2)=1878_0_length_Return<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), NULL)≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), NULL)≥COND_2112_1_TEST_INVOKEMETHOD(&&(>(-(x1[4], 1), 0), <(-(x1[4], 1), 4)), 1878_0_length_Return, -(x1[4], 1), NULL, x3[0])∧(UIncreasing(COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_0_length_Return, x2[0], NULL, x3[0])), ≥))

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

(11)    (1870_0_length_NONNULL=1878_0_length_ReturnNULL=x3<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), NULL)≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), NULL)≥COND_2112_1_TEST_INVOKEMETHOD(&&(>(-(x1[4], 1), 0), <(-(x1[4], 1), 4)), 1878_0_length_Return, -(x1[4], 1), NULL, x3[0])∧(UIncreasing(COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_0_length_Return, x2[0], NULL, x3[0])), ≥))

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

(12)    (1870_0_length_NONNULL=1878_0_length_Return<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), NULL)≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), NULL)≥COND_2112_1_TEST_INVOKEMETHOD(&&(>(-(x1[4], 1), 0), <(-(x1[4], 1), 4)), 1878_0_length_Return, -(x1[4], 1), NULL, x3[0])∧(UIncreasing(COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_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_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_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_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_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_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_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_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_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_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_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_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2, NULL, x3) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3), -(x2, 1), x3) the following chains were created:
• We consider the chain COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0], NULL) → COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_0_length_Return, x2[0], NULL, x3[0]), COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1]) which results in the following constraint:

(18)    (2112_0_length_Load(x3[1])=1878_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_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1]1, NULL, x3[1]1)≥NonInfC∧COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1]1, NULL, x3[1]1)≥2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]1), -(x2[1]1, 1), x3[1]1)∧(UIncreasing(2112_1_TEST_INVOKEMETHOD(2112_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=x42112_0_length_Load(x4)=1878_0_length_Return>(-(x2[1], 1), 0)=TRUE<(-(x2[1], 1), 4)=TRUECOND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x2[1], 1), NULL, x3[0])≥NonInfC∧COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x2[1], 1), NULL, x3[0])≥2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[0]), -(-(x2[1], 1), 1), x3[0])∧(UIncreasing(2112_1_TEST_INVOKEMETHOD(2112_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 2112_0_length_Load(x4)=1878_0_length_Return which results in the following new constraint:

(20)    (1870_0_length_NONNULL=1878_0_length_ReturnNULL=x5>(-(x2[1], 1), 0)=TRUE<(-(x2[1], 1), 4)=TRUECOND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x2[1], 1), NULL, x3[0])≥NonInfC∧COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x2[1], 1), NULL, x3[0])≥2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[0]), -(-(x2[1], 1), 1), x3[0])∧(UIncreasing(2112_1_TEST_INVOKEMETHOD(2112_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)    (1870_0_length_NONNULL=1878_0_length_Return>(-(x2[1], 1), 0)=TRUE<(-(x2[1], 1), 4)=TRUECOND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x2[1], 1), NULL, x3[0])≥NonInfC∧COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x2[1], 1), NULL, x3[0])≥2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[0]), -(-(x2[1], 1), 1), x3[0])∧(UIncreasing(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0], NULL) → COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_0_length_Return, x2[0], NULL, x3[0]), COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1]) which results in the following constraint:

(26)    (2112_0_length_Load(x4[5])=1878_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_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1])≥NonInfC∧COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1])≥2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1])∧(UIncreasing(2112_1_TEST_INVOKEMETHOD(2112_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=x62112_0_length_Load(x6)=1878_0_length_Return>(-(x1[5], 1), 0)=TRUE<(-(x1[5], 1), 4)=TRUECOND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x1[5], 1), NULL, x3[0])≥NonInfC∧COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x1[5], 1), NULL, x3[0])≥2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[0]), -(-(x1[5], 1), 1), x3[0])∧(UIncreasing(2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1])), ≥))

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

(28)    (1870_0_length_NONNULL=1878_0_length_ReturnNULL=x7>(-(x1[5], 1), 0)=TRUE<(-(x1[5], 1), 4)=TRUECOND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x1[5], 1), NULL, x3[0])≥NonInfC∧COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x1[5], 1), NULL, x3[0])≥2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[0]), -(-(x1[5], 1), 1), x3[0])∧(UIncreasing(2112_1_TEST_INVOKEMETHOD(2112_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)    (1870_0_length_NONNULL=1878_0_length_Return>(-(x1[5], 1), 0)=TRUE<(-(x1[5], 1), 4)=TRUECOND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x1[5], 1), NULL, x3[0])≥NonInfC∧COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, -(x1[5], 1), NULL, x3[0])≥2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[0]), -(-(x1[5], 1), 1), x3[0])∧(UIncreasing(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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 2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0), x2, java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2, 0, x0) the following chains were created:
• We consider the chain 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0], NULL) → COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_0_length_Return, x2[0], NULL, x3[0]), COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1878_0_length_Return))) → 4434_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]2112_0_length_Load(x3[1])=2496_0_length_Return(x0[2])∧-(x2[1], 1)=x2[2]x3[1]=java.lang.Object(List(1878_0_length_Return)) ⇒ 2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(x2[2], 0, x0[2])∧(UIncreasing(4434_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(1878_0_length_Return))=x82112_0_length_Load(x8)=2496_0_length_Return(x0[2])∧>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x2[0], 1), 0, x0[2])∧(UIncreasing(4434_0_TEST_GE(x2[2], 0, x0[2])), ≥))

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

(36)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2])∧java.lang.Object(List(1878_0_length_Return))=x9>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x2[0], 1), 0, x0[2])∧(UIncreasing(4434_0_TEST_GE(x2[2], 0, x0[2])), ≥))

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

(37)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2])∧>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x2[0], 1), 0, x0[2])∧(UIncreasing(4434_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(4434_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(4434_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(4434_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(4434_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(4434_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 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]), COND_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1878_0_length_Return))) → 4434_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]2112_0_length_Load(x4[5])=2496_0_length_Return(x0[2])∧-(x1[5], 1)=x2[2]x4[5]=java.lang.Object(List(1878_0_length_Return)) ⇒ 2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(x2[2], 0, x0[2])∧(UIncreasing(4434_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(1878_0_length_Return))=x102112_0_length_Load(x10)=2496_0_length_Return(x0[2])∧<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x1[4], 1), 0, x0[2])∧(UIncreasing(4434_0_TEST_GE(x2[2], 0, x0[2])), ≥))

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

(45)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2])∧java.lang.Object(List(1878_0_length_Return))=x11<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x1[4], 1), 0, x0[2])∧(UIncreasing(4434_0_TEST_GE(x2[2], 0, x0[2])), ≥))

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

(46)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2])∧<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x1[4], 1), 0, x0[2])∧(UIncreasing(4434_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(4434_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(4434_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(4434_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(4434_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(4434_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(4434_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 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2, java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2, 0, 1) the following chains were created:
• We consider the chain 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[0], NULL) → COND_2112_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1878_0_length_Return, x2[0], NULL, x3[0]), COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[3], java.lang.Object(List(1878_0_length_Return))) → 4434_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]2112_0_length_Load(x3[1])=1878_0_length_Return-(x2[1], 1)=x2[3]x3[1]=java.lang.Object(List(1878_0_length_Return)) ⇒ 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[3], java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[3], java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(x2[3], 0, 1)∧(UIncreasing(4434_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(1878_0_length_Return))=x122112_0_length_Load(x12)=1878_0_length_Return>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x2[0], 1), 0, 1)∧(UIncreasing(4434_0_TEST_GE(x2[3], 0, 1)), ≥))

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

(55)    (1870_0_length_NONNULL=1878_0_length_Returnjava.lang.Object(List(1878_0_length_Return))=x13>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x2[0], 1), 0, 1)∧(UIncreasing(4434_0_TEST_GE(x2[3], 0, 1)), ≥))

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

(56)    (1870_0_length_NONNULL=1878_0_length_Return>(x2[0], 0)=TRUE<(x2[0], 4)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x2[0], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x2[0], 1), 0, 1)∧(UIncreasing(4434_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(4434_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(4434_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(4434_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(4434_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 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]), COND_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[3], java.lang.Object(List(1878_0_length_Return))) → 4434_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]2112_0_length_Load(x4[5])=1878_0_length_Return-(x1[5], 1)=x2[3]x4[5]=java.lang.Object(List(1878_0_length_Return)) ⇒ 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[3], java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[3], java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(x2[3], 0, 1)∧(UIncreasing(4434_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(1878_0_length_Return))=x142112_0_length_Load(x14)=1878_0_length_Return<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x1[4], 1), 0, 1)∧(UIncreasing(4434_0_TEST_GE(x2[3], 0, 1)), ≥))

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

(63)    (1870_0_length_NONNULL=1878_0_length_Returnjava.lang.Object(List(1878_0_length_Return))=x15<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x1[4], 1), 0, 1)∧(UIncreasing(4434_0_TEST_GE(x2[3], 0, 1)), ≥))

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

(64)    (1870_0_length_NONNULL=1878_0_length_Return<(x1[4], 4)=TRUE>=(x3[4], x2[4])=TRUE>(x1[4], 0)=TRUE2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥NonInfC∧2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, -(x1[4], 1), java.lang.Object(List(1878_0_length_Return)))≥4434_0_TEST_GE(-(x1[4], 1), 0, 1)∧(UIncreasing(4434_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(4434_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(4434_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(4434_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(4434_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(4434_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 4434_0_TEST_GE(x1, x3, x2) → COND_4434_0_TEST_GE(&&(&&(>=(x3, x2), >(x1, 0)), <(x1, 4)), x1, x3, x2, x4) the following chains were created:
• We consider the chain COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2[2], 0, x0[2]), 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_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)    (2112_0_length_Load(x3[1])=2496_0_length_Return(x0[2])∧-(x2[1], 1)=x2[2]x3[1]=java.lang.Object(List(1878_0_length_Return))∧x2[2]=x1[4]0=x3[4]x0[2]=x2[4]4434_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4434_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4434_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4434_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(1878_0_length_Return))=x162112_0_length_Load(x16)=2496_0_length_Return(x0[2]) ⇒ 4434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4434_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4434_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 2112_0_length_Load(x16)=2496_0_length_Return(x0[2]) which results in the following new constraint:

(72)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2])∧java.lang.Object(List(1878_0_length_Return))=x174434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4434_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4434_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)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2]) ⇒ 4434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4434_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4434_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_4434_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_4434_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_4434_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_4434_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_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[3], java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2[3], 0, 1), 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_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)    (2112_0_length_Load(x3[1])=1878_0_length_Return-(x2[1], 1)=x2[3]x3[1]=java.lang.Object(List(1878_0_length_Return))∧x2[3]=x1[4]0=x3[4]1=x2[4]4434_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4434_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4434_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4434_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(1878_0_length_Return))=x182112_0_length_Load(x18)=1878_0_length_Return4434_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4434_0_TEST_GE(&&(&&(>=(0, 1), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, 1, x4[4])∧(UIncreasing(COND_4434_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 2112_0_length_Load(x18)=1878_0_length_Return which results in the following new constraint:

(80)    (1870_0_length_NONNULL=1878_0_length_Returnjava.lang.Object(List(1878_0_length_Return))=x194434_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4434_0_TEST_GE(&&(&&(>=(0, 1), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, 1, x4[4])∧(UIncreasing(COND_4434_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)    (1870_0_length_NONNULL=1878_0_length_Return4434_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4434_0_TEST_GE(&&(&&(>=(0, 1), >(-(x2[1], 1), 0)), <(-(x2[1], 1), 4)), -(x2[1], 1), 0, 1, x4[4])∧(UIncreasing(COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4467_1_TEST_INVOKEMETHOD(4467_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4467_1_TEST_INVOKEMETHOD(1878_0_length_Return, x1[8], x2[8], x3[8], NULL) → 4434_0_TEST_GE(x1[8], +(x3[8], 1), x2[8]), 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_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)    (4467_0_bubble_Load(x4[7])=1878_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]4434_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4434_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4434_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4434_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=x204467_0_bubble_Load(x20)=1878_0_length_Return4434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4434_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_4434_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 4467_0_bubble_Load(x20)=1878_0_length_Return which results in the following new constraint:

(88)    (4388_0_bubble_NULL(x21)=1878_0_length_ReturnNULL=x214434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4434_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_4434_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)    (4388_0_bubble_NULL(NULL)=1878_0_length_Return4434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4467_1_TEST_INVOKEMETHOD(4467_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4467_1_TEST_INVOKEMETHOD(4457_0_bubble_Return(java.lang.Object(List(x0[9]))), x2[9], x3[9], x4[9], java.lang.Object(List(x0[9]))) → 4434_0_TEST_GE(x2[9], +(x4[9], 1), x3[9]), 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_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)    (4467_0_bubble_Load(x4[7])=4457_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]4434_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4434_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4434_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4434_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]))=x224467_0_bubble_Load(x22)=4457_0_bubble_Return(java.lang.Object(List(x0[9]))) ⇒ 4434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4434_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_4434_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 4467_0_bubble_Load(x22)=4457_0_bubble_Return(java.lang.Object(List(x0[9]))) which results in the following new constraint:

(96)    (4388_0_bubble_NULL(x23)=4457_0_bubble_Return(java.lang.Object(List(x0[9])))∧java.lang.Object(List(x0[9]))=x234434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4434_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_4434_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)    (4388_0_bubble_NULL(java.lang.Object(List(x0[9])))=4457_0_bubble_Return(java.lang.Object(List(x0[9]))) ⇒ 4434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4467_1_TEST_INVOKEMETHOD(4467_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4467_1_TEST_INVOKEMETHOD(1878_0_length_Return, x1[10], x2[10], x3[10], x4[10]) → 4434_0_TEST_GE(x1[10], +(x3[10], 1), x2[10]), 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_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)    (4467_0_bubble_Load(x4[7])=1878_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]4434_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4434_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4434_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4434_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)    (4467_0_bubble_Load(x4[7])=1878_0_length_Return4434_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥COND_4434_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_4434_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 4467_0_bubble_Load(x4[7])=1878_0_length_Return which results in the following new constraint:

(104)    (4388_0_bubble_NULL(x24)=1878_0_length_Return4434_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2[2], 0, x0[2]), 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_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)    (2112_0_length_Load(x4[5])=2496_0_length_Return(x0[2])∧-(x1[5], 1)=x2[2]x4[5]=java.lang.Object(List(1878_0_length_Return))∧x2[2]=x1[4]0=x3[4]x0[2]=x2[4]4434_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4434_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4434_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4434_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(1878_0_length_Return))=x252112_0_length_Load(x25)=2496_0_length_Return(x0[2]) ⇒ 4434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4434_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4434_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 2112_0_length_Load(x25)=2496_0_length_Return(x0[2]) which results in the following new constraint:

(111)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2])∧java.lang.Object(List(1878_0_length_Return))=x264434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4434_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4434_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)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2]) ⇒ 4434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4434_0_TEST_GE(&&(&&(>=(0, x0[2]), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, x0[2], x4[4])∧(UIncreasing(COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[3], java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2[3], 0, 1), 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_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)    (2112_0_length_Load(x4[5])=1878_0_length_Return-(x1[5], 1)=x2[3]x4[5]=java.lang.Object(List(1878_0_length_Return))∧x2[3]=x1[4]0=x3[4]1=x2[4]4434_0_TEST_GE(x1[4], x3[4], x2[4])≥NonInfC∧4434_0_TEST_GE(x1[4], x3[4], x2[4])≥COND_4434_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])∧(UIncreasing(COND_4434_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(1878_0_length_Return))=x272112_0_length_Load(x27)=1878_0_length_Return4434_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4434_0_TEST_GE(&&(&&(>=(0, 1), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, 1, x4[4])∧(UIncreasing(COND_4434_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 2112_0_length_Load(x27)=1878_0_length_Return which results in the following new constraint:

(119)    (1870_0_length_NONNULL=1878_0_length_Returnjava.lang.Object(List(1878_0_length_Return))=x284434_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4434_0_TEST_GE(&&(&&(>=(0, 1), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, 1, x4[4])∧(UIncreasing(COND_4434_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)    (1870_0_length_NONNULL=1878_0_length_Return4434_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4434_0_TEST_GE(&&(&&(>=(0, 1), >(-(x1[5], 1), 0)), <(-(x1[5], 1), 4)), -(x1[5], 1), 0, 1, x4[4])∧(UIncreasing(COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE(TRUE, x1, x3, x2, x4) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4), -(x1, 1), x4) the following chains were created:
• We consider the chain 4434_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4434_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4]), COND_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 2112_1_TEST_INVOKEMETHOD(2112_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_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5])≥NonInfC∧COND_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5])≥2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4[5]), -(x1[5], 1), x4[5])∧(UIncreasing(2112_1_TEST_INVOKEMETHOD(2112_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_4434_0_TEST_GE(TRUE, x1[4], x3[4], x2[4], x4[4])≥NonInfC∧COND_4434_0_TEST_GE(TRUE, x1[4], x3[4], x2[4], x4[4])≥2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4[4]), -(x1[4], 1), x4[4])∧(UIncreasing(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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(2112_1_TEST_INVOKEMETHOD(2112_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 4434_0_TEST_GE(x1, x3, x2) → COND_4434_0_TEST_GE1(&&(<(x3, x2), <(x1, 3)), x1, x3, x2, x4) the following chains were created:
• We consider the chain COND_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2[2], 0, x0[2]), 4434_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4434_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)    (2112_0_length_Load(x3[1])=2496_0_length_Return(x0[2])∧-(x2[1], 1)=x2[2]x3[1]=java.lang.Object(List(1878_0_length_Return))∧x2[2]=x1[6]0=x3[6]x0[2]=x2[6]4434_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4434_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4434_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4434_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(1878_0_length_Return))=x292112_0_length_Load(x29)=2496_0_length_Return(x0[2]) ⇒ 4434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4434_0_TEST_GE1(&&(<(0, x0[2]), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4434_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 2112_0_length_Load(x29)=2496_0_length_Return(x0[2]) which results in the following new constraint:

(136)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2])∧java.lang.Object(List(1878_0_length_Return))=x304434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4434_0_TEST_GE1(&&(<(0, x0[2]), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4434_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)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2]) ⇒ 4434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, x0[2])≥COND_4434_0_TEST_GE1(&&(<(0, x0[2]), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4434_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_4434_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_4434_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_4434_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_4434_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_2112_1_TEST_INVOKEMETHOD(TRUE, 1878_0_length_Return, x2[1], NULL, x3[1]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x3[1]), -(x2[1], 1), x3[1]), 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[3], java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2[3], 0, 1), 4434_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4434_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)    (2112_0_length_Load(x3[1])=1878_0_length_Return-(x2[1], 1)=x2[3]x3[1]=java.lang.Object(List(1878_0_length_Return))∧x2[3]=x1[6]0=x3[6]1=x2[6]4434_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4434_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4434_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4434_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(1878_0_length_Return))=x312112_0_length_Load(x31)=1878_0_length_Return4434_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4434_0_TEST_GE1(&&(<(0, 1), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, 1, x4[6])∧(UIncreasing(COND_4434_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 2112_0_length_Load(x31)=1878_0_length_Return which results in the following new constraint:

(144)    (1870_0_length_NONNULL=1878_0_length_Returnjava.lang.Object(List(1878_0_length_Return))=x324434_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4434_0_TEST_GE1(&&(<(0, 1), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, 1, x4[6])∧(UIncreasing(COND_4434_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)    (1870_0_length_NONNULL=1878_0_length_Return4434_0_TEST_GE(-(x2[1], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x2[1], 1), 0, 1)≥COND_4434_0_TEST_GE1(&&(<(0, 1), <(-(x2[1], 1), 3)), -(x2[1], 1), 0, 1, x4[6])∧(UIncreasing(COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4467_1_TEST_INVOKEMETHOD(4467_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4467_1_TEST_INVOKEMETHOD(1878_0_length_Return, x1[8], x2[8], x3[8], NULL) → 4434_0_TEST_GE(x1[8], +(x3[8], 1), x2[8]), 4434_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4434_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)    (4467_0_bubble_Load(x4[7])=1878_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]4434_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4434_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4434_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4434_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=x334467_0_bubble_Load(x33)=1878_0_length_Return4434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4434_0_TEST_GE1(&&(<(+(x3[8], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[8], 1), x2[7], x4[6])∧(UIncreasing(COND_4434_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 4467_0_bubble_Load(x33)=1878_0_length_Return which results in the following new constraint:

(152)    (4388_0_bubble_NULL(x34)=1878_0_length_ReturnNULL=x344434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4434_0_TEST_GE1(&&(<(+(x3[8], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[8], 1), x2[7], x4[6])∧(UIncreasing(COND_4434_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)    (4388_0_bubble_NULL(NULL)=1878_0_length_Return4434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x3[8], 1), x2[7])≥COND_4434_0_TEST_GE1(&&(<(+(x3[8], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[8], 1), x2[7], x4[6])∧(UIncreasing(COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4467_1_TEST_INVOKEMETHOD(4467_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4467_1_TEST_INVOKEMETHOD(4457_0_bubble_Return(java.lang.Object(List(x0[9]))), x2[9], x3[9], x4[9], java.lang.Object(List(x0[9]))) → 4434_0_TEST_GE(x2[9], +(x4[9], 1), x3[9]), 4434_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4434_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)    (4467_0_bubble_Load(x4[7])=4457_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]4434_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4434_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4434_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4434_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]))=x354467_0_bubble_Load(x35)=4457_0_bubble_Return(java.lang.Object(List(x0[9]))) ⇒ 4434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4434_0_TEST_GE1(&&(<(+(x4[9], 1), x2[7]), <(x1[7], 3)), x1[7], +(x4[9], 1), x2[7], x4[6])∧(UIncreasing(COND_4434_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 4467_0_bubble_Load(x35)=4457_0_bubble_Return(java.lang.Object(List(x0[9]))) which results in the following new constraint:

(160)    (4388_0_bubble_NULL(x36)=4457_0_bubble_Return(java.lang.Object(List(x0[9])))∧java.lang.Object(List(x0[9]))=x364434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4434_0_TEST_GE1(&&(<(+(x4[9], 1), x2[7]), <(x1[7], 3)), x1[7], +(x4[9], 1), x2[7], x4[6])∧(UIncreasing(COND_4434_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)    (4388_0_bubble_NULL(java.lang.Object(List(x0[9])))=4457_0_bubble_Return(java.lang.Object(List(x0[9]))) ⇒ 4434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x4[9], 1), x2[7])≥COND_4434_0_TEST_GE1(&&(<(+(x4[9], 1), x2[7]), <(x1[7], 3)), x1[7], +(x4[9], 1), x2[7], x4[6])∧(UIncreasing(COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4467_1_TEST_INVOKEMETHOD(4467_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7]), 4467_1_TEST_INVOKEMETHOD(1878_0_length_Return, x1[10], x2[10], x3[10], x4[10]) → 4434_0_TEST_GE(x1[10], +(x3[10], 1), x2[10]), 4434_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4434_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)    (4467_0_bubble_Load(x4[7])=1878_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]4434_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4434_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4434_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4434_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)    (4467_0_bubble_Load(x4[7])=1878_0_length_Return4434_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥COND_4434_0_TEST_GE1(&&(<(+(x3[10], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[10], 1), x2[7], x4[6])∧(UIncreasing(COND_4434_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 4467_0_bubble_Load(x4[7])=1878_0_length_Return which results in the following new constraint:

(168)    (4388_0_bubble_NULL(x37)=1878_0_length_Return4434_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥NonInfC∧4434_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥COND_4434_0_TEST_GE1(&&(<(+(x3[10], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[10], 1), x2[7], x4[6])∧(UIncreasing(COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 2112_1_TEST_INVOKEMETHOD(2496_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2[2], 0, x0[2]), 4434_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4434_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)    (2112_0_length_Load(x4[5])=2496_0_length_Return(x0[2])∧-(x1[5], 1)=x2[2]x4[5]=java.lang.Object(List(1878_0_length_Return))∧x2[2]=x1[6]0=x3[6]x0[2]=x2[6]4434_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4434_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4434_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4434_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(1878_0_length_Return))=x382112_0_length_Load(x38)=2496_0_length_Return(x0[2]) ⇒ 4434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4434_0_TEST_GE1(&&(<(0, x0[2]), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4434_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 2112_0_length_Load(x38)=2496_0_length_Return(x0[2]) which results in the following new constraint:

(175)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2])∧java.lang.Object(List(1878_0_length_Return))=x394434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4434_0_TEST_GE1(&&(<(0, x0[2]), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4434_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)    (1870_0_length_NONNULL=2496_0_length_Return(x0[2]) ⇒ 4434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, x0[2])≥COND_4434_0_TEST_GE1(&&(<(0, x0[2]), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, x0[2], x4[6])∧(UIncreasing(COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 2112_1_TEST_INVOKEMETHOD(2112_0_length_Load(x4[5]), -(x1[5], 1), x4[5]), 2112_1_TEST_INVOKEMETHOD(1878_0_length_Return, x2[3], java.lang.Object(List(1878_0_length_Return))) → 4434_0_TEST_GE(x2[3], 0, 1), 4434_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4434_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)    (2112_0_length_Load(x4[5])=1878_0_length_Return-(x1[5], 1)=x2[3]x4[5]=java.lang.Object(List(1878_0_length_Return))∧x2[3]=x1[6]0=x3[6]1=x2[6]4434_0_TEST_GE(x1[6], x3[6], x2[6])≥NonInfC∧4434_0_TEST_GE(x1[6], x3[6], x2[6])≥COND_4434_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])∧(UIncreasing(COND_4434_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(1878_0_length_Return))=x402112_0_length_Load(x40)=1878_0_length_Return4434_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4434_0_TEST_GE1(&&(<(0, 1), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, 1, x4[6])∧(UIncreasing(COND_4434_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 2112_0_length_Load(x40)=1878_0_length_Return which results in the following new constraint:

(183)    (1870_0_length_NONNULL=1878_0_length_Returnjava.lang.Object(List(1878_0_length_Return))=x414434_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4434_0_TEST_GE1(&&(<(0, 1), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, 1, x4[6])∧(UIncreasing(COND_4434_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)    (1870_0_length_NONNULL=1878_0_length_Return4434_0_TEST_GE(-(x1[5], 1), 0, 1)≥NonInfC∧4434_0_TEST_GE(-(x1[5], 1), 0, 1)≥COND_4434_0_TEST_GE1(&&(<(0, 1), <(-(x1[5], 1), 3)), -(x1[5], 1), 0, 1, x4[6])∧(UIncreasing(COND_4434_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_4434_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_4434_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_4434_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_4434_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_4434_0_TEST_GE1(TRUE, x1, x3, x2, x4) → 4467_1_TEST_INVOKEMETHOD(4467_0_bubble_Load(x4), x1, x2, x3, x4) the following chains were created:
• We consider the chain 4434_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4434_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6]), COND_4434_0_TEST_GE1(TRUE, x1[7], x3[7],