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

(4) Complex Obligation (AND)

(5) Obligation:

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

(6) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 82 rules for P and 11 rules for R.


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

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


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

Filtered ground terms:



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

Filtered duplicate args:



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

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


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

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


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


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

(7) Obligation:

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


The following domains are used:

Integer


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

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

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


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


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


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


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


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


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


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


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


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



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

(8) IDPNonInfProof (SOUND transformation)

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

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


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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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

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

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

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

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




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

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

The following pairs are in P>:

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

The following pairs are in Pbound:

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

The following pairs are in P:

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

There are no usable rules.

(9) Obligation:

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


The following domains are used:

Integer


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

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

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


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


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


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



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

(10) IDependencyGraphProof (EQUIVALENT transformation)

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

(11) TRUE

(12) Obligation:

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

(13) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 37 rules for P and 63 rules for R.


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

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


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

Filtered ground terms:



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

Filtered duplicate args:



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

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


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

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


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


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

(14) Obligation:

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


The following domains are used:
none


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

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

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



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

(15) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(16) Obligation:

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

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

The TRS R consists of the following rules:

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

The set Q consists of the following terms:

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

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

(17) UsableRulesProof (EQUIVALENT transformation)

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

(18) Obligation:

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

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

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

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

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

(19) QReductionProof (EQUIVALENT transformation)

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

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

(20) Obligation:

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

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

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

(21) QDPSizeChangeProof (EQUIVALENT transformation)

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

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

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

(22) YES

(23) Obligation:

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

(24) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 76 rules for P and 212 rules for R.


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

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


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

Filtered ground terms:



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

Filtered duplicate args:



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

Filtered unneeded arguments:



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

Filtered free variables in P:



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

Current set of rules:


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

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


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

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


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


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

(25) Obligation:

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


The following domains are used:

Integer, Boolean


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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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



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

(26) IDPNonInfProof (SOUND transformation)

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

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


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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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


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







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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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







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

    (189)    (&&(<(x3[6], x2[6]), <(x1[6], 3))=TRUEx1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]x4[6]=x4[7]COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7])≥NonInfC∧COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7])≥4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])∧(UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥))



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

    (190)    (<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUECOND_4320_0_TEST_GE1(TRUE, x1[6], x3[6], x2[6], x4[6])≥NonInfC∧COND_4320_0_TEST_GE1(TRUE, x1[6], x3[6], x2[6], x4[6])≥4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[6]), x1[6], x2[6], x3[6], x4[6])∧(UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥))



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

    (191)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)



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

    (192)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)



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

    (193)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)



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

    (194)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)



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

    (195)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)


    (196)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)



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

    (197)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)


    (198)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [(-1)bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)



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

    (199)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)


    (200)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [(-1)bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)







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

    (201)    (&&(<(x3[6], x2[6]), <(x1[6], 3))=TRUEx1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]x4[6]=x4[7]4356_0_bubble_Load(x4[7])=1635_0_length_Returnx1[7]=x1[8]x2[7]=x2[8]x3[7]=x3[8]x4[7]=NULL4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[8], x2[8], x3[8], NULL)≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[8], x2[8], x3[8], NULL)≥4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])∧(UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥))



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

    (202)    (NULL=x424356_0_bubble_Load(x42)=1635_0_length_Return<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥))



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

    (203)    (4266_0_bubble_NULL(x43)=1635_0_length_ReturnNULL=x43<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥))



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

    (204)    (4266_0_bubble_NULL(NULL)=1635_0_length_Return<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥))



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

    (205)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)



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

    (206)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)



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

    (207)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)



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

    (208)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)



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

    (209)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)


    (210)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)



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

    (211)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)


    (212)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [(-1)bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)



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

    (213)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)


    (214)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [(-1)bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)







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

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



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

    (216)    (java.lang.Object(List(x0[9]))=x444356_0_bubble_Load(x44)=4345_0_bubble_Return(java.lang.Object(List(x0[9])))∧<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥NonInfC∧4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥))



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

    (217)    (4266_0_bubble_NULL(x45)=4345_0_bubble_Return(java.lang.Object(List(x0[9])))∧java.lang.Object(List(x0[9]))=x45<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥NonInfC∧4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥))



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

    (218)    (4266_0_bubble_NULL(java.lang.Object(List(x0[9])))=4345_0_bubble_Return(java.lang.Object(List(x0[9])))∧<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥NonInfC∧4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥))



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

    (219)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)



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

    (220)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)



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

    (221)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)



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

    (222)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)



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

    (223)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)


    (224)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)



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

    (225)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)


    (226)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)



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

    (227)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)


    (228)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)







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

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



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

    (230)    (4356_0_bubble_Load(x4[7])=1635_0_length_Return<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], x4[7])≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], x4[7])≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥))



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

    (231)    (4266_0_bubble_NULL(x46)=1635_0_length_Return<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], x46)≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], x46)≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥))



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

    (232)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)



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

    (233)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)



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

    (234)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)



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

    (235)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)



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

    (236)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)


    (237)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)



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

    (238)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)


    (239)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [(-1)bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)



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

    (240)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)


    (241)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [(-1)bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2, NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2, 0), <(x2, 4)), 1635_0_length_Return, x2, NULL, x3)
    • (x2[0] ≥ 0∧[2] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0]1, 0), <(x2[0]1, 4)), 1635_0_length_Return, x2[0]1, NULL, x3[0]1)), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [bni_37]x2[0] ≥ 0∧[(-1)bso_38] ≥ 0)
    • ([2] + [-1]x1[4] ≥ 0∧x1[4] ≥ 0 ⇒ (UIncreasing(COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])), ≥)∧[(-1)bni_37 + (-1)Bound*bni_37] + [bni_37]x1[4] ≥ 0∧[(-1)bso_38] ≥ 0)

  • COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2, NULL, x3) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3), -(x2, 1), x3)
    • (x2[1] ≥ 0∧[2] + [-1]x2[1] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]1), -(x2[1]1, 1), x3[1]1)), ≥)∧[(-1)Bound*bni_39] + [bni_39]x2[1] ≥ 0∧[1 + (-1)bso_40] ≥ 0)
    • (x1[5] ≥ 0∧[2] + [-1]x1[5] ≥ 0 ⇒ (UIncreasing(1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])), ≥)∧[(-1)Bound*bni_39] + [bni_39]x1[5] ≥ 0∧[1 + (-1)bso_40] ≥ 0)

  • 1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0), x2, java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2, 0, x0)
    • (x2[0] ≥ 0∧[2] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-1)bni_41 + (-1)Bound*bni_41] + [bni_41]x2[0] ≥ 0∧0 = 0∧[(-1)bso_42] ≥ 0)
    • ([2] + [-1]x1[4] ≥ 0∧x1[4] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[2], 0, x0[2])), ≥)∧[(-1)bni_41 + (-1)Bound*bni_41] + [bni_41]x1[4] ≥ 0∧0 = 0∧[(-1)bso_42] ≥ 0)

  • 1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2, java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2, 0, 1)
    • (x2[0] ≥ 0∧[2] + [-1]x2[0] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [bni_43]x2[0] ≥ 0∧[(-1)bso_44] ≥ 0)
    • ([2] + [-1]x1[4] ≥ 0∧x1[4] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[3], 0, 1)), ≥)∧[(-1)bni_43 + (-1)Bound*bni_43] + [bni_43]x1[4] ≥ 0∧[(-1)bso_44] ≥ 0)

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

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

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

  • COND_4320_0_TEST_GE1(TRUE, x1, x3, x2, x4) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4), x1, x2, x3, x4)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [(-1)bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)bni_51 + (-1)Bound*bni_51] + [(-1)bni_51]x1[6] ≥ 0∧[(-1)bso_52] ≥ 0)

  • 4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1, x2, x3, NULL) → 4320_0_TEST_GE(x1, +(x3, 1), x2)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [(-1)bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_53 + (-1)Bound*bni_53] + [(-1)bni_53]x1[6] ≥ 0∧[(-1)bso_54] ≥ 0)

  • 4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0))), x2, x3, x4, java.lang.Object(List(x0))) → 4320_0_TEST_GE(x2, +(x4, 1), x3)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [(-1)bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_55 + (-1)Bound*bni_55] + [bni_55]x1[6] ≥ 0∧[(-1)bso_56] ≥ 0)

  • 4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1, x2, x3, x4) → 4320_0_TEST_GE(x1, +(x3, 1), x2)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [(-1)bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_57 + (-1)Bound*bni_57] + [(-1)bni_57]x1[6] ≥ 0∧[(-1)bso_58] ≥ 0)




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

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

The following pairs are in P>:

COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])
COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])

The following pairs are in Pbound:

1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])
COND_1915_1_TEST_INVOKEMETHOD(TRUE, 1635_0_length_Return, x2[1], NULL, x3[1]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x3[1]), -(x2[1], 1), x3[1])
1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[2], 0, x0[2])
1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[3], 0, 1)
COND_4320_0_TEST_GE(TRUE, x1[5], x3[5], x2[5], x4[5]) → 1915_1_TEST_INVOKEMETHOD(1915_0_length_Load(x4[5]), -(x1[5], 1), x4[5])

The following pairs are in P:

1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[0], NULL) → COND_1915_1_TEST_INVOKEMETHOD(&&(>(x2[0], 0), <(x2[0], 4)), 1635_0_length_Return, x2[0], NULL, x3[0])
1915_1_TEST_INVOKEMETHOD(2393_0_length_Return(x0[2]), x2[2], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[2], 0, x0[2])
1915_1_TEST_INVOKEMETHOD(1635_0_length_Return, x2[3], java.lang.Object(List(1635_0_length_Return))) → 4320_0_TEST_GE(x2[3], 0, 1)
4320_0_TEST_GE(x1[4], x3[4], x2[4]) → COND_4320_0_TEST_GE(&&(&&(>=(x3[4], x2[4]), >(x1[4], 0)), <(x1[4], 4)), x1[4], x3[4], x2[4], x4[4])
4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])
COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])
4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[8], x2[8], x3[8], NULL) → 4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])
4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x2[9], x3[9], x4[9], java.lang.Object(List(x0[9]))) → 4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])
4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[10], x2[10], x3[10], x4[10]) → 4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])

There are no usable rules.

(27) Obligation:

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


The following domains are used:

Integer, Boolean


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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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



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

(28) IDependencyGraphProof (EQUIVALENT transformation)

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

(29) Obligation:

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


The following domains are used:

Integer, Boolean


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

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

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


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


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


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


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


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


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



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

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

(31) 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:
4356_0_bubble_Load(x0) → 4266_0_bubble_NULL(x0)
4266_0_bubble_NULL(NULL) → 1635_0_length_Return
4266_0_bubble_NULL(java.lang.Object(List(x0))) → 4330_0_bubble_NONNULL(java.lang.Object(List(x0)))
4266_0_bubble_NULL(java.lang.Object(List(1635_0_length_Return))) → 4330_0_bubble_NONNULL(java.lang.Object(List(1635_0_length_Return)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4548_1_bubble_InvokeMethod(4266_0_bubble_NULL(java.lang.Object(List(1635_0_length_Return))))
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(1635_0_length_Return)))) → 1635_0_length_Return
4548_1_bubble_InvokeMethod(1635_0_length_Return) → 1635_0_length_Return
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4345_0_bubble_Return(java.lang.Object(List(x0)))

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

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


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


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


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


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


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


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



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

(32) IDPNonInfProof (SOUND transformation)

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

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


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

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



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

    (2)    (4356_0_bubble_Load(x4[7])=1635_0_length_Return<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], x4[7])≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], x4[7])≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥))



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

    (3)    (4266_0_bubble_NULL(x0)=1635_0_length_Return<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], x0)≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], x0)≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥))



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

    (4)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [bni_19]x2[6] + [(-1)bni_19]x1[6] + [(-1)bni_19]x3[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (5)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [bni_19]x2[6] + [(-1)bni_19]x1[6] + [(-1)bni_19]x3[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (6)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [bni_19]x2[6] + [(-1)bni_19]x1[6] + [(-1)bni_19]x3[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (7)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)Bound*bni_19] + [bni_19]x2[6] + [(-1)bni_19]x1[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (8)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)Bound*bni_19] + [bni_19]x2[6] + [(-1)bni_19]x1[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)


    (9)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)Bound*bni_19] + [bni_19]x2[6] + [(-1)bni_19]x1[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (10)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)Bound*bni_19] + [bni_19]x2[6] + [(-1)bni_19]x1[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)


    (11)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)Bound*bni_19] + [bni_19]x2[6] + [bni_19]x1[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (12)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)Bound*bni_19] + [bni_19]x2[6] + [(-1)bni_19]x1[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)


    (13)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)Bound*bni_19] + [bni_19]x2[6] + [bni_19]x1[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)







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

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



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

    (15)    (java.lang.Object(List(x0[9]))=x14356_0_bubble_Load(x1)=4345_0_bubble_Return(java.lang.Object(List(x0[9])))∧<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥NonInfC∧4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥))



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

    (16)    (4266_0_bubble_NULL(x2)=4345_0_bubble_Return(java.lang.Object(List(x0[9])))∧java.lang.Object(List(x0[9]))=x2<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥NonInfC∧4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥))



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

    (17)    (4266_0_bubble_NULL(java.lang.Object(List(x0[9])))=4345_0_bubble_Return(java.lang.Object(List(x0[9])))∧<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥NonInfC∧4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x1[6], x2[6], x3[6], java.lang.Object(List(x0[9])))≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥))



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

    (18)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_21 + (-1)Bound*bni_21] + [bni_21]x2[6] + [(-1)bni_21]x1[6] + [(-1)bni_21]x3[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)



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

    (19)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_21 + (-1)Bound*bni_21] + [bni_21]x2[6] + [(-1)bni_21]x1[6] + [(-1)bni_21]x3[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)



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

    (20)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)bni_21 + (-1)Bound*bni_21] + [bni_21]x2[6] + [(-1)bni_21]x1[6] + [(-1)bni_21]x3[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)



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

    (21)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)Bound*bni_21] + [bni_21]x2[6] + [(-1)bni_21]x1[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)



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

    (22)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)Bound*bni_21] + [bni_21]x2[6] + [(-1)bni_21]x1[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)


    (23)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)Bound*bni_21] + [bni_21]x2[6] + [(-1)bni_21]x1[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)



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

    (24)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)Bound*bni_21] + [bni_21]x2[6] + [(-1)bni_21]x1[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)


    (25)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)Bound*bni_21] + [bni_21]x2[6] + [bni_21]x1[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)



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

    (26)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)Bound*bni_21] + [bni_21]x2[6] + [bni_21]x1[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)


    (27)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)Bound*bni_21] + [bni_21]x2[6] + [(-1)bni_21]x1[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)







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

    (28)    (&&(<(x3[6], x2[6]), <(x1[6], 3))=TRUEx1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]x4[6]=x4[7]4356_0_bubble_Load(x4[7])=1635_0_length_Returnx1[7]=x1[8]x2[7]=x2[8]x3[7]=x3[8]x4[7]=NULL4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[8], x2[8], x3[8], NULL)≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[8], x2[8], x3[8], NULL)≥4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])∧(UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥))



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

    (29)    (NULL=x34356_0_bubble_Load(x3)=1635_0_length_Return<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥))



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

    (30)    (4266_0_bubble_NULL(x4)=1635_0_length_ReturnNULL=x4<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥))



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

    (31)    (4266_0_bubble_NULL(NULL)=1635_0_length_Return<(x3[6], x2[6])=TRUE<(x1[6], 3)=TRUE4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥NonInfC∧4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[6], x2[6], x3[6], NULL)≥4320_0_TEST_GE(x1[6], +(x3[6], 1), x2[6])∧(UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥))



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

    (32)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_23 + (-1)Bound*bni_23] + [bni_23]x2[6] + [(-1)bni_23]x1[6] + [(-1)bni_23]x3[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)



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

    (33)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_23 + (-1)Bound*bni_23] + [bni_23]x2[6] + [(-1)bni_23]x1[6] + [(-1)bni_23]x3[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)



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

    (34)    (x2[6] + [-1] + [-1]x3[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)bni_23 + (-1)Bound*bni_23] + [bni_23]x2[6] + [(-1)bni_23]x1[6] + [(-1)bni_23]x3[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)



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

    (35)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)Bound*bni_23] + [bni_23]x2[6] + [(-1)bni_23]x1[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)



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

    (36)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)Bound*bni_23] + [bni_23]x2[6] + [(-1)bni_23]x1[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)


    (37)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)Bound*bni_23] + [bni_23]x2[6] + [(-1)bni_23]x1[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)



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

    (38)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)Bound*bni_23] + [bni_23]x2[6] + [(-1)bni_23]x1[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)


    (39)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)Bound*bni_23] + [bni_23]x2[6] + [bni_23]x1[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)



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

    (40)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)Bound*bni_23] + [bni_23]x2[6] + [(-1)bni_23]x1[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)


    (41)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)Bound*bni_23] + [bni_23]x2[6] + [bni_23]x1[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)







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

    (42)    (x1[8]=x1[6]+(x3[8], 1)=x3[6]x2[8]=x2[6]&&(<(x3[6], x2[6]), <(x1[6], 3))=TRUEx1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]x4[6]=x4[7]COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7])≥NonInfC∧COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7])≥4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])∧(UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥))



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

    (43)    (<(+(x3[8], 1), x2[6])=TRUE<(x1[6], 3)=TRUECOND_4320_0_TEST_GE1(TRUE, x1[6], +(x3[8], 1), x2[6], x4[6])≥NonInfC∧COND_4320_0_TEST_GE1(TRUE, x1[6], +(x3[8], 1), x2[6], x4[6])≥4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[6]), x1[6], x2[6], +(x3[8], 1), x4[6])∧(UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥))



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

    (44)    (x2[6] + [-2] + [-1]x3[8] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-2)bni_25 + (-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] + [(-1)bni_25]x3[8] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (45)    (x2[6] + [-2] + [-1]x3[8] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-2)bni_25 + (-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] + [(-1)bni_25]x3[8] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (46)    (x2[6] + [-2] + [-1]x3[8] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-2)bni_25 + (-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] + [(-1)bni_25]x3[8] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (47)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (48)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[8] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)


    (49)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[8] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (50)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[8] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)


    (51)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[8] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (52)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[8] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)


    (53)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[8] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (54)    (x2[9]=x1[6]+(x4[9], 1)=x3[6]x3[9]=x2[6]&&(<(x3[6], x2[6]), <(x1[6], 3))=TRUEx1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]x4[6]=x4[7]COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7])≥NonInfC∧COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7])≥4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])∧(UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥))



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

    (55)    (<(+(x4[9], 1), x2[6])=TRUE<(x1[6], 3)=TRUECOND_4320_0_TEST_GE1(TRUE, x1[6], +(x4[9], 1), x2[6], x4[6])≥NonInfC∧COND_4320_0_TEST_GE1(TRUE, x1[6], +(x4[9], 1), x2[6], x4[6])≥4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[6]), x1[6], x2[6], +(x4[9], 1), x4[6])∧(UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥))



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

    (56)    (x2[6] + [-2] + [-1]x4[9] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-2)bni_25 + (-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] + [(-1)bni_25]x4[9] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (57)    (x2[6] + [-2] + [-1]x4[9] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-2)bni_25 + (-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] + [(-1)bni_25]x4[9] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (58)    (x2[6] + [-2] + [-1]x4[9] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-2)bni_25 + (-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] + [(-1)bni_25]x4[9] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (59)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (60)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x4[9] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)


    (61)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x4[9] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (62)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x4[9] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)


    (63)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x4[9] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (64)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x4[9] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)


    (65)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x4[9] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (66)    (x1[10]=x1[6]+(x3[10], 1)=x3[6]x2[10]=x2[6]&&(<(x3[6], x2[6]), <(x1[6], 3))=TRUEx1[6]=x1[7]x3[6]=x3[7]x2[6]=x2[7]x4[6]=x4[7]COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7])≥NonInfC∧COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7])≥4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])∧(UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥))



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

    (67)    (<(+(x3[10], 1), x2[6])=TRUE<(x1[6], 3)=TRUECOND_4320_0_TEST_GE1(TRUE, x1[6], +(x3[10], 1), x2[6], x4[6])≥NonInfC∧COND_4320_0_TEST_GE1(TRUE, x1[6], +(x3[10], 1), x2[6], x4[6])≥4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[6]), x1[6], x2[6], +(x3[10], 1), x4[6])∧(UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥))



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

    (68)    (x2[6] + [-2] + [-1]x3[10] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-2)bni_25 + (-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] + [(-1)bni_25]x3[10] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (69)    (x2[6] + [-2] + [-1]x3[10] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-2)bni_25 + (-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] + [(-1)bni_25]x3[10] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (70)    (x2[6] + [-2] + [-1]x3[10] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-2)bni_25 + (-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] + [(-1)bni_25]x3[10] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (71)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (72)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[10] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)


    (73)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[10] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (74)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[10] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)


    (75)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[10] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (76)    (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[10] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)


    (77)    (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[10] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)







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

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



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

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



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

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



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

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



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

    (82)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x3[8] + [bni_27]x2[7] + [(-1)bni_27]x1[7] ≥ 0∧[(-1)bso_28] ≥ 0)



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

    (83)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x3[8] + [bni_27]x2[7] + [(-1)bni_27]x1[7] ≥ 0∧[(-1)bso_28] ≥ 0)



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

    (84)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x3[8] + [bni_27]x2[7] + [(-1)bni_27]x1[7] ≥ 0∧[(-1)bso_28] ≥ 0)



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

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



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

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



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

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



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

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



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

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



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

    (90)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x4[9] + [bni_27]x2[7] + [(-1)bni_27]x1[7] ≥ 0∧[(-1)bso_28] ≥ 0)



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

    (91)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x4[9] + [bni_27]x2[7] + [(-1)bni_27]x1[7] ≥ 0∧[(-1)bso_28] ≥ 0)



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

    (92)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x4[9] + [bni_27]x2[7] + [(-1)bni_27]x1[7] ≥ 0∧[(-1)bso_28] ≥ 0)



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

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



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

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



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

    (95)    (4356_0_bubble_Load(x4[7])=1635_0_length_Return4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥COND_4320_0_TEST_GE1(&&(<(+(x3[10], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[10], 1), x2[7], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))



    We simplified constraint (95) using rule (V) (with possible (I) afterwards) using induction on 4356_0_bubble_Load(x4[7])=1635_0_length_Return which results in the following new constraint:

    (96)    (4266_0_bubble_NULL(x9)=1635_0_length_Return4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥NonInfC∧4320_0_TEST_GE(x1[7], +(x3[10], 1), x2[7])≥COND_4320_0_TEST_GE1(&&(<(+(x3[10], 1), x2[7]), <(x1[7], 3)), x1[7], +(x3[10], 1), x2[7], x4[6])∧(UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥))



    We simplified constraint (96) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (97)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x3[10] + [bni_27]x2[7] + [(-1)bni_27]x1[7] ≥ 0∧[(-1)bso_28] ≥ 0)



    We simplified constraint (97) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (98)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x3[10] + [bni_27]x2[7] + [(-1)bni_27]x1[7] ≥ 0∧[(-1)bso_28] ≥ 0)



    We simplified constraint (98) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (99)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-2)bni_27 + (-1)Bound*bni_27] + [(-1)bni_27]x3[10] + [bni_27]x2[7] + [(-1)bni_27]x1[7] ≥ 0∧[(-1)bso_28] ≥ 0)



    We simplified constraint (99) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (100)    ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_27] = 0∧[bni_27] = 0∧[(-1)bni_27] = 0∧[(-2)bni_27 + (-1)Bound*bni_27] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_28] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[10], x2[10], x3[10], x4[10]) → 4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)Bound*bni_19] + [bni_19]x2[6] + [(-1)bni_19]x1[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)Bound*bni_19] + [bni_19]x2[6] + [bni_19]x1[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)Bound*bni_19] + [bni_19]x2[6] + [(-1)bni_19]x1[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])), ≥)∧[(-1)Bound*bni_19] + [bni_19]x2[6] + [bni_19]x1[6] ≥ 0∧[1 + (-1)bso_20] ≥ 0)

  • 4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x2[9], x3[9], x4[9], java.lang.Object(List(x0[9]))) → 4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)Bound*bni_21] + [bni_21]x2[6] + [(-1)bni_21]x1[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)Bound*bni_21] + [bni_21]x2[6] + [bni_21]x1[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)Bound*bni_21] + [bni_21]x2[6] + [bni_21]x1[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])), ≥)∧[(-1)Bound*bni_21] + [bni_21]x2[6] + [(-1)bni_21]x1[6] ≥ 0∧[1 + (-1)bso_22] ≥ 0)

  • 4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[8], x2[8], x3[8], NULL) → 4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)Bound*bni_23] + [bni_23]x2[6] + [(-1)bni_23]x1[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)Bound*bni_23] + [bni_23]x2[6] + [bni_23]x1[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)Bound*bni_23] + [bni_23]x2[6] + [(-1)bni_23]x1[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[6] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])), ≥)∧[(-1)Bound*bni_23] + [bni_23]x2[6] + [bni_23]x1[6] ≥ 0∧[1 + (-1)bso_24] ≥ 0)

  • COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[8] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[8] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[8] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[8] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x4[9] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x4[9] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x4[9] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x4[9] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[10] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[10] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x2[6] ≥ 0∧[2] + x1[6] ≥ 0∧x3[10] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)
    • (x2[6] ≥ 0∧[2] + [-1]x1[6] ≥ 0∧x3[10] ≥ 0∧x1[6] ≥ 0 ⇒ (UIncreasing(4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])), ≥)∧[(-1)Bound*bni_25] + [bni_25]x2[6] + [(-1)bni_25]x1[6] ≥ 0∧[(-1)bso_26] ≥ 0)

  • 4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])
    • ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_27] = 0∧[bni_27] = 0∧[(-1)bni_27] = 0∧[(-2)bni_27 + (-1)Bound*bni_27] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_28] ≥ 0)
    • ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_27] = 0∧[bni_27] = 0∧[(-1)bni_27] = 0∧[(-2)bni_27 + (-1)Bound*bni_27] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_28] ≥ 0)
    • ((UIncreasing(COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])), ≥)∧[(-1)bni_27] = 0∧[bni_27] = 0∧[(-1)bni_27] = 0∧[(-2)bni_27 + (-1)Bound*bni_27] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_28] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(4356_0_bubble_Load(x1)) = [-1]   
POL(4266_0_bubble_NULL(x1)) = [-1]   
POL(NULL) = [-1]   
POL(1635_0_length_Return) = [-1]   
POL(java.lang.Object(x1)) = [-1]   
POL(List(x1)) = [-1]   
POL(4330_0_bubble_NONNULL(x1)) = [-1]   
POL(4548_1_bubble_InvokeMethod(x1)) = [-1]   
POL(4345_0_bubble_Return(x1)) = [-1]   
POL(4356_1_TEST_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + x3 + [-1]x2 + [-1]x4   
POL(4320_0_TEST_GE(x1, x2, x3)) = [-1] + [-1]x2 + x3 + [-1]x1   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(COND_4320_0_TEST_GE1(x1, x2, x3, x4, x5)) = [-1] + x4 + [-1]x2 + [-1]x3   
POL(&&(x1, x2)) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(3) = [3]   

The following pairs are in P>:

4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[10], x2[10], x3[10], x4[10]) → 4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])
4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x2[9], x3[9], x4[9], java.lang.Object(List(x0[9]))) → 4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])
4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[8], x2[8], x3[8], NULL) → 4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])

The following pairs are in Pbound:

4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[10], x2[10], x3[10], x4[10]) → 4320_0_TEST_GE(x1[10], +(x3[10], 1), x2[10])
4356_1_TEST_INVOKEMETHOD(4345_0_bubble_Return(java.lang.Object(List(x0[9]))), x2[9], x3[9], x4[9], java.lang.Object(List(x0[9]))) → 4320_0_TEST_GE(x2[9], +(x4[9], 1), x3[9])
4356_1_TEST_INVOKEMETHOD(1635_0_length_Return, x1[8], x2[8], x3[8], NULL) → 4320_0_TEST_GE(x1[8], +(x3[8], 1), x2[8])
COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])

The following pairs are in P:

COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])
4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(&&(<(x3[6], x2[6]), <(x1[6], 3)), x1[6], x3[6], x2[6], x4[6])

There are no usable rules.

(33) 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:

Boolean, Integer


The ITRS R consists of the following rules:
4356_0_bubble_Load(x0) → 4266_0_bubble_NULL(x0)
4266_0_bubble_NULL(NULL) → 1635_0_length_Return
4266_0_bubble_NULL(java.lang.Object(List(x0))) → 4330_0_bubble_NONNULL(java.lang.Object(List(x0)))
4266_0_bubble_NULL(java.lang.Object(List(1635_0_length_Return))) → 4330_0_bubble_NONNULL(java.lang.Object(List(1635_0_length_Return)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4548_1_bubble_InvokeMethod(4266_0_bubble_NULL(java.lang.Object(List(1635_0_length_Return))))
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(1635_0_length_Return)))) → 1635_0_length_Return
4548_1_bubble_InvokeMethod(1635_0_length_Return) → 1635_0_length_Return
4330_0_bubble_NONNULL(java.lang.Object(List(x0))) → 4345_0_bubble_Return(java.lang.Object(List(x0)))

The integer pair graph contains the following rules and edges:
(7): COND_4320_0_TEST_GE1(TRUE, x1[7], x3[7], x2[7], x4[7]) → 4356_1_TEST_INVOKEMETHOD(4356_0_bubble_Load(x4[7]), x1[7], x2[7], x3[7], x4[7])
(6): 4320_0_TEST_GE(x1[6], x3[6], x2[6]) → COND_4320_0_TEST_GE1(x3[6] < x2[6] && x1[6] < 3, x1[6], x3[6], x2[6], x4[6])

(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])



The set Q consists of the following terms:
1915_0_length_Load(x0)
4356_0_bubble_Load(x0)
1627_0_length_NONNULL
1690_1_length_InvokeMethod(1635_0_length_Return)
1690_1_length_InvokeMethod(2393_0_length_Return(x0))
Cond_1690_1_length_InvokeMethod(TRUE, 2393_0_length_Return(x0))
4359_1_test_InvokeMethod(1635_0_length_Return, x0)
4266_0_bubble_NULL(NULL)
4266_0_bubble_NULL(java.lang.Object(List(x0)))
4330_0_bubble_NONNULL(java.lang.Object(List(x0)))
4548_1_bubble_InvokeMethod(4345_0_bubble_Return(java.lang.Object(List(1635_0_length_Return))))
4548_1_bubble_InvokeMethod(1635_0_length_Return)

(34) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(35) TRUE

(36) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Test8.main([Ljava/lang/String;)V
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(37) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 21 rules for P and 0 rules for R.


P rules:
1177_0_mk_Inc(EOS(STATIC_1177), i355, o403, i355) → 1183_0_mk_LE(EOS(STATIC_1183), +(i355, -1), o403, i355)
1183_0_mk_LE(EOS(STATIC_1183), i365, o403, i381) → 1187_0_mk_LE(EOS(STATIC_1187), i365, o403, i381)
1187_0_mk_LE(EOS(STATIC_1187), i365, o403, i381) → 1191_0_mk_New(EOS(STATIC_1191), i365, o403) | >(i381, 0)
1191_0_mk_New(EOS(STATIC_1191), i365, o403) → 1198_0_mk_Duplicate(EOS(STATIC_1198), i365, o403, java.lang.Object(List(EOC)))
1198_0_mk_Duplicate(EOS(STATIC_1198), i365, o403, java.lang.Object(List(EOC))) → 1205_0_mk_Load(EOS(STATIC_1205), i365, o403, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)))
1205_0_mk_Load(EOS(STATIC_1205), i365, o403, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 1213_0_mk_Load(EOS(STATIC_1213), i365, o403, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365)
1213_0_mk_Load(EOS(STATIC_1213), i365, o403, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365) → 1220_0_mk_InvokeMethod(EOS(STATIC_1220), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403)
1220_0_mk_InvokeMethod(EOS(STATIC_1220), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403) → 1225_0_<init>_Load(EOS(STATIC_1225), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), i365, o403)
1225_0_<init>_Load(EOS(STATIC_1225), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), i365, o403) → 1237_0_<init>_InvokeMethod(EOS(STATIC_1237), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)))
1237_0_<init>_InvokeMethod(EOS(STATIC_1237), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC))) → 1241_0_<init>_Load(EOS(STATIC_1241), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), i365, o403)
1241_0_<init>_Load(EOS(STATIC_1241), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), i365, o403) → 1247_0_<init>_Load(EOS(STATIC_1247), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)))
1247_0_<init>_Load(EOS(STATIC_1247), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC))) → 1254_0_<init>_FieldAccess(EOS(STATIC_1254), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), o403, java.lang.Object(List(EOC)), i365)
1254_0_<init>_FieldAccess(EOS(STATIC_1254), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), o403, java.lang.Object(List(EOC)), i365) → 1260_0_<init>_Load(EOS(STATIC_1260), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), o403)
1260_0_<init>_Load(EOS(STATIC_1260), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), o403) → 1266_0_<init>_Load(EOS(STATIC_1266), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, o403, java.lang.Object(List(EOC)))
1266_0_<init>_Load(EOS(STATIC_1266), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, o403, java.lang.Object(List(EOC))) → 1273_0_<init>_FieldAccess(EOS(STATIC_1273), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), o403)
1273_0_<init>_FieldAccess(EOS(STATIC_1273), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403, java.lang.Object(List(EOC)), o403) → 1281_0_<init>_Return(EOS(STATIC_1281), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403)
1281_0_<init>_Return(EOS(STATIC_1281), i365, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i365, o403) → 1285_0_mk_Store(EOS(STATIC_1285), i365, java.lang.Object(List(EOC)))
1285_0_mk_Store(EOS(STATIC_1285), i365, java.lang.Object(List(EOC))) → 1291_0_mk_JMP(EOS(STATIC_1291), i365, java.lang.Object(List(EOC)))
1291_0_mk_JMP(EOS(STATIC_1291), i365, java.lang.Object(List(EOC))) → 1297_0_mk_Load(EOS(STATIC_1297), i365, java.lang.Object(List(EOC)))
1297_0_mk_Load(EOS(STATIC_1297), i365, java.lang.Object(List(EOC))) → 1172_0_mk_Load(EOS(STATIC_1172), i365, java.lang.Object(List(EOC)))
1172_0_mk_Load(EOS(STATIC_1172), i355, o403) → 1177_0_mk_Inc(EOS(STATIC_1177), i355, o403, i355)
R rules:

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
1177_0_mk_Inc(EOS(STATIC_1177), x0, x1, x0) → 1177_0_mk_Inc(EOS(STATIC_1177), +(x0, -1), java.lang.Object(List(EOC)), +(x0, -1)) | >(x0, 0)
R rules:

Filtered ground terms:



1177_0_mk_Inc(x1, x2, x3, x4) → 1177_0_mk_Inc(x2, x3, x4)
List(x1) → List
java.lang.Object(x1) → java.lang.Object
EOS(x1) → EOS
Cond_1177_0_mk_Inc(x1, x2, x3, x4, x5) → Cond_1177_0_mk_Inc(x1, x3, x4, x5)

Filtered duplicate args:



1177_0_mk_Inc(x1, x2, x3) → 1177_0_mk_Inc(x2, x3)
Cond_1177_0_mk_Inc(x1, x2, x3, x4) → Cond_1177_0_mk_Inc(x1, x3, x4)

Filtered unneeded arguments:



Cond_1177_0_mk_Inc(x1, x2, x3) → Cond_1177_0_mk_Inc(x1, x3)
1177_0_mk_Inc(x1, x2) → 1177_0_mk_Inc(x2)

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
1177_0_mk_Inc(x0) → 1177_0_mk_Inc(+(x0, -1)) | >(x0, 0)
R rules:

Finished conversion. Obtained 2 rules for P and 0 rules for R. System has predefined symbols.


P rules:
1177_0_MK_INC(x0) → COND_1177_0_MK_INC(>(x0, 0), x0)
COND_1177_0_MK_INC(TRUE, x0) → 1177_0_MK_INC(+(x0, -1))
R rules:

(38) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 1177_0_MK_INC(x0[0]) → COND_1177_0_MK_INC(x0[0] > 0, x0[0])
(1): COND_1177_0_MK_INC(TRUE, x0[1]) → 1177_0_MK_INC(x0[1] + -1)

(0) -> (1), if (x0[0] > 0x0[0]* x0[1])


(1) -> (0), if (x0[1] + -1* x0[0])



The set Q is empty.

(39) 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@7d8eef26 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 0 Max Right Steps: 0

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 1177_0_MK_INC(x0) → COND_1177_0_MK_INC(>(x0, 0), x0) the following chains were created:
  • We consider the chain 1177_0_MK_INC(x0[0]) → COND_1177_0_MK_INC(>(x0[0], 0), x0[0]), COND_1177_0_MK_INC(TRUE, x0[1]) → 1177_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

    (1)    (>(x0[0], 0)=TRUEx0[0]=x0[1]1177_0_MK_INC(x0[0])≥NonInfC∧1177_0_MK_INC(x0[0])≥COND_1177_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_1177_0_MK_INC(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (1) using rule (IV) which results in the following new constraint:

    (2)    (>(x0[0], 0)=TRUE1177_0_MK_INC(x0[0])≥NonInfC∧1177_0_MK_INC(x0[0])≥COND_1177_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_1177_0_MK_INC(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_1177_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_1177_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_1177_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x0[0] ≥ 0 ⇒ (UIncreasing(COND_1177_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)







For Pair COND_1177_0_MK_INC(TRUE, x0) → 1177_0_MK_INC(+(x0, -1)) the following chains were created:
  • We consider the chain COND_1177_0_MK_INC(TRUE, x0[1]) → 1177_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

    (7)    (COND_1177_0_MK_INC(TRUE, x0[1])≥NonInfC∧COND_1177_0_MK_INC(TRUE, x0[1])≥1177_0_MK_INC(+(x0[1], -1))∧(UIncreasing(1177_0_MK_INC(+(x0[1], -1))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(1177_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(1177_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(1177_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(1177_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧0 = 0∧[2 + (-1)bso_11] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 1177_0_MK_INC(x0) → COND_1177_0_MK_INC(>(x0, 0), x0)
    • (x0[0] ≥ 0 ⇒ (UIncreasing(COND_1177_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)

  • COND_1177_0_MK_INC(TRUE, x0) → 1177_0_MK_INC(+(x0, -1))
    • ((UIncreasing(1177_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧0 = 0∧[2 + (-1)bso_11] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(1177_0_MK_INC(x1)) = [2]x1   
POL(COND_1177_0_MK_INC(x1, x2)) = [2]x2   
POL(>(x1, x2)) = [-1]   
POL(0) = 0   
POL(+(x1, x2)) = x1 + x2   
POL(-1) = [-1]   

The following pairs are in P>:

COND_1177_0_MK_INC(TRUE, x0[1]) → 1177_0_MK_INC(+(x0[1], -1))

The following pairs are in Pbound:

1177_0_MK_INC(x0[0]) → COND_1177_0_MK_INC(>(x0[0], 0), x0[0])

The following pairs are in P:

1177_0_MK_INC(x0[0]) → COND_1177_0_MK_INC(>(x0[0], 0), x0[0])

There are no usable rules.

(40) Complex Obligation (AND)

(41) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 1177_0_MK_INC(x0[0]) → COND_1177_0_MK_INC(x0[0] > 0, x0[0])


The set Q is empty.

(42) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(43) TRUE

(44) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_1177_0_MK_INC(TRUE, x0[1]) → 1177_0_MK_INC(x0[1] + -1)


The set Q is empty.

(45) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(46) TRUE

(47) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Test8.main([Ljava/lang/String;)V
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(48) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 21 rules for P and 0 rules for R.


P rules:
877_0_mk_Inc(EOS(STATIC_877), i211, o220, i211) → 881_0_mk_LE(EOS(STATIC_881), +(i211, -1), o220, i211)
881_0_mk_LE(EOS(STATIC_881), i218, o220, i228) → 884_0_mk_LE(EOS(STATIC_884), i218, o220, i228)
884_0_mk_LE(EOS(STATIC_884), i218, o220, i228) → 889_0_mk_New(EOS(STATIC_889), i218, o220) | >(i228, 0)
889_0_mk_New(EOS(STATIC_889), i218, o220) → 894_0_mk_Duplicate(EOS(STATIC_894), i218, o220, java.lang.Object(List(EOC)))
894_0_mk_Duplicate(EOS(STATIC_894), i218, o220, java.lang.Object(List(EOC))) → 899_0_mk_Load(EOS(STATIC_899), i218, o220, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)))
899_0_mk_Load(EOS(STATIC_899), i218, o220, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 903_0_mk_Load(EOS(STATIC_903), i218, o220, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218)
903_0_mk_Load(EOS(STATIC_903), i218, o220, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218) → 907_0_mk_InvokeMethod(EOS(STATIC_907), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220)
907_0_mk_InvokeMethod(EOS(STATIC_907), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220) → 909_0_<init>_Load(EOS(STATIC_909), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), i218, o220)
909_0_<init>_Load(EOS(STATIC_909), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), i218, o220) → 914_0_<init>_InvokeMethod(EOS(STATIC_914), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)))
914_0_<init>_InvokeMethod(EOS(STATIC_914), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC))) → 917_0_<init>_Load(EOS(STATIC_917), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), i218, o220)
917_0_<init>_Load(EOS(STATIC_917), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), i218, o220) → 920_0_<init>_Load(EOS(STATIC_920), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)))
920_0_<init>_Load(EOS(STATIC_920), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC))) → 925_0_<init>_FieldAccess(EOS(STATIC_925), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), o220, java.lang.Object(List(EOC)), i218)
925_0_<init>_FieldAccess(EOS(STATIC_925), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), o220, java.lang.Object(List(EOC)), i218) → 930_0_<init>_Load(EOS(STATIC_930), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), o220)
930_0_<init>_Load(EOS(STATIC_930), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), o220) → 935_0_<init>_Load(EOS(STATIC_935), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, o220, java.lang.Object(List(EOC)))
935_0_<init>_Load(EOS(STATIC_935), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, o220, java.lang.Object(List(EOC))) → 943_0_<init>_FieldAccess(EOS(STATIC_943), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), o220)
943_0_<init>_FieldAccess(EOS(STATIC_943), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220, java.lang.Object(List(EOC)), o220) → 951_0_<init>_Return(EOS(STATIC_951), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220)
951_0_<init>_Return(EOS(STATIC_951), i218, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i218, o220) → 958_0_mk_Store(EOS(STATIC_958), i218, java.lang.Object(List(EOC)))
958_0_mk_Store(EOS(STATIC_958), i218, java.lang.Object(List(EOC))) → 966_0_mk_JMP(EOS(STATIC_966), i218, java.lang.Object(List(EOC)))
966_0_mk_JMP(EOS(STATIC_966), i218, java.lang.Object(List(EOC))) → 976_0_mk_Load(EOS(STATIC_976), i218, java.lang.Object(List(EOC)))
976_0_mk_Load(EOS(STATIC_976), i218, java.lang.Object(List(EOC))) → 872_0_mk_Load(EOS(STATIC_872), i218, java.lang.Object(List(EOC)))
872_0_mk_Load(EOS(STATIC_872), i211, o220) → 877_0_mk_Inc(EOS(STATIC_877), i211, o220, i211)
R rules:

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
877_0_mk_Inc(EOS(STATIC_877), x0, x1, x0) → 877_0_mk_Inc(EOS(STATIC_877), +(x0, -1), java.lang.Object(List(EOC)), +(x0, -1)) | >(x0, 0)
R rules:

Filtered ground terms:



877_0_mk_Inc(x1, x2, x3, x4) → 877_0_mk_Inc(x2, x3, x4)
List(x1) → List
java.lang.Object(x1) → java.lang.Object
EOS(x1) → EOS
Cond_877_0_mk_Inc(x1, x2, x3, x4, x5) → Cond_877_0_mk_Inc(x1, x3, x4, x5)

Filtered duplicate args:



877_0_mk_Inc(x1, x2, x3) → 877_0_mk_Inc(x2, x3)
Cond_877_0_mk_Inc(x1, x2, x3, x4) → Cond_877_0_mk_Inc(x1, x3, x4)

Filtered unneeded arguments:



Cond_877_0_mk_Inc(x1, x2, x3) → Cond_877_0_mk_Inc(x1, x3)
877_0_mk_Inc(x1, x2) → 877_0_mk_Inc(x2)

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
877_0_mk_Inc(x0) → 877_0_mk_Inc(+(x0, -1)) | >(x0, 0)
R rules:

Finished conversion. Obtained 2 rules for P and 0 rules for R. System has predefined symbols.


P rules:
877_0_MK_INC(x0) → COND_877_0_MK_INC(>(x0, 0), x0)
COND_877_0_MK_INC(TRUE, x0) → 877_0_MK_INC(+(x0, -1))
R rules:

(49) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 877_0_MK_INC(x0[0]) → COND_877_0_MK_INC(x0[0] > 0, x0[0])
(1): COND_877_0_MK_INC(TRUE, x0[1]) → 877_0_MK_INC(x0[1] + -1)

(0) -> (1), if (x0[0] > 0x0[0]* x0[1])


(1) -> (0), if (x0[1] + -1* x0[0])



The set Q is empty.

(50) 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@7d8eef26 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 0 Max Right Steps: 0

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 877_0_MK_INC(x0) → COND_877_0_MK_INC(>(x0, 0), x0) the following chains were created:
  • We consider the chain 877_0_MK_INC(x0[0]) → COND_877_0_MK_INC(>(x0[0], 0), x0[0]), COND_877_0_MK_INC(TRUE, x0[1]) → 877_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

    (1)    (>(x0[0], 0)=TRUEx0[0]=x0[1]877_0_MK_INC(x0[0])≥NonInfC∧877_0_MK_INC(x0[0])≥COND_877_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_877_0_MK_INC(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (1) using rule (IV) which results in the following new constraint:

    (2)    (>(x0[0], 0)=TRUE877_0_MK_INC(x0[0])≥NonInfC∧877_0_MK_INC(x0[0])≥COND_877_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_877_0_MK_INC(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_877_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_877_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_877_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x0[0] ≥ 0 ⇒ (UIncreasing(COND_877_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)







For Pair COND_877_0_MK_INC(TRUE, x0) → 877_0_MK_INC(+(x0, -1)) the following chains were created:
  • We consider the chain COND_877_0_MK_INC(TRUE, x0[1]) → 877_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

    (7)    (COND_877_0_MK_INC(TRUE, x0[1])≥NonInfC∧COND_877_0_MK_INC(TRUE, x0[1])≥877_0_MK_INC(+(x0[1], -1))∧(UIncreasing(877_0_MK_INC(+(x0[1], -1))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(877_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(877_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(877_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(877_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧0 = 0∧[2 + (-1)bso_11] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 877_0_MK_INC(x0) → COND_877_0_MK_INC(>(x0, 0), x0)
    • (x0[0] ≥ 0 ⇒ (UIncreasing(COND_877_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)

  • COND_877_0_MK_INC(TRUE, x0) → 877_0_MK_INC(+(x0, -1))
    • ((UIncreasing(877_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧0 = 0∧[2 + (-1)bso_11] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(877_0_MK_INC(x1)) = [2]x1   
POL(COND_877_0_MK_INC(x1, x2)) = [2]x2   
POL(>(x1, x2)) = [-1]   
POL(0) = 0   
POL(+(x1, x2)) = x1 + x2   
POL(-1) = [-1]   

The following pairs are in P>:

COND_877_0_MK_INC(TRUE, x0[1]) → 877_0_MK_INC(+(x0[1], -1))

The following pairs are in Pbound:

877_0_MK_INC(x0[0]) → COND_877_0_MK_INC(>(x0[0], 0), x0[0])

The following pairs are in P:

877_0_MK_INC(x0[0]) → COND_877_0_MK_INC(>(x0[0], 0), x0[0])

There are no usable rules.

(51) Complex Obligation (AND)

(52) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 877_0_MK_INC(x0[0]) → COND_877_0_MK_INC(x0[0] > 0, x0[0])


The set Q is empty.

(53) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(54) TRUE

(55) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_877_0_MK_INC(TRUE, x0[1]) → 877_0_MK_INC(x0[1] + -1)


The set Q is empty.

(56) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(57) TRUE

(58) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: Test8.main([Ljava/lang/String;)V
SCC calls the following helper methods:
Performed SCC analyses: UsedFieldsAnalysis

(59) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 21 rules for P and 0 rules for R.


P rules:
487_0_mk_Inc(EOS(STATIC_487), i72, o67, i72) → 489_0_mk_LE(EOS(STATIC_489), +(i72, -1), o67, i72)
489_0_mk_LE(EOS(STATIC_489), i75, o67, i79) → 493_0_mk_LE(EOS(STATIC_493), i75, o67, i79)
493_0_mk_LE(EOS(STATIC_493), i75, o67, i79) → 497_0_mk_New(EOS(STATIC_497), i75, o67) | >(i79, 0)
497_0_mk_New(EOS(STATIC_497), i75, o67) → 501_0_mk_Duplicate(EOS(STATIC_501), i75, o67, java.lang.Object(List(EOC)))
501_0_mk_Duplicate(EOS(STATIC_501), i75, o67, java.lang.Object(List(EOC))) → 504_0_mk_Load(EOS(STATIC_504), i75, o67, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)))
504_0_mk_Load(EOS(STATIC_504), i75, o67, java.lang.Object(List(EOC)), java.lang.Object(List(EOC))) → 509_0_mk_Load(EOS(STATIC_509), i75, o67, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75)
509_0_mk_Load(EOS(STATIC_509), i75, o67, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75) → 512_0_mk_InvokeMethod(EOS(STATIC_512), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67)
512_0_mk_InvokeMethod(EOS(STATIC_512), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67) → 516_0_<init>_Load(EOS(STATIC_516), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), i75, o67)
516_0_<init>_Load(EOS(STATIC_516), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), i75, o67) → 522_0_<init>_InvokeMethod(EOS(STATIC_522), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)))
522_0_<init>_InvokeMethod(EOS(STATIC_522), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC))) → 527_0_<init>_Load(EOS(STATIC_527), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), i75, o67)
527_0_<init>_Load(EOS(STATIC_527), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), i75, o67) → 529_0_<init>_Load(EOS(STATIC_529), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)))
529_0_<init>_Load(EOS(STATIC_529), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC))) → 534_0_<init>_FieldAccess(EOS(STATIC_534), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), o67, java.lang.Object(List(EOC)), i75)
534_0_<init>_FieldAccess(EOS(STATIC_534), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), o67, java.lang.Object(List(EOC)), i75) → 539_0_<init>_Load(EOS(STATIC_539), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), o67)
539_0_<init>_Load(EOS(STATIC_539), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), o67) → 543_0_<init>_Load(EOS(STATIC_543), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, o67, java.lang.Object(List(EOC)))
543_0_<init>_Load(EOS(STATIC_543), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, o67, java.lang.Object(List(EOC))) → 546_0_<init>_FieldAccess(EOS(STATIC_546), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), o67)
546_0_<init>_FieldAccess(EOS(STATIC_546), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67, java.lang.Object(List(EOC)), o67) → 554_0_<init>_Return(EOS(STATIC_554), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67)
554_0_<init>_Return(EOS(STATIC_554), i75, java.lang.Object(List(EOC)), java.lang.Object(List(EOC)), i75, o67) → 560_0_mk_Store(EOS(STATIC_560), i75, java.lang.Object(List(EOC)))
560_0_mk_Store(EOS(STATIC_560), i75, java.lang.Object(List(EOC))) → 566_0_mk_JMP(EOS(STATIC_566), i75, java.lang.Object(List(EOC)))
566_0_mk_JMP(EOS(STATIC_566), i75, java.lang.Object(List(EOC))) → 576_0_mk_Load(EOS(STATIC_576), i75, java.lang.Object(List(EOC)))
576_0_mk_Load(EOS(STATIC_576), i75, java.lang.Object(List(EOC))) → 482_0_mk_Load(EOS(STATIC_482), i75, java.lang.Object(List(EOC)))
482_0_mk_Load(EOS(STATIC_482), i72, o67) → 487_0_mk_Inc(EOS(STATIC_487), i72, o67, i72)
R rules:

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
487_0_mk_Inc(EOS(STATIC_487), x0, x1, x0) → 487_0_mk_Inc(EOS(STATIC_487), +(x0, -1), java.lang.Object(List(EOC)), +(x0, -1)) | >(x0, 0)
R rules:

Filtered ground terms:



487_0_mk_Inc(x1, x2, x3, x4) → 487_0_mk_Inc(x2, x3, x4)
List(x1) → List
java.lang.Object(x1) → java.lang.Object
EOS(x1) → EOS
Cond_487_0_mk_Inc(x1, x2, x3, x4, x5) → Cond_487_0_mk_Inc(x1, x3, x4, x5)

Filtered duplicate args:



487_0_mk_Inc(x1, x2, x3) → 487_0_mk_Inc(x2, x3)
Cond_487_0_mk_Inc(x1, x2, x3, x4) → Cond_487_0_mk_Inc(x1, x3, x4)

Filtered unneeded arguments:



Cond_487_0_mk_Inc(x1, x2, x3) → Cond_487_0_mk_Inc(x1, x3)
487_0_mk_Inc(x1, x2) → 487_0_mk_Inc(x2)

Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.


P rules:
487_0_mk_Inc(x0) → 487_0_mk_Inc(+(x0, -1)) | >(x0, 0)
R rules:

Finished conversion. Obtained 2 rules for P and 0 rules for R. System has predefined symbols.


P rules:
487_0_MK_INC(x0) → COND_487_0_MK_INC(>(x0, 0), x0)
COND_487_0_MK_INC(TRUE, x0) → 487_0_MK_INC(+(x0, -1))
R rules:

(60) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 487_0_MK_INC(x0[0]) → COND_487_0_MK_INC(x0[0] > 0, x0[0])
(1): COND_487_0_MK_INC(TRUE, x0[1]) → 487_0_MK_INC(x0[1] + -1)

(0) -> (1), if (x0[0] > 0x0[0]* x0[1])


(1) -> (0), if (x0[1] + -1* x0[0])



The set Q is empty.

(61) 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@7d8eef26 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 0 Max Right Steps: 0

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair 487_0_MK_INC(x0) → COND_487_0_MK_INC(>(x0, 0), x0) the following chains were created:
  • We consider the chain 487_0_MK_INC(x0[0]) → COND_487_0_MK_INC(>(x0[0], 0), x0[0]), COND_487_0_MK_INC(TRUE, x0[1]) → 487_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

    (1)    (>(x0[0], 0)=TRUEx0[0]=x0[1]487_0_MK_INC(x0[0])≥NonInfC∧487_0_MK_INC(x0[0])≥COND_487_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_487_0_MK_INC(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (1) using rule (IV) which results in the following new constraint:

    (2)    (>(x0[0], 0)=TRUE487_0_MK_INC(x0[0])≥NonInfC∧487_0_MK_INC(x0[0])≥COND_487_0_MK_INC(>(x0[0], 0), x0[0])∧(UIncreasing(COND_487_0_MK_INC(>(x0[0], 0), x0[0])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_487_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_487_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (x0[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_487_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (x0[0] ≥ 0 ⇒ (UIncreasing(COND_487_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)







For Pair COND_487_0_MK_INC(TRUE, x0) → 487_0_MK_INC(+(x0, -1)) the following chains were created:
  • We consider the chain COND_487_0_MK_INC(TRUE, x0[1]) → 487_0_MK_INC(+(x0[1], -1)) which results in the following constraint:

    (7)    (COND_487_0_MK_INC(TRUE, x0[1])≥NonInfC∧COND_487_0_MK_INC(TRUE, x0[1])≥487_0_MK_INC(+(x0[1], -1))∧(UIncreasing(487_0_MK_INC(+(x0[1], -1))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(487_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(487_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(487_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧[2 + (-1)bso_11] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(487_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧0 = 0∧[2 + (-1)bso_11] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 487_0_MK_INC(x0) → COND_487_0_MK_INC(>(x0, 0), x0)
    • (x0[0] ≥ 0 ⇒ (UIncreasing(COND_487_0_MK_INC(>(x0[0], 0), x0[0])), ≥)∧[(-1)Bound*bni_8 + (2)bni_8] + [(2)bni_8]x0[0] ≥ 0∧[(-1)bso_9] ≥ 0)

  • COND_487_0_MK_INC(TRUE, x0) → 487_0_MK_INC(+(x0, -1))
    • ((UIncreasing(487_0_MK_INC(+(x0[1], -1))), ≥)∧[bni_10] = 0∧0 = 0∧[2 + (-1)bso_11] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(487_0_MK_INC(x1)) = [2]x1   
POL(COND_487_0_MK_INC(x1, x2)) = [2]x2   
POL(>(x1, x2)) = [-1]   
POL(0) = 0   
POL(+(x1, x2)) = x1 + x2   
POL(-1) = [-1]   

The following pairs are in P>:

COND_487_0_MK_INC(TRUE, x0[1]) → 487_0_MK_INC(+(x0[1], -1))

The following pairs are in Pbound:

487_0_MK_INC(x0[0]) → COND_487_0_MK_INC(>(x0[0], 0), x0[0])

The following pairs are in P:

487_0_MK_INC(x0[0]) → COND_487_0_MK_INC(>(x0[0], 0), x0[0])

There are no usable rules.

(62) Complex Obligation (AND)

(63) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 487_0_MK_INC(x0[0]) → COND_487_0_MK_INC(x0[0] > 0, x0[0])


The set Q is empty.

(64) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(65) TRUE

(66) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_487_0_MK_INC(TRUE, x0[1]) → 487_0_MK_INC(x0[1] + -1)


The set Q is empty.

(67) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(68) TRUE