(0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_16 (Sun Microsystems Inc.) Main-Class: MysteriousProgram
public class MysteriousProgram {
public static void display(int[] tab) {
for (int i = 0; i < tab.length; i++) {}
//System.out.print(tab[i] + " ");
//System.out.println();
}
public static void swap2(int a, int b) {
int tmp = a;
a = b;
b = tmp;
}
public static void swap3(int[] tab, int i, int j) {
int tmp = tab[i];
tab[i] = tab[j];
tab[j] = tmp;
}

public static void mysterious(int[] tab, int k) {
for (int j = k; j < tab.length; j++) {
swap3(tab, k, j);
display(tab);
swap3(tab, k, j);
}
}

public static void mysteriousRecursive(int[] tab, int k) {
if (k == tab.length - 1)
display(tab);
for (int j = k; j < tab.length; j++) {
swap3(tab, k, j);
mysteriousRecursive(tab, k + 1);
swap3(tab, k, j);
}
}

public static void init(int[] tab) {
for (int i = 0; i < tab.length; i++)
tab[i] = i + 1;
}

public static void main(String[] args) {
int n = 2;
for (int i = 0; i < args.length; i++)
n *= 2;
int[] t = new int[n];
init(t);
swap2(t[0], t[n - 1]);
mysterious(t, 0);
mysteriousRecursive(t, 0);
}
}


(1) JBCToGraph (SOUND transformation)

Constructed TerminationGraph.

(2) Obligation:

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

MysteriousProgram.mysteriousRecursive([II)V: Graph of 334 nodes with 2 SCCs.


(3) TerminationGraphToSCCProof (SOUND transformation)

Splitted TerminationGraph to 4 SCCss.

(4) Complex Obligation (AND)

(5) Obligation:

SCC of termination graph based on JBC Program.
SCC contains nodes from the following methods: MysteriousProgram.mysteriousRecursive([II)V
SCC calls the following helper methods: MysteriousProgram.mysteriousRecursive([II)V
Performed SCC analyses: UsedFieldsAnalysis

(6) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 98 rules for P and 249 rules for R.


P rules:
2448_0_mysteriousRecursive_Load(EOS(STATIC_2448), java.lang.Object(ARRAY(i29)), i271, i271) → 2451_0_mysteriousRecursive_ArrayLength(EOS(STATIC_2451), java.lang.Object(ARRAY(i29)), i271, i271, java.lang.Object(ARRAY(i29)))
2451_0_mysteriousRecursive_ArrayLength(EOS(STATIC_2451), java.lang.Object(ARRAY(i29)), i271, i271, java.lang.Object(ARRAY(i29))) → 2454_0_mysteriousRecursive_ConstantStackPush(EOS(STATIC_2454), java.lang.Object(ARRAY(i29)), i271, i271, i29) | >=(i29, 0)
2454_0_mysteriousRecursive_ConstantStackPush(EOS(STATIC_2454), java.lang.Object(ARRAY(i29)), i271, i271, i29) → 2458_0_mysteriousRecursive_IntArithmetic(EOS(STATIC_2458), java.lang.Object(ARRAY(i29)), i271, i271, i29, 1)
2458_0_mysteriousRecursive_IntArithmetic(EOS(STATIC_2458), java.lang.Object(ARRAY(i29)), i271, i271, i29, matching1) → 2462_0_mysteriousRecursive_NE(EOS(STATIC_2462), java.lang.Object(ARRAY(i29)), i271, i271, -(i29, 1)) | &&(>(i29, 0), =(matching1, 1))
2462_0_mysteriousRecursive_NE(EOS(STATIC_2462), java.lang.Object(ARRAY(i29)), i271, i271, i274) → 2465_0_mysteriousRecursive_NE(EOS(STATIC_2465), java.lang.Object(ARRAY(i29)), i271, i271, i274)
2462_0_mysteriousRecursive_NE(EOS(STATIC_2462), java.lang.Object(ARRAY(i29)), i274, i274, i274) → 2466_0_mysteriousRecursive_NE(EOS(STATIC_2466), java.lang.Object(ARRAY(i29)), i274, i274, i274)
2465_0_mysteriousRecursive_NE(EOS(STATIC_2465), java.lang.Object(ARRAY(i29)), i271, i271, i274) → 2469_0_mysteriousRecursive_Load(EOS(STATIC_2469), java.lang.Object(ARRAY(i29)), i271) | !(=(i271, i274))
2469_0_mysteriousRecursive_Load(EOS(STATIC_2469), java.lang.Object(ARRAY(i29)), i271) → 2473_0_mysteriousRecursive_Store(EOS(STATIC_2473), java.lang.Object(ARRAY(i29)), i271, i271)
2473_0_mysteriousRecursive_Store(EOS(STATIC_2473), java.lang.Object(ARRAY(i29)), i271, i271) → 2478_0_mysteriousRecursive_Load(EOS(STATIC_2478), java.lang.Object(ARRAY(i29)), i271, i271)
2478_0_mysteriousRecursive_Load(EOS(STATIC_2478), java.lang.Object(ARRAY(i29)), i271, i271) → 3419_0_mysteriousRecursive_Load(EOS(STATIC_3419), java.lang.Object(ARRAY(i29)), i271, i271)
3419_0_mysteriousRecursive_Load(EOS(STATIC_3419), java.lang.Object(ARRAY(i490)), i271, i491) → 3427_0_mysteriousRecursive_Load(EOS(STATIC_3427), java.lang.Object(ARRAY(i490)), i271, i491, i491)
3427_0_mysteriousRecursive_Load(EOS(STATIC_3427), java.lang.Object(ARRAY(i490)), i271, i491, i491) → 3434_0_mysteriousRecursive_ArrayLength(EOS(STATIC_3434), java.lang.Object(ARRAY(i490)), i271, i491, i491, java.lang.Object(ARRAY(i490)))
3434_0_mysteriousRecursive_ArrayLength(EOS(STATIC_3434), java.lang.Object(ARRAY(i490)), i271, i491, i491, java.lang.Object(ARRAY(i490))) → 3441_0_mysteriousRecursive_GE(EOS(STATIC_3441), java.lang.Object(ARRAY(i490)), i271, i491, i491, i490) | >=(i490, 0)
3441_0_mysteriousRecursive_GE(EOS(STATIC_3441), java.lang.Object(ARRAY(i490)), i271, i491, i491, i490) → 3445_0_mysteriousRecursive_GE(EOS(STATIC_3445), java.lang.Object(ARRAY(i490)), i271, i491, i491, i490)
3445_0_mysteriousRecursive_GE(EOS(STATIC_3445), java.lang.Object(ARRAY(i490)), i271, i491, i491, i490) → 3456_0_mysteriousRecursive_Load(EOS(STATIC_3456), java.lang.Object(ARRAY(i490)), i271, i491) | <(i491, i490)
3456_0_mysteriousRecursive_Load(EOS(STATIC_3456), java.lang.Object(ARRAY(i490)), i271, i491) → 3463_0_mysteriousRecursive_Load(EOS(STATIC_3463), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)))
3463_0_mysteriousRecursive_Load(EOS(STATIC_3463), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490))) → 3466_0_mysteriousRecursive_Load(EOS(STATIC_3466), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3466_0_mysteriousRecursive_Load(EOS(STATIC_3466), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3477_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3477), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491)
3477_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3477), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491) → 3481_0_swap3_Load(EOS(STATIC_3481), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491)
3481_0_swap3_Load(EOS(STATIC_3481), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491) → 3490_0_swap3_Load(EOS(STATIC_3490), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)))
3490_0_swap3_Load(EOS(STATIC_3490), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490))) → 3496_0_swap3_ArrayAccess(EOS(STATIC_3496), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3496_0_swap3_ArrayAccess(EOS(STATIC_3496), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3501_0_swap3_ArrayAccess(EOS(STATIC_3501), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3501_0_swap3_ArrayAccess(EOS(STATIC_3501), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3511_0_swap3_Store(EOS(STATIC_3511), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491) | <(i271, i490)
3511_0_swap3_Store(EOS(STATIC_3511), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491) → 3519_0_swap3_Load(EOS(STATIC_3519), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491)
3519_0_swap3_Load(EOS(STATIC_3519), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491) → 3524_0_swap3_Load(EOS(STATIC_3524), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)))
3524_0_swap3_Load(EOS(STATIC_3524), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490))) → 3534_0_swap3_Load(EOS(STATIC_3534), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i491, java.lang.Object(ARRAY(i490)), i271)
3534_0_swap3_Load(EOS(STATIC_3534), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i491, java.lang.Object(ARRAY(i490)), i271) → 3543_0_swap3_Load(EOS(STATIC_3543), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i491, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)))
3543_0_swap3_Load(EOS(STATIC_3543), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i491, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490))) → 3547_0_swap3_ArrayAccess(EOS(STATIC_3547), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i491, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i491)
3547_0_swap3_ArrayAccess(EOS(STATIC_3547), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3556_0_swap3_ArrayAccess(EOS(STATIC_3556), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3556_0_swap3_ArrayAccess(EOS(STATIC_3556), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3567_0_swap3_ArrayAccess(EOS(STATIC_3567), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3567_0_swap3_ArrayAccess(EOS(STATIC_3567), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3577_0_swap3_ArrayAccess(EOS(STATIC_3577), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) | <(i528, i490)
3577_0_swap3_ArrayAccess(EOS(STATIC_3577), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3588_0_swap3_ArrayAccess(EOS(STATIC_3588), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3588_0_swap3_ArrayAccess(EOS(STATIC_3588), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3598_0_swap3_Load(EOS(STATIC_3598), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) | <(i271, i490)
3598_0_swap3_Load(EOS(STATIC_3598), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3610_0_swap3_Load(EOS(STATIC_3610), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, i528, java.lang.Object(ARRAY(i490)))
3610_0_swap3_Load(EOS(STATIC_3610), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, i528, java.lang.Object(ARRAY(i490))) → 3619_0_swap3_Load(EOS(STATIC_3619), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3619_0_swap3_Load(EOS(STATIC_3619), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3630_0_swap3_ArrayAccess(EOS(STATIC_3630), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3630_0_swap3_ArrayAccess(EOS(STATIC_3630), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3638_0_swap3_ArrayAccess(EOS(STATIC_3638), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3638_0_swap3_ArrayAccess(EOS(STATIC_3638), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3650_0_swap3_Return(EOS(STATIC_3650), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) | <(i528, i490)
3650_0_swap3_Return(EOS(STATIC_3650), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) → 3661_0_mysteriousRecursive_Load(EOS(STATIC_3661), java.lang.Object(ARRAY(i490)), i271, i528)
3661_0_mysteriousRecursive_Load(EOS(STATIC_3661), java.lang.Object(ARRAY(i490)), i271, i528) → 3671_0_mysteriousRecursive_Load(EOS(STATIC_3671), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)))
3671_0_mysteriousRecursive_Load(EOS(STATIC_3671), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490))) → 3682_0_mysteriousRecursive_ConstantStackPush(EOS(STATIC_3682), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
3682_0_mysteriousRecursive_ConstantStackPush(EOS(STATIC_3682), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 3691_0_mysteriousRecursive_IntArithmetic(EOS(STATIC_3691), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, 1)
3691_0_mysteriousRecursive_IntArithmetic(EOS(STATIC_3691), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, matching1) → 3698_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3698), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), +(i271, 1)) | &&(>=(i271, 0), =(matching1, 1))
3698_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3698), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i544) → 3708_1_mysteriousRecursive_InvokeMethod(3708_0_mysteriousRecursive_Load(EOS(STATIC_3708), java.lang.Object(ARRAY(i490)), i544), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i544)
3708_0_mysteriousRecursive_Load(EOS(STATIC_3708), java.lang.Object(ARRAY(i490)), i544) → 3717_0_mysteriousRecursive_Load(EOS(STATIC_3717), java.lang.Object(ARRAY(i490)), i544)
3708_1_mysteriousRecursive_InvokeMethod(3455_0_mysteriousRecursive_Return(EOS(STATIC_3455)), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i550) → 3748_0_mysteriousRecursive_Return(EOS(STATIC_3748), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i550)
3717_0_mysteriousRecursive_Load(EOS(STATIC_3717), java.lang.Object(ARRAY(i490)), i544) → 2443_0_mysteriousRecursive_Load(EOS(STATIC_2443), java.lang.Object(ARRAY(i490)), i544)
2443_0_mysteriousRecursive_Load(EOS(STATIC_2443), java.lang.Object(ARRAY(i29)), i271) → 2448_0_mysteriousRecursive_Load(EOS(STATIC_2448), java.lang.Object(ARRAY(i29)), i271, i271)
3748_0_mysteriousRecursive_Return(EOS(STATIC_3748), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i550) → 3759_0_mysteriousRecursive_Load(EOS(STATIC_3759), java.lang.Object(ARRAY(i490)), i271, i528)
3759_0_mysteriousRecursive_Load(EOS(STATIC_3759), java.lang.Object(ARRAY(i490)), i271, i528) → 3775_0_mysteriousRecursive_Load(EOS(STATIC_3775), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)))
3775_0_mysteriousRecursive_Load(EOS(STATIC_3775), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490))) → 3787_0_mysteriousRecursive_Load(EOS(STATIC_3787), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
3787_0_mysteriousRecursive_Load(EOS(STATIC_3787), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 3798_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3798), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
3798_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3798), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) → 3814_0_swap3_Load(EOS(STATIC_3814), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
3814_0_swap3_Load(EOS(STATIC_3814), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) → 3849_0_swap3_Load(EOS(STATIC_3849), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)))
3849_0_swap3_Load(EOS(STATIC_3849), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490))) → 3865_0_swap3_ArrayAccess(EOS(STATIC_3865), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
3865_0_swap3_ArrayAccess(EOS(STATIC_3865), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 3882_0_swap3_ArrayAccess(EOS(STATIC_3882), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
3882_0_swap3_ArrayAccess(EOS(STATIC_3882), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 3902_0_swap3_Store(EOS(STATIC_3902), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) | <(i271, i490)
3902_0_swap3_Store(EOS(STATIC_3902), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) → 3922_0_swap3_Load(EOS(STATIC_3922), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
3922_0_swap3_Load(EOS(STATIC_3922), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) → 3938_0_swap3_Load(EOS(STATIC_3938), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)))
3938_0_swap3_Load(EOS(STATIC_3938), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490))) → 3952_0_swap3_Load(EOS(STATIC_3952), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3952_0_swap3_Load(EOS(STATIC_3952), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3968_0_swap3_Load(EOS(STATIC_3968), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)))
3968_0_swap3_Load(EOS(STATIC_3968), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490))) → 3978_0_swap3_ArrayAccess(EOS(STATIC_3978), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3978_0_swap3_ArrayAccess(EOS(STATIC_3978), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3987_0_swap3_ArrayAccess(EOS(STATIC_3987), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3987_0_swap3_ArrayAccess(EOS(STATIC_3987), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3993_0_swap3_ArrayAccess(EOS(STATIC_3993), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) | <(i528, i490)
3993_0_swap3_ArrayAccess(EOS(STATIC_3993), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3999_0_swap3_ArrayAccess(EOS(STATIC_3999), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3999_0_swap3_ArrayAccess(EOS(STATIC_3999), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4007_0_swap3_Load(EOS(STATIC_4007), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) | <(i271, i490)
4007_0_swap3_Load(EOS(STATIC_4007), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4018_0_swap3_Load(EOS(STATIC_4018), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, i528, java.lang.Object(ARRAY(i490)))
4018_0_swap3_Load(EOS(STATIC_4018), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, i528, java.lang.Object(ARRAY(i490))) → 4025_0_swap3_Load(EOS(STATIC_4025), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4025_0_swap3_Load(EOS(STATIC_4025), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4036_0_swap3_ArrayAccess(EOS(STATIC_4036), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4036_0_swap3_ArrayAccess(EOS(STATIC_4036), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4043_0_swap3_ArrayAccess(EOS(STATIC_4043), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4043_0_swap3_ArrayAccess(EOS(STATIC_4043), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4048_0_swap3_Return(EOS(STATIC_4048), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) | <(i528, i490)
4048_0_swap3_Return(EOS(STATIC_4048), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) → 4057_0_mysteriousRecursive_Inc(EOS(STATIC_4057), java.lang.Object(ARRAY(i490)), i271, i528)
4057_0_mysteriousRecursive_Inc(EOS(STATIC_4057), java.lang.Object(ARRAY(i490)), i271, i528) → 4066_0_mysteriousRecursive_JMP(EOS(STATIC_4066), java.lang.Object(ARRAY(i490)), i271, +(i528, 1)) | >=(i528, 0)
4066_0_mysteriousRecursive_JMP(EOS(STATIC_4066), java.lang.Object(ARRAY(i490)), i271, i646) → 4076_0_mysteriousRecursive_Load(EOS(STATIC_4076), java.lang.Object(ARRAY(i490)), i271, i646)
4076_0_mysteriousRecursive_Load(EOS(STATIC_4076), java.lang.Object(ARRAY(i490)), i271, i646) → 3419_0_mysteriousRecursive_Load(EOS(STATIC_3419), java.lang.Object(ARRAY(i490)), i271, i646)
2466_0_mysteriousRecursive_NE(EOS(STATIC_2466), java.lang.Object(ARRAY(i29)), i274, i274, i274) → 2470_0_mysteriousRecursive_Load(EOS(STATIC_2470), java.lang.Object(ARRAY(i29)), i274)
2470_0_mysteriousRecursive_Load(EOS(STATIC_2470), java.lang.Object(ARRAY(i29)), i274) → 2475_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_2475), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)))
2475_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_2475), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29))) → 2479_0_display_ConstantStackPush(EOS(STATIC_2479), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)))
2479_0_display_ConstantStackPush(EOS(STATIC_2479), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29))) → 2488_0_display_Store(EOS(STATIC_2488), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0)
2488_0_display_Store(EOS(STATIC_2488), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1) → 2494_0_display_Load(EOS(STATIC_2494), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0) | =(matching1, 0)
2494_0_display_Load(EOS(STATIC_2494), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1) → 2540_0_display_Load(EOS(STATIC_2540), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0) | =(matching1, 0)
2540_0_display_Load(EOS(STATIC_2540), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i278) → 2589_0_display_Load(EOS(STATIC_2589), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i278)
2589_0_display_Load(EOS(STATIC_2589), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i282) → 2678_0_display_Load(EOS(STATIC_2678), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i282)
2678_0_display_Load(EOS(STATIC_2678), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i288) → 2808_0_display_Load(EOS(STATIC_2808), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i288)
2808_0_display_Load(EOS(STATIC_2808), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295) → 2826_0_display_Load(EOS(STATIC_2826), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295, i295)
2826_0_display_Load(EOS(STATIC_2826), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295, i295) → 2843_0_display_ArrayLength(EOS(STATIC_2843), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295, i295, java.lang.Object(ARRAY(i29)))
2843_0_display_ArrayLength(EOS(STATIC_2843), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295, i295, java.lang.Object(ARRAY(i29))) → 2865_0_display_GE(EOS(STATIC_2865), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295, i295, i29) | >=(i29, 0)
2865_0_display_GE(EOS(STATIC_2865), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295, i295, i29) → 2882_0_display_GE(EOS(STATIC_2882), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295, i295, i29)
2865_0_display_GE(EOS(STATIC_2865), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295, i295, i29) → 2883_0_display_GE(EOS(STATIC_2883), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295, i295, i29)
2882_0_display_GE(EOS(STATIC_2882), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295, i295, i29) → 2898_0_display_Return(EOS(STATIC_2898), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29))) | >=(i295, i29)
2898_0_display_Return(EOS(STATIC_2898), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29))) → 2913_0_mysteriousRecursive_Load(EOS(STATIC_2913), java.lang.Object(ARRAY(i29)), i274)
2913_0_mysteriousRecursive_Load(EOS(STATIC_2913), java.lang.Object(ARRAY(i29)), i274) → 2929_0_mysteriousRecursive_Store(EOS(STATIC_2929), java.lang.Object(ARRAY(i29)), i274, i274)
2929_0_mysteriousRecursive_Store(EOS(STATIC_2929), java.lang.Object(ARRAY(i29)), i274, i274) → 2948_0_mysteriousRecursive_Load(EOS(STATIC_2948), java.lang.Object(ARRAY(i29)), i274, i274)
2948_0_mysteriousRecursive_Load(EOS(STATIC_2948), java.lang.Object(ARRAY(i29)), i274, i274) → 3419_0_mysteriousRecursive_Load(EOS(STATIC_3419), java.lang.Object(ARRAY(i29)), i274, i274)
2883_0_display_GE(EOS(STATIC_2883), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295, i295, i29) → 2900_0_display_Inc(EOS(STATIC_2900), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295) | <(i295, i29)
2900_0_display_Inc(EOS(STATIC_2900), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i295) → 2915_0_display_JMP(EOS(STATIC_2915), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), +(i295, 1)) | >=(i295, 0)
2915_0_display_JMP(EOS(STATIC_2915), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i301) → 2932_0_display_Load(EOS(STATIC_2932), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i301)
2932_0_display_Load(EOS(STATIC_2932), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i301) → 2808_0_display_Load(EOS(STATIC_2808), java.lang.Object(ARRAY(i29)), i274, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i301)
R rules:
3441_0_mysteriousRecursive_GE(EOS(STATIC_3441), java.lang.Object(ARRAY(i490)), i271, i491, i491, i490) → 3444_0_mysteriousRecursive_GE(EOS(STATIC_3444), java.lang.Object(ARRAY(i490)), i271, i491, i491, i490)
3444_0_mysteriousRecursive_GE(EOS(STATIC_3444), java.lang.Object(ARRAY(i490)), i271, i491, i491, i490) → 3455_0_mysteriousRecursive_Return(EOS(STATIC_3455)) | >=(i491, i490)
3496_0_swap3_ArrayAccess(EOS(STATIC_3496), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3502_0_swap3_ArrayAccess(EOS(STATIC_3502), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3502_0_swap3_ArrayAccess(EOS(STATIC_3502), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3513_0_<init>_Load(EOS(STATIC_3513), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) | >=(i271, i490)
3513_0_<init>_Load(EOS(STATIC_3513), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3526_0_<init>_InvokeMethod(EOS(STATIC_3526), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3526_0_<init>_InvokeMethod(EOS(STATIC_3526), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3535_0_<init>_Load(EOS(STATIC_3535), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3535_0_<init>_Load(EOS(STATIC_3535), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3548_0_<init>_InvokeMethod(EOS(STATIC_3548), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3547_0_swap3_ArrayAccess(EOS(STATIC_3547), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3555_0_swap3_ArrayAccess(EOS(STATIC_3555), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3548_0_<init>_InvokeMethod(EOS(STATIC_3548), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3557_0_<init>_Load(EOS(STATIC_3557), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3555_0_swap3_ArrayAccess(EOS(STATIC_3555), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3566_0_<init>_Load(EOS(STATIC_3566), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) | <=(i527, -1)
3556_0_swap3_ArrayAccess(EOS(STATIC_3556), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3568_0_swap3_ArrayAccess(EOS(STATIC_3568), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3557_0_<init>_Load(EOS(STATIC_3557), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3580_0_<init>_InvokeMethod(EOS(STATIC_3580), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3566_0_<init>_Load(EOS(STATIC_3566), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3586_0_<init>_InvokeMethod(EOS(STATIC_3586), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3568_0_swap3_ArrayAccess(EOS(STATIC_3568), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3579_0_<init>_Load(EOS(STATIC_3579), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) | >=(i528, i490)
3577_0_swap3_ArrayAccess(EOS(STATIC_3577), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3589_0_swap3_ArrayAccess(EOS(STATIC_3589), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3579_0_<init>_Load(EOS(STATIC_3579), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3602_0_<init>_InvokeMethod(EOS(STATIC_3602), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3580_0_<init>_InvokeMethod(EOS(STATIC_3580), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3590_0_<init>_Load(EOS(STATIC_3590), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3586_0_<init>_InvokeMethod(EOS(STATIC_3586), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3597_0_<init>_Load(EOS(STATIC_3597), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3589_0_swap3_ArrayAccess(EOS(STATIC_3589), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3599_0_<init>_Load(EOS(STATIC_3599), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) | >=(i271, i490)
3590_0_<init>_Load(EOS(STATIC_3590), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3613_0_<init>_InvokeMethod(EOS(STATIC_3613), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3597_0_<init>_Load(EOS(STATIC_3597), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3618_0_<init>_InvokeMethod(EOS(STATIC_3618), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3599_0_<init>_Load(EOS(STATIC_3599), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3622_0_<init>_InvokeMethod(EOS(STATIC_3622), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3602_0_<init>_InvokeMethod(EOS(STATIC_3602), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3612_0_<init>_Load(EOS(STATIC_3612), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3612_0_<init>_Load(EOS(STATIC_3612), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3634_0_<init>_InvokeMethod(EOS(STATIC_3634), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3613_0_<init>_InvokeMethod(EOS(STATIC_3613), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3624_0_<init>_Load(EOS(STATIC_3624), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3618_0_<init>_InvokeMethod(EOS(STATIC_3618), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3629_0_<init>_Load(EOS(STATIC_3629), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3622_0_<init>_InvokeMethod(EOS(STATIC_3622), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3631_0_<init>_Load(EOS(STATIC_3631), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3624_0_<init>_Load(EOS(STATIC_3624), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3642_0_<init>_InvokeMethod(EOS(STATIC_3642), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3629_0_<init>_Load(EOS(STATIC_3629), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3648_0_<init>_InvokeMethod(EOS(STATIC_3648), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3630_0_swap3_ArrayAccess(EOS(STATIC_3630), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3639_0_swap3_ArrayAccess(EOS(STATIC_3639), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3631_0_<init>_Load(EOS(STATIC_3631), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3654_0_<init>_InvokeMethod(EOS(STATIC_3654), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3634_0_<init>_InvokeMethod(EOS(STATIC_3634), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3641_0_<init>_Load(EOS(STATIC_3641), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3639_0_swap3_ArrayAccess(EOS(STATIC_3639), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3651_0_<init>_Load(EOS(STATIC_3651), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) | >=(i528, i490)
3641_0_<init>_Load(EOS(STATIC_3641), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3665_0_<init>_InvokeMethod(EOS(STATIC_3665), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3642_0_<init>_InvokeMethod(EOS(STATIC_3642), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3655_0_<init>_Load(EOS(STATIC_3655), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3648_0_<init>_InvokeMethod(EOS(STATIC_3648), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3660_0_<init>_Load(EOS(STATIC_3660), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3651_0_<init>_Load(EOS(STATIC_3651), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3674_0_<init>_InvokeMethod(EOS(STATIC_3674), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3654_0_<init>_InvokeMethod(EOS(STATIC_3654), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3663_0_<init>_Load(EOS(STATIC_3663), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3655_0_<init>_Load(EOS(STATIC_3655), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3666_0_<init>_Load(EOS(STATIC_3666), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3660_0_<init>_Load(EOS(STATIC_3660), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3680_0_<init>_InvokeMethod(EOS(STATIC_3680), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3663_0_<init>_Load(EOS(STATIC_3663), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3686_0_<init>_InvokeMethod(EOS(STATIC_3686), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3665_0_<init>_InvokeMethod(EOS(STATIC_3665), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3676_0_<init>_Load(EOS(STATIC_3676), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3666_0_<init>_Load(EOS(STATIC_3666), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3677_0_<init>_FieldAccess(EOS(STATIC_3677), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3674_0_<init>_InvokeMethod(EOS(STATIC_3674), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3683_0_<init>_Load(EOS(STATIC_3683), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3676_0_<init>_Load(EOS(STATIC_3676), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3695_0_<init>_InvokeMethod(EOS(STATIC_3695), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3677_0_<init>_FieldAccess(EOS(STATIC_3677), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3689_0_<init>_Load(EOS(STATIC_3689), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3680_0_<init>_InvokeMethod(EOS(STATIC_3680), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3690_0_<init>_Load(EOS(STATIC_3690), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3683_0_<init>_Load(EOS(STATIC_3683), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3702_0_<init>_InvokeMethod(EOS(STATIC_3702), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3686_0_<init>_InvokeMethod(EOS(STATIC_3686), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3693_0_<init>_Load(EOS(STATIC_3693), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3689_0_<init>_Load(EOS(STATIC_3689), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3697_0_<init>_InvokeMethod(EOS(STATIC_3697), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3690_0_<init>_Load(EOS(STATIC_3690), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3707_0_<init>_InvokeMethod(EOS(STATIC_3707), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3693_0_<init>_Load(EOS(STATIC_3693), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3712_0_<init>_InvokeMethod(EOS(STATIC_3712), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3695_0_<init>_InvokeMethod(EOS(STATIC_3695), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3703_0_<init>_Load(EOS(STATIC_3703), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3697_0_<init>_InvokeMethod(EOS(STATIC_3697), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3705_0_<init>_StackPop(EOS(STATIC_3705), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3702_0_<init>_InvokeMethod(EOS(STATIC_3702), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3709_0_<init>_Load(EOS(STATIC_3709), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3703_0_<init>_Load(EOS(STATIC_3703), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3721_0_<init>_InvokeMethod(EOS(STATIC_3721), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3705_0_<init>_StackPop(EOS(STATIC_3705), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3713_0_<init>_Return(EOS(STATIC_3713), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3707_0_<init>_InvokeMethod(EOS(STATIC_3707), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3715_0_<init>_Load(EOS(STATIC_3715), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3708_1_mysteriousRecursive_InvokeMethod(3783_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3783), java.lang.Object(ARRAY(i490)), i556, i491, java.lang.Object(ARRAY(i490)), i556, i491), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i556) → 3830_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3830), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i556, java.lang.Object(ARRAY(i490)), i556, i491, java.lang.Object(ARRAY(i490)), i556, i491)
3708_1_mysteriousRecursive_InvokeMethod(3846_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3846), java.lang.Object(ARRAY(i490)), i569, i566, java.lang.Object(ARRAY(i490)), i556), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i569) → 3899_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3899), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i569, java.lang.Object(ARRAY(i490)), i569, i566, java.lang.Object(ARRAY(i490)), i556)
3708_1_mysteriousRecursive_InvokeMethod(3881_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3881), java.lang.Object(ARRAY(i490)), i581, i527, java.lang.Object(ARRAY(i490)), i581, i527), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i581) → 3936_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3936), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i581, java.lang.Object(ARRAY(i490)), i581, i527, java.lang.Object(ARRAY(i490)), i581, i527)
3708_1_mysteriousRecursive_InvokeMethod(3911_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3911), java.lang.Object(ARRAY(i490)), i591, i588, java.lang.Object(ARRAY(i490)), i591, i588), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i591) → 3962_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3962), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i591, java.lang.Object(ARRAY(i490)), i591, i588, java.lang.Object(ARRAY(i490)), i591, i588)
3708_1_mysteriousRecursive_InvokeMethod(3917_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3917), java.lang.Object(ARRAY(i490)), i597, i594, java.lang.Object(ARRAY(i490)), i569), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i597) → 3967_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3967), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i597, java.lang.Object(ARRAY(i490)), i597, i594, java.lang.Object(ARRAY(i490)), i569)
3708_1_mysteriousRecursive_InvokeMethod(3949_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3949), java.lang.Object(ARRAY(i490)), i612, i609, java.lang.Object(ARRAY(i490)), i612, i609), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i612) → 3985_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3985), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i612, java.lang.Object(ARRAY(i490)), i612, i609, java.lang.Object(ARRAY(i490)), i612, i609)
3708_1_mysteriousRecursive_InvokeMethod(3998_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3998), java.lang.Object(ARRAY(i490)), i631, i628, java.lang.Object(ARRAY(i490)), i631, i628), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i631) → 4024_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4024), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i631, java.lang.Object(ARRAY(i490)), i631, i628, java.lang.Object(ARRAY(i490)), i631, i628)
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4182), java.lang.Object(ARRAY(i490)), i689, i686, java.lang.Object(ARRAY(i490)), i689, i686), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i689) → 4223_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4223), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i689, java.lang.Object(ARRAY(i490)), i689, i686, java.lang.Object(ARRAY(i490)), i689, i686)
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(i490)), i713, i710, java.lang.Object(ARRAY(i490)), i689), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i713) → 4282_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4282), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i713, java.lang.Object(ARRAY(i490)), i713, i710, java.lang.Object(ARRAY(i490)), i689)
3708_1_mysteriousRecursive_InvokeMethod(4277_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4277), java.lang.Object(ARRAY(i490)), i733, i730, java.lang.Object(ARRAY(i490)), i733, i730), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i733) → 4310_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4310), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i733, java.lang.Object(ARRAY(i490)), i733, i730, java.lang.Object(ARRAY(i490)), i733, i730)
3708_1_mysteriousRecursive_InvokeMethod(4296_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4296), java.lang.Object(ARRAY(i490)), i743, i740, java.lang.Object(ARRAY(i490)), i743, i740), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i743) → 4321_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4321), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i743, java.lang.Object(ARRAY(i490)), i743, i740, java.lang.Object(ARRAY(i490)), i743, i740)
3708_1_mysteriousRecursive_InvokeMethod(4326_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4326), java.lang.Object(ARRAY(i490)), i754, i751, java.lang.Object(ARRAY(i490)), i754, i751), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i754) → 4336_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4336), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i754, java.lang.Object(ARRAY(i490)), i754, i751, java.lang.Object(ARRAY(i490)), i754, i751)
3709_0_<init>_Load(EOS(STATIC_3709), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3728_0_<init>_InvokeMethod(EOS(STATIC_3728), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3712_0_<init>_InvokeMethod(EOS(STATIC_3712), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3718_0_<init>_Load(EOS(STATIC_3718), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3713_0_<init>_Return(EOS(STATIC_3713), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3722_0_<init>_Return(EOS(STATIC_3722), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3715_0_<init>_Load(EOS(STATIC_3715), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3724_0_<init>_Load(EOS(STATIC_3724), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3718_0_<init>_Load(EOS(STATIC_3718), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3740_0_<init>_InvokeMethod(EOS(STATIC_3740), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3721_0_<init>_InvokeMethod(EOS(STATIC_3721), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3731_0_<init>_Load(EOS(STATIC_3731), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3722_0_<init>_Return(EOS(STATIC_3722), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3732_0_<init>_Return(EOS(STATIC_3732), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3724_0_<init>_Load(EOS(STATIC_3724), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3734_0_<init>_FieldAccess(EOS(STATIC_3734), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3728_0_<init>_InvokeMethod(EOS(STATIC_3728), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3737_0_<init>_Load(EOS(STATIC_3737), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3731_0_<init>_Load(EOS(STATIC_3731), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3743_0_<init>_Load(EOS(STATIC_3743), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3732_0_<init>_Return(EOS(STATIC_3732), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3744_0_<init>_Return(EOS(STATIC_3744), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3734_0_<init>_FieldAccess(EOS(STATIC_3734), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3747_0_<init>_Load(EOS(STATIC_3747), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3737_0_<init>_Load(EOS(STATIC_3737), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3763_0_<init>_InvokeMethod(EOS(STATIC_3763), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3740_0_<init>_InvokeMethod(EOS(STATIC_3740), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3752_0_<init>_Load(EOS(STATIC_3752), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3743_0_<init>_Load(EOS(STATIC_3743), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3754_0_<init>_FieldAccess(EOS(STATIC_3754), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3744_0_<init>_Return(EOS(STATIC_3744), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3756_0_<init>_Return(EOS(STATIC_3756), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3747_0_<init>_Load(EOS(STATIC_3747), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3758_0_<init>_InvokeMethod(EOS(STATIC_3758), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3752_0_<init>_Load(EOS(STATIC_3752), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3766_0_<init>_Load(EOS(STATIC_3766), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3754_0_<init>_FieldAccess(EOS(STATIC_3754), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3769_0_<init>_Load(EOS(STATIC_3769), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3756_0_<init>_Return(EOS(STATIC_3756), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3771_0_swap3_ArrayAccess(EOS(STATIC_3771), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271)
3758_0_<init>_InvokeMethod(EOS(STATIC_3758), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3773_0_<init>_StackPop(EOS(STATIC_3773), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3763_0_<init>_InvokeMethod(EOS(STATIC_3763), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3776_0_<init>_Load(EOS(STATIC_3776), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3766_0_<init>_Load(EOS(STATIC_3766), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3779_0_<init>_FieldAccess(EOS(STATIC_3779), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3769_0_<init>_Load(EOS(STATIC_3769), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3782_0_<init>_InvokeMethod(EOS(STATIC_3782), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3771_0_swap3_ArrayAccess(EOS(STATIC_3771), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271) → 3783_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3783), java.lang.Object(ARRAY(i490)), i271, i491, java.lang.Object(ARRAY(i490)), i271, i491)
3773_0_<init>_StackPop(EOS(STATIC_3773), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3785_0_<init>_Return(EOS(STATIC_3785), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3776_0_<init>_Load(EOS(STATIC_3776), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3802_0_<init>_InvokeMethod(EOS(STATIC_3802), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3779_0_<init>_FieldAccess(EOS(STATIC_3779), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3791_0_<init>_Load(EOS(STATIC_3791), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3782_0_<init>_InvokeMethod(EOS(STATIC_3782), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3794_0_<init>_StackPop(EOS(STATIC_3794), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3785_0_<init>_Return(EOS(STATIC_3785), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3797_0_<init>_Return(EOS(STATIC_3797), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3791_0_<init>_Load(EOS(STATIC_3791), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3805_0_<init>_InvokeMethod(EOS(STATIC_3805), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3794_0_<init>_StackPop(EOS(STATIC_3794), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3807_0_<init>_Return(EOS(STATIC_3807), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3797_0_<init>_Return(EOS(STATIC_3797), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3813_0_<init>_Return(EOS(STATIC_3813), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3802_0_<init>_InvokeMethod(EOS(STATIC_3802), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3818_0_<init>_Load(EOS(STATIC_3818), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3805_0_<init>_InvokeMethod(EOS(STATIC_3805), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3821_0_<init>_StackPop(EOS(STATIC_3821), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3807_0_<init>_Return(EOS(STATIC_3807), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3824_0_<init>_Return(EOS(STATIC_3824), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3813_0_<init>_Return(EOS(STATIC_3813), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3832_0_<init>_Return(EOS(STATIC_3832), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3818_0_<init>_Load(EOS(STATIC_3818), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3836_0_<init>_Load(EOS(STATIC_3836), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3821_0_<init>_StackPop(EOS(STATIC_3821), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3839_0_<init>_Return(EOS(STATIC_3839), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3824_0_<init>_Return(EOS(STATIC_3824), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3841_0_<init>_Return(EOS(STATIC_3841), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3830_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3830), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i556, java.lang.Object(ARRAY(i490)), i556, i491, java.lang.Object(ARRAY(i490)), i556, i491) → 3846_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3846), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i556)
3832_0_<init>_Return(EOS(STATIC_3832), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3848_0_<init>_Return(EOS(STATIC_3848), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3836_0_<init>_Load(EOS(STATIC_3836), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3853_0_<init>_FieldAccess(EOS(STATIC_3853), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3839_0_<init>_Return(EOS(STATIC_3839), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3856_0_<init>_Return(EOS(STATIC_3856), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3841_0_<init>_Return(EOS(STATIC_3841), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3859_0_<init>_Return(EOS(STATIC_3859), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3846_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3846), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i556) → 3917_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3917), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i556)
3848_0_<init>_Return(EOS(STATIC_3848), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3863_0_swap3_ArrayAccess(EOS(STATIC_3863), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527)
3853_0_<init>_FieldAccess(EOS(STATIC_3853), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3870_0_<init>_Load(EOS(STATIC_3870), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3856_0_<init>_Return(EOS(STATIC_3856), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3873_0_<init>_Return(EOS(STATIC_3873), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3859_0_<init>_Return(EOS(STATIC_3859), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3875_0_<init>_Return(EOS(STATIC_3875), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3863_0_swap3_ArrayAccess(EOS(STATIC_3863), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i527, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i527) → 3881_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3881), java.lang.Object(ARRAY(i490)), i271, i527, java.lang.Object(ARRAY(i490)), i271, i527)
3865_0_swap3_ArrayAccess(EOS(STATIC_3865), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 3883_0_swap3_ArrayAccess(EOS(STATIC_3883), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
3870_0_<init>_Load(EOS(STATIC_3870), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3887_0_<init>_InvokeMethod(EOS(STATIC_3887), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3873_0_<init>_Return(EOS(STATIC_3873), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3890_0_<init>_Return(EOS(STATIC_3890), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3875_0_<init>_Return(EOS(STATIC_3875), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3892_0_swap3_ArrayAccess(EOS(STATIC_3892), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3883_0_swap3_ArrayAccess(EOS(STATIC_3883), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 3903_0_<init>_Load(EOS(STATIC_3903), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) | >=(i271, i490)
3887_0_<init>_InvokeMethod(EOS(STATIC_3887), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3907_0_<init>_StackPop(EOS(STATIC_3907), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3890_0_<init>_Return(EOS(STATIC_3890), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3909_0_<init>_Return(EOS(STATIC_3909), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3892_0_swap3_ArrayAccess(EOS(STATIC_3892), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3911_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3911), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
3899_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3899), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i569, java.lang.Object(ARRAY(i490)), i569, i566, java.lang.Object(ARRAY(i490)), i556) → 3917_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3917), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i569)
3903_0_<init>_Load(EOS(STATIC_3903), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 3942_0_<init>_InvokeMethod(EOS(STATIC_3942), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
3907_0_<init>_StackPop(EOS(STATIC_3907), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3926_0_<init>_Return(EOS(STATIC_3926), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3909_0_<init>_Return(EOS(STATIC_3909), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3928_0_swap3_ArrayAccess(EOS(STATIC_3928), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3911_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3911), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) → 3949_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3949), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
3917_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3917), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i569) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i569)
3926_0_<init>_Return(EOS(STATIC_3926), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3946_0_<init>_Return(EOS(STATIC_3946), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3928_0_swap3_ArrayAccess(EOS(STATIC_3928), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 3949_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3949), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
3936_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3936), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i581, java.lang.Object(ARRAY(i490)), i581, i527, java.lang.Object(ARRAY(i490)), i581, i527) → 3830_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3830), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i581, java.lang.Object(ARRAY(i490)), i581, i527, java.lang.Object(ARRAY(i490)), i581, i527)
3942_0_<init>_InvokeMethod(EOS(STATIC_3942), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 3953_0_<init>_Load(EOS(STATIC_3953), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
3946_0_<init>_Return(EOS(STATIC_3946), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3956_0_<init>_Return(EOS(STATIC_3956), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3949_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3949), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) → 3998_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3998), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
3953_0_<init>_Load(EOS(STATIC_3953), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 3979_0_<init>_InvokeMethod(EOS(STATIC_3979), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
3956_0_<init>_Return(EOS(STATIC_3956), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3971_0_<init>_Return(EOS(STATIC_3971), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3962_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3962), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i591, java.lang.Object(ARRAY(i490)), i591, i588, java.lang.Object(ARRAY(i490)), i591, i588) → 3830_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3830), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i591, java.lang.Object(ARRAY(i490)), i591, i588, java.lang.Object(ARRAY(i490)), i591, i588)
3967_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3967), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i597, java.lang.Object(ARRAY(i490)), i597, i594, java.lang.Object(ARRAY(i490)), i569) → 3899_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3899), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i597, java.lang.Object(ARRAY(i490)), i597, i594, java.lang.Object(ARRAY(i490)), i569)
3971_0_<init>_Return(EOS(STATIC_3971), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3981_0_<init>_Return(EOS(STATIC_3981), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3978_0_swap3_ArrayAccess(EOS(STATIC_3978), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3988_0_swap3_ArrayAccess(EOS(STATIC_3988), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
3979_0_<init>_InvokeMethod(EOS(STATIC_3979), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 3989_0_<init>_Load(EOS(STATIC_3989), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
3981_0_<init>_Return(EOS(STATIC_3981), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3991_0_swap3_ArrayAccess(EOS(STATIC_3991), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
3985_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3985), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i612, java.lang.Object(ARRAY(i490)), i612, i609, java.lang.Object(ARRAY(i490)), i612, i609) → 3830_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3830), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i612, java.lang.Object(ARRAY(i490)), i612, i609, java.lang.Object(ARRAY(i490)), i612, i609)
3988_0_swap3_ArrayAccess(EOS(STATIC_3988), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 3995_0_<init>_Load(EOS(STATIC_3995), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) | >=(i528, i490)
3989_0_<init>_Load(EOS(STATIC_3989), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4004_0_<init>_InvokeMethod(EOS(STATIC_4004), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
3991_0_swap3_ArrayAccess(EOS(STATIC_3991), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 3998_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3998), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
3993_0_swap3_ArrayAccess(EOS(STATIC_3993), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4000_0_swap3_ArrayAccess(EOS(STATIC_4000), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
3995_0_<init>_Load(EOS(STATIC_3995), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4013_0_<init>_InvokeMethod(EOS(STATIC_4013), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4000_0_swap3_ArrayAccess(EOS(STATIC_4000), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4008_0_<init>_Load(EOS(STATIC_4008), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) | >=(i271, i490)
4004_0_<init>_InvokeMethod(EOS(STATIC_4004), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4014_0_<init>_Load(EOS(STATIC_4014), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4008_0_<init>_Load(EOS(STATIC_4008), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4030_0_<init>_InvokeMethod(EOS(STATIC_4030), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4013_0_<init>_InvokeMethod(EOS(STATIC_4013), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4019_0_<init>_Load(EOS(STATIC_4019), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4014_0_<init>_Load(EOS(STATIC_4014), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4034_0_<init>_InvokeMethod(EOS(STATIC_4034), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4019_0_<init>_Load(EOS(STATIC_4019), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4041_0_<init>_InvokeMethod(EOS(STATIC_4041), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4024_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4024), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i631, java.lang.Object(ARRAY(i490)), i631, i628, java.lang.Object(ARRAY(i490)), i631, i628) → 3830_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3830), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i631, java.lang.Object(ARRAY(i490)), i631, i628, java.lang.Object(ARRAY(i490)), i631, i628)
4030_0_<init>_InvokeMethod(EOS(STATIC_4030), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4037_0_<init>_Load(EOS(STATIC_4037), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4034_0_<init>_InvokeMethod(EOS(STATIC_4034), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4042_0_<init>_Load(EOS(STATIC_4042), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4036_0_swap3_ArrayAccess(EOS(STATIC_4036), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4044_0_swap3_ArrayAccess(EOS(STATIC_4044), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4037_0_<init>_Load(EOS(STATIC_4037), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4053_0_<init>_InvokeMethod(EOS(STATIC_4053), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4041_0_<init>_InvokeMethod(EOS(STATIC_4041), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4046_0_<init>_Load(EOS(STATIC_4046), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4042_0_<init>_Load(EOS(STATIC_4042), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4056_0_<init>_InvokeMethod(EOS(STATIC_4056), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4044_0_swap3_ArrayAccess(EOS(STATIC_4044), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4049_0_<init>_Load(EOS(STATIC_4049), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) | >=(i528, i490)
4046_0_<init>_Load(EOS(STATIC_4046), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4062_0_<init>_InvokeMethod(EOS(STATIC_4062), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4049_0_<init>_Load(EOS(STATIC_4049), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4070_0_<init>_InvokeMethod(EOS(STATIC_4070), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4053_0_<init>_InvokeMethod(EOS(STATIC_4053), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4059_0_<init>_Load(EOS(STATIC_4059), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4056_0_<init>_InvokeMethod(EOS(STATIC_4056), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4065_0_<init>_Load(EOS(STATIC_4065), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4059_0_<init>_Load(EOS(STATIC_4059), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4082_0_<init>_InvokeMethod(EOS(STATIC_4082), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4062_0_<init>_InvokeMethod(EOS(STATIC_4062), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4072_0_<init>_Load(EOS(STATIC_4072), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4065_0_<init>_Load(EOS(STATIC_4065), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4075_0_<init>_Load(EOS(STATIC_4075), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4070_0_<init>_InvokeMethod(EOS(STATIC_4070), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4078_0_<init>_Load(EOS(STATIC_4078), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4072_0_<init>_Load(EOS(STATIC_4072), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4089_0_<init>_InvokeMethod(EOS(STATIC_4089), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4075_0_<init>_Load(EOS(STATIC_4075), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4085_0_<init>_FieldAccess(EOS(STATIC_4085), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4078_0_<init>_Load(EOS(STATIC_4078), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4097_0_<init>_InvokeMethod(EOS(STATIC_4097), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4082_0_<init>_InvokeMethod(EOS(STATIC_4082), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4086_0_<init>_Load(EOS(STATIC_4086), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4085_0_<init>_FieldAccess(EOS(STATIC_4085), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4093_0_<init>_Load(EOS(STATIC_4093), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4086_0_<init>_Load(EOS(STATIC_4086), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4106_0_<init>_InvokeMethod(EOS(STATIC_4106), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4089_0_<init>_InvokeMethod(EOS(STATIC_4089), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4098_0_<init>_Load(EOS(STATIC_4098), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4093_0_<init>_Load(EOS(STATIC_4093), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4101_0_<init>_InvokeMethod(EOS(STATIC_4101), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4097_0_<init>_InvokeMethod(EOS(STATIC_4097), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4102_0_<init>_Load(EOS(STATIC_4102), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4098_0_<init>_Load(EOS(STATIC_4098), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4114_0_<init>_InvokeMethod(EOS(STATIC_4114), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4101_0_<init>_InvokeMethod(EOS(STATIC_4101), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4109_0_<init>_StackPop(EOS(STATIC_4109), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4102_0_<init>_Load(EOS(STATIC_4102), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4120_0_<init>_InvokeMethod(EOS(STATIC_4120), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4106_0_<init>_InvokeMethod(EOS(STATIC_4106), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4111_0_<init>_Load(EOS(STATIC_4111), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4109_0_<init>_StackPop(EOS(STATIC_4109), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4116_0_<init>_Return(EOS(STATIC_4116), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4111_0_<init>_Load(EOS(STATIC_4111), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4131_0_<init>_InvokeMethod(EOS(STATIC_4131), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4114_0_<init>_InvokeMethod(EOS(STATIC_4114), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4124_0_<init>_Load(EOS(STATIC_4124), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4116_0_<init>_Return(EOS(STATIC_4116), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4126_0_<init>_Return(EOS(STATIC_4126), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4120_0_<init>_InvokeMethod(EOS(STATIC_4120), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4128_0_<init>_Load(EOS(STATIC_4128), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4124_0_<init>_Load(EOS(STATIC_4124), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4134_0_<init>_Load(EOS(STATIC_4134), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4126_0_<init>_Return(EOS(STATIC_4126), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4137_0_<init>_Return(EOS(STATIC_4137), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4128_0_<init>_Load(EOS(STATIC_4128), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4151_0_<init>_InvokeMethod(EOS(STATIC_4151), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4131_0_<init>_InvokeMethod(EOS(STATIC_4131), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4141_0_<init>_Load(EOS(STATIC_4141), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4134_0_<init>_Load(EOS(STATIC_4134), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4145_0_<init>_FieldAccess(EOS(STATIC_4145), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4137_0_<init>_Return(EOS(STATIC_4137), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4147_0_<init>_Return(EOS(STATIC_4147), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4141_0_<init>_Load(EOS(STATIC_4141), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4155_0_<init>_Load(EOS(STATIC_4155), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4145_0_<init>_FieldAccess(EOS(STATIC_4145), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4159_0_<init>_Load(EOS(STATIC_4159), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4147_0_<init>_Return(EOS(STATIC_4147), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4161_0_<init>_Return(EOS(STATIC_4161), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4151_0_<init>_InvokeMethod(EOS(STATIC_4151), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4162_0_<init>_Load(EOS(STATIC_4162), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4155_0_<init>_Load(EOS(STATIC_4155), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4166_0_<init>_FieldAccess(EOS(STATIC_4166), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4159_0_<init>_Load(EOS(STATIC_4159), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4170_0_<init>_InvokeMethod(EOS(STATIC_4170), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4161_0_<init>_Return(EOS(STATIC_4161), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4173_0_swap3_ArrayAccess(EOS(STATIC_4173), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271)
4162_0_<init>_Load(EOS(STATIC_4162), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4186_0_<init>_InvokeMethod(EOS(STATIC_4186), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4166_0_<init>_FieldAccess(EOS(STATIC_4166), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4177_0_<init>_Load(EOS(STATIC_4177), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4170_0_<init>_InvokeMethod(EOS(STATIC_4170), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4181_0_<init>_StackPop(EOS(STATIC_4181), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4173_0_swap3_ArrayAccess(EOS(STATIC_4173), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271) → 4182_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4182), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
4177_0_<init>_Load(EOS(STATIC_4177), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4190_0_<init>_InvokeMethod(EOS(STATIC_4190), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4181_0_<init>_StackPop(EOS(STATIC_4181), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4193_0_<init>_Return(EOS(STATIC_4193), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4182_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4182), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) → 4277_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4277), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
4186_0_<init>_InvokeMethod(EOS(STATIC_4186), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4199_0_<init>_Load(EOS(STATIC_4199), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4190_0_<init>_InvokeMethod(EOS(STATIC_4190), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4203_0_<init>_StackPop(EOS(STATIC_4203), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4193_0_<init>_Return(EOS(STATIC_4193), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4206_0_<init>_Return(EOS(STATIC_4206), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4199_0_<init>_Load(EOS(STATIC_4199), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4213_0_<init>_Load(EOS(STATIC_4213), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4203_0_<init>_StackPop(EOS(STATIC_4203), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4217_0_<init>_Return(EOS(STATIC_4217), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4206_0_<init>_Return(EOS(STATIC_4206), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4221_0_<init>_Return(EOS(STATIC_4221), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4213_0_<init>_Load(EOS(STATIC_4213), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4227_0_<init>_FieldAccess(EOS(STATIC_4227), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4217_0_<init>_Return(EOS(STATIC_4217), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4231_0_<init>_Return(EOS(STATIC_4231), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4221_0_<init>_Return(EOS(STATIC_4221), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4234_0_<init>_Return(EOS(STATIC_4234), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4223_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4223), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i689, java.lang.Object(ARRAY(i490)), i689, i686, java.lang.Object(ARRAY(i490)), i689, i686) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i689)
4227_0_<init>_FieldAccess(EOS(STATIC_4227), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4244_0_<init>_Load(EOS(STATIC_4244), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4231_0_<init>_Return(EOS(STATIC_4231), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4248_0_<init>_Return(EOS(STATIC_4248), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4234_0_<init>_Return(EOS(STATIC_4234), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4250_0_<init>_Return(EOS(STATIC_4250), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4244_0_<init>_Load(EOS(STATIC_4244), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4258_0_<init>_InvokeMethod(EOS(STATIC_4258), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4248_0_<init>_Return(EOS(STATIC_4248), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4261_0_<init>_Return(EOS(STATIC_4261), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4250_0_<init>_Return(EOS(STATIC_4250), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4265_0_swap3_ArrayAccess(EOS(STATIC_4265), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528)
4258_0_<init>_InvokeMethod(EOS(STATIC_4258), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4272_0_<init>_StackPop(EOS(STATIC_4272), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4261_0_<init>_Return(EOS(STATIC_4261), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4275_0_<init>_Return(EOS(STATIC_4275), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4265_0_swap3_ArrayAccess(EOS(STATIC_4265), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271, java.lang.Object(ARRAY(i490)), i528) → 4277_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4277), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
4272_0_<init>_StackPop(EOS(STATIC_4272), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4286_0_<init>_Return(EOS(STATIC_4286), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4275_0_<init>_Return(EOS(STATIC_4275), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4289_0_swap3_ArrayAccess(EOS(STATIC_4289), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271)
4277_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4277), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) → 4296_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4296), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
4282_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4282), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i713, java.lang.Object(ARRAY(i490)), i713, i710, java.lang.Object(ARRAY(i490)), i689) → 3899_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3899), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i713, java.lang.Object(ARRAY(i490)), i713, i710, java.lang.Object(ARRAY(i490)), i689)
4286_0_<init>_Return(EOS(STATIC_4286), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4294_0_<init>_Return(EOS(STATIC_4294), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4289_0_swap3_ArrayAccess(EOS(STATIC_4289), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528, java.lang.Object(ARRAY(i490)), i271) → 4296_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4296), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
4294_0_<init>_Return(EOS(STATIC_4294), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4304_0_<init>_Return(EOS(STATIC_4304), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4296_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4296), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528) → 4326_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4326), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
4304_0_<init>_Return(EOS(STATIC_4304), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4314_0_<init>_Return(EOS(STATIC_4314), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4310_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4310), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i733, java.lang.Object(ARRAY(i490)), i733, i730, java.lang.Object(ARRAY(i490)), i733, i730) → 4223_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4223), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i733, java.lang.Object(ARRAY(i490)), i733, i730, java.lang.Object(ARRAY(i490)), i733, i730)
4314_0_<init>_Return(EOS(STATIC_4314), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4316_0_<init>_Return(EOS(STATIC_4316), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4316_0_<init>_Return(EOS(STATIC_4316), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4323_0_swap3_ArrayAccess(EOS(STATIC_4323), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528)
4321_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4321), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i743, java.lang.Object(ARRAY(i490)), i743, i740, java.lang.Object(ARRAY(i490)), i743, i740) → 4223_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4223), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i743, java.lang.Object(ARRAY(i490)), i743, i740, java.lang.Object(ARRAY(i490)), i743, i740)
4323_0_swap3_ArrayAccess(EOS(STATIC_4323), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i528) → 4326_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4326), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i271, i528)
4336_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4336), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i754, java.lang.Object(ARRAY(i490)), i754, i751, java.lang.Object(ARRAY(i490)), i754, i751) → 4223_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4223), java.lang.Object(ARRAY(i490)), i271, i528, java.lang.Object(ARRAY(i490)), i754, java.lang.Object(ARRAY(i490)), i754, i751, java.lang.Object(ARRAY(i490)), i754, i751)

Combined rules. Obtained 5 conditional rules for P and 12 conditional rules for R.


P rules:
2448_0_mysteriousRecursive_Load(EOS(STATIC_2448), java.lang.Object(ARRAY(x0)), x1, x1) → 3708_1_mysteriousRecursive_InvokeMethod(2448_0_mysteriousRecursive_Load(EOS(STATIC_2448), java.lang.Object(ARRAY(x0)), +(x1, 1), +(x1, 1)), java.lang.Object(ARRAY(x0)), x1, x1, java.lang.Object(ARRAY(x0)), +(x1, 1)) | &&(&&(&&(>(+(x1, 1), 0), <(x1, x0)), !(=(x1, -(x0, 1)))), >(x0, 0))
3708_1_mysteriousRecursive_InvokeMethod(3455_0_mysteriousRecursive_Return(EOS(STATIC_3455)), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x3) → 3708_1_mysteriousRecursive_InvokeMethod(2448_0_mysteriousRecursive_Load(EOS(STATIC_2448), java.lang.Object(ARRAY(x0)), +(x1, 1), +(x1, 1)), java.lang.Object(ARRAY(x0)), x1, +(x2, 1), java.lang.Object(ARRAY(x0)), +(x1, 1)) | &&(&&(&&(&&(>(+(x2, 1), 0), >(+(x1, 1), 0)), <(x1, x0)), >(+(x0, 1), 0)), >(x0, +(x2, 1)))
2448_0_mysteriousRecursive_Load(EOS(STATIC_2448), java.lang.Object(ARRAY(x0)), -(x0, 1), -(x0, 1)) → 2865_0_display_GE(EOS(STATIC_2865), java.lang.Object(ARRAY(x0)), -(x0, 1), java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), 0, 0, x0) | >(x0, 0)
2865_0_display_GE(EOS(STATIC_2865), java.lang.Object(ARRAY(x0)), x1, java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), x2, x2, x0) → 3708_1_mysteriousRecursive_InvokeMethod(2448_0_mysteriousRecursive_Load(EOS(STATIC_2448), java.lang.Object(ARRAY(x0)), +(x1, 1), +(x1, 1)), java.lang.Object(ARRAY(x0)), x1, x1, java.lang.Object(ARRAY(x0)), +(x1, 1)) | &&(&&(&&(>=(x2, x0), >(+(x1, 1), 0)), <(x1, x0)), >(+(x0, 1), 0))
2865_0_display_GE(EOS(STATIC_2865), java.lang.Object(ARRAY(x0)), x1, java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), x2, x2, x0) → 2865_0_display_GE(EOS(STATIC_2865), java.lang.Object(ARRAY(x0)), x1, java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), +(x2, 1), +(x2, 1), x0) | &&(&&(>(+(x2, 1), 0), <(x2, x0)), >(+(x0, 1), 0))
R rules:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4182), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x1, x2), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4277_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4277), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x1, x2), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4296_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4296), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x1, x2), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4326_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4326), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x1, x2), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3846_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3846), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x3), java.lang.Object(ARRAY(x0)), x4, x5, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x4, x5, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3917_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3917), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x3), java.lang.Object(ARRAY(x0)), x4, x5, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x4, x5, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x3), java.lang.Object(ARRAY(x0)), x4, x5, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x4, x5, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3783_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3783), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x1, x2), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3881_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3881), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x1, x2), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3911_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3911), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x1, x2), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3949_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3949), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x1, x2), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3998_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3998), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x1, x2), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1) → 4239_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4239), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)

Filtered ground terms:



2865_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8) → 2865_0_display_GE(x2, x3, x4, x5, x6, x7, x8)
Cond_2865_0_display_GE1(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_2865_0_display_GE1(x1, x3, x4, x5, x6, x7, x8, x9)
2448_0_mysteriousRecursive_Load(x1, x2, x3, x4) → 2448_0_mysteriousRecursive_Load(x2, x3, x4)
Cond_2865_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_2865_0_display_GE(x1, x3, x4, x5, x6, x7, x8, x9)
Cond_2448_0_mysteriousRecursive_Load1(x1, x2, x3, x4, x5) → Cond_2448_0_mysteriousRecursive_Load1(x1, x3, x4, x5)
Cond_3708_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_3708_1_mysteriousRecursive_InvokeMethod(x1, x3, x4, x5, x6, x7)
3455_0_mysteriousRecursive_Return(x1) → 3455_0_mysteriousRecursive_Return
Cond_2448_0_mysteriousRecursive_Load(x1, x2, x3, x4, x5) → Cond_2448_0_mysteriousRecursive_Load(x1, x3, x4, x5)
4239_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4239_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6)
3998_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 3998_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
3949_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 3949_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
3911_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 3911_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
3881_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 3881_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
3783_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 3783_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
3917_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 3917_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6)
3846_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 3846_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6)
4326_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4326_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
4296_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4296_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
4277_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4277_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
4182_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4182_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)

Filtered duplicate args:



2448_0_mysteriousRecursive_Load(x1, x2, x3) → 2448_0_mysteriousRecursive_Load(x1, x3)
Cond_2448_0_mysteriousRecursive_Load(x1, x2, x3, x4) → Cond_2448_0_mysteriousRecursive_Load(x1, x2, x4)
3708_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 3708_1_mysteriousRecursive_InvokeMethod(x1, x3, x4, x5, x6)
Cond_3708_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_3708_1_mysteriousRecursive_InvokeMethod(x1, x3, x4, x5, x6)
Cond_2448_0_mysteriousRecursive_Load1(x1, x2, x3, x4) → Cond_2448_0_mysteriousRecursive_Load1(x1, x2, x4)
2865_0_display_GE(x1, x2, x3, x4, x5, x6, x7) → 2865_0_display_GE(x2, x4, x6)
Cond_2865_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_2865_0_display_GE(x1, x3, x5, x7)
Cond_2865_0_display_GE1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_2865_0_display_GE1(x1, x3, x5, x7)
4182_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4182_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
4239_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5) → 4239_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5)
4277_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4277_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
4296_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4296_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
4326_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4326_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
3846_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5) → 3846_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5)
3917_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5) → 3917_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5)
3783_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 3783_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
3881_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 3881_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
3911_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 3911_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
3949_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 3949_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
3998_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 3998_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)

Filtered unneeded arguments:



3708_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5) → 3708_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4)
Cond_3708_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5) → Cond_3708_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4)
Cond_2865_0_display_GE(x1, x2, x3, x4) → Cond_2865_0_display_GE(x1, x2, x3)

Combined rules. Obtained 5 conditional rules for P and 12 conditional rules for R.


P rules:
2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), x1) → 3708_1_mysteriousRecursive_InvokeMethod(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0))) | &&(&&(&&(>(x1, -1), <(x1, x0)), !(=(x1, -(x0, 1)))), >(x0, 0))
3708_1_mysteriousRecursive_InvokeMethod(3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 3708_1_mysteriousRecursive_InvokeMethod(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, +(x2, 1), java.lang.Object(ARRAY(x0))) | &&(&&(&&(&&(>(x2, -1), >(x1, -1)), <(x1, x0)), >(x0, -1)), >(x0, +(x2, 1)))
2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), x0_-1) → 2865_0_display_GE(-(x0, 1), java.lang.Object(ARRAY(x0)), 0) | &&(>(x0, 0), =(x0_-1, -(x0, 1)))
2865_0_display_GE(x1, java.lang.Object(ARRAY(x0)), x2) → 3708_1_mysteriousRecursive_InvokeMethod(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0))) | &&(&&(&&(>=(x2, x0), >(x1, -1)), <(x1, x0)), >(x0, -1))
2865_0_display_GE(x1, java.lang.Object(ARRAY(x0)), x2) → 2865_0_display_GE(x1, java.lang.Object(ARRAY(x0)), +(x2, 1)) | &&(&&(>(x2, -1), <(x2, x0)), >(x0, -1))
R rules:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4277_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4296_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4326_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3846_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3917_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3783_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3881_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3911_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3949_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(3998_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)

Performed bisimulation on rules. Used the following equivalence classes: {[4239_0_mysteriousRecursive_InvokeMethod_4, 3846_0_mysteriousRecursive_InvokeMethod_4, 3917_0_mysteriousRecursive_InvokeMethod_4]=4239_0_mysteriousRecursive_InvokeMethod_4, [4182_0_mysteriousRecursive_InvokeMethod_3, 4277_0_mysteriousRecursive_InvokeMethod_3, 4296_0_mysteriousRecursive_InvokeMethod_3, 4326_0_mysteriousRecursive_InvokeMethod_3, 3783_0_mysteriousRecursive_InvokeMethod_3, 3881_0_mysteriousRecursive_InvokeMethod_3, 3911_0_mysteriousRecursive_InvokeMethod_3, 3949_0_mysteriousRecursive_InvokeMethod_3, 3998_0_mysteriousRecursive_InvokeMethod_3]=4182_0_mysteriousRecursive_InvokeMethod_3}


Finished conversion. Obtained 13 rules for P and 2 rules for R. System has predefined symbols.


P rules:
2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1, -1), <(x1, x0)), !(=(x1, -(x0, 1)))), >(x0, 0)), java.lang.Object(ARRAY(x0)), x1)
COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0)))
COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2, -1), >(x1, -1)), <(x1, x0)), >(x0, -1)), >(x0, +(x2, 1))), 3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0)))
COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, +(x2, 1), java.lang.Object(ARRAY(x0)))
COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x0_-1) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0, 0), =(x0_-1, -(x0, 1))), java.lang.Object(ARRAY(x0)), x0_-1)
COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0)), x0_-1) → 2865_0_DISPLAY_GE(-(x0, 1), java.lang.Object(ARRAY(x0)), 0)
2865_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2, x0), >(x1, -1)), <(x1, x0)), >(x0, -1)), x1, java.lang.Object(ARRAY(x0)), x2)
COND_2865_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0)))
COND_2865_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
2865_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2, -1), <(x2, x0)), >(x0, -1)), x1, java.lang.Object(ARRAY(x0)), x2)
COND_2865_0_DISPLAY_GE1(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 2865_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), +(x2, 1))
R rules:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)

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

Boolean, Integer


The ITRS R consists of the following rules:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)

The integer pair graph contains the following rules and edges:
(0): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0, java.lang.Object(ARRAY(x0[0])), x1[0])
(1): COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), x1[1] + 1), x1[1], x1[1], java.lang.Object(ARRAY(x0[1])))
(2): COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(3): 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(x2[3] > -1 && x1[3] > -1 && x1[3] < x0[3] && x0[3] > -1 && x0[3] > x2[3] + 1, 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))
(4): COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4]))) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), x1[4] + 1), x1[4], x2[4] + 1, java.lang.Object(ARRAY(x0[4])))
(5): COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), x1[5] + 1)
(6): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(x0[6] > 0 && x0_-1[6] = x0[6] - 1, java.lang.Object(ARRAY(x0[6])), x0_-1[6])
(7): COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(x0[7] - 1, java.lang.Object(ARRAY(x0[7])), 0)
(8): 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(x2[8] >= x0[8] && x1[8] > -1 && x1[8] < x0[8] && x0[8] > -1, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])
(9): COND_2865_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9]) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), x1[9] + 1), x1[9], x1[9], java.lang.Object(ARRAY(x0[9])))
(10): COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), x1[10] + 1)
(11): 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
(12): COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), x2[12] + 1)

(0) -> (1), if (x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0java.lang.Object(ARRAY(x0[0])) →* java.lang.Object(ARRAY(x0[1]))∧x1[0]* x1[1])


(0) -> (2), if (x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0java.lang.Object(ARRAY(x0[0])) →* java.lang.Object(ARRAY(x0[2]))∧x1[0]* x1[2])


(1) -> (3), if (2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), x1[1] + 1) →* 3455_0_mysteriousRecursive_Returnx1[1]* x1[3]x1[1]* x2[3]java.lang.Object(ARRAY(x0[1])) →* java.lang.Object(ARRAY(x0[3])))


(2) -> (0), if (java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[0]))∧x1[2] + 1* x1[0])


(2) -> (6), if (java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[6]))∧x1[2] + 1* x0_-1[6])


(3) -> (4), if (x2[3] > -1 && x1[3] > -1 && x1[3] < x0[3] && x0[3] > -1 && x0[3] > x2[3] + 1x1[3]* x1[4]x2[3]* x2[4]java.lang.Object(ARRAY(x0[3])) →* java.lang.Object(ARRAY(x0[4])))


(3) -> (5), if (x2[3] > -1 && x1[3] > -1 && x1[3] < x0[3] && x0[3] > -1 && x0[3] > x2[3] + 1x1[3]* x1[5]x2[3]* x2[5]java.lang.Object(ARRAY(x0[3])) →* java.lang.Object(ARRAY(x0[5])))


(4) -> (3), if (2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), x1[4] + 1) →* 3455_0_mysteriousRecursive_Returnx1[4]* x1[3]x2[4] + 1* x2[3]java.lang.Object(ARRAY(x0[4])) →* java.lang.Object(ARRAY(x0[3])))


(5) -> (0), if (java.lang.Object(ARRAY(x0[5])) →* java.lang.Object(ARRAY(x0[0]))∧x1[5] + 1* x1[0])


(5) -> (6), if (java.lang.Object(ARRAY(x0[5])) →* java.lang.Object(ARRAY(x0[6]))∧x1[5] + 1* x0_-1[6])


(6) -> (7), if (x0[6] > 0 && x0_-1[6] = x0[6] - 1java.lang.Object(ARRAY(x0[6])) →* java.lang.Object(ARRAY(x0[7]))∧x0_-1[6]* x0_-1[7])


(7) -> (8), if (x0[7] - 1* x1[8]java.lang.Object(ARRAY(x0[7])) →* java.lang.Object(ARRAY(x0[8]))∧0* x2[8])


(7) -> (11), if (x0[7] - 1* x1[11]java.lang.Object(ARRAY(x0[7])) →* java.lang.Object(ARRAY(x0[11]))∧0* x2[11])


(8) -> (9), if (x2[8] >= x0[8] && x1[8] > -1 && x1[8] < x0[8] && x0[8] > -1x1[8]* x1[9]java.lang.Object(ARRAY(x0[8])) →* java.lang.Object(ARRAY(x0[9]))∧x2[8]* x2[9])


(8) -> (10), if (x2[8] >= x0[8] && x1[8] > -1 && x1[8] < x0[8] && x0[8] > -1x1[8]* x1[10]java.lang.Object(ARRAY(x0[8])) →* java.lang.Object(ARRAY(x0[10]))∧x2[8]* x2[10])


(9) -> (3), if (2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), x1[9] + 1) →* 3455_0_mysteriousRecursive_Returnx1[9]* x1[3]x1[9]* x2[3]java.lang.Object(ARRAY(x0[9])) →* java.lang.Object(ARRAY(x0[3])))


(10) -> (0), if (java.lang.Object(ARRAY(x0[10])) →* java.lang.Object(ARRAY(x0[0]))∧x1[10] + 1* x1[0])


(10) -> (6), if (java.lang.Object(ARRAY(x0[10])) →* java.lang.Object(ARRAY(x0[6]))∧x1[10] + 1* x0_-1[6])


(11) -> (12), if (x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1x1[11]* x1[12]java.lang.Object(ARRAY(x0[11])) →* java.lang.Object(ARRAY(x0[12]))∧x2[11]* x2[12])


(12) -> (8), if (x1[12]* x1[8]java.lang.Object(ARRAY(x0[12])) →* java.lang.Object(ARRAY(x0[8]))∧x2[12] + 1* x2[8])


(12) -> (11), if (x1[12]* x1[11]java.lang.Object(ARRAY(x0[12])) →* java.lang.Object(ARRAY(x0[11]))∧x2[12] + 1* x2[11])



The set Q consists of the following terms:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x0, x1, java.lang.Object(ARRAY(x2)), x3), x4, x5, java.lang.Object(ARRAY(x2)))

(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@49275822 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 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1, -1), <(x1, x0)), !(=(x1, -(x0, 1)))), >(x0, 0)), java.lang.Object(ARRAY(x0)), x1) the following chains were created:
  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)), x1[1], x1[1], java.lang.Object(ARRAY(x0[1]))) which results in the following constraint:

    (1)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[1]))∧x1[0]=x1[1]2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (2)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUE2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (3)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [bni_59]x1[0] ≥ 0∧[(-1)bso_60] + x1[0] ≥ 0)



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

    (4)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [bni_59]x1[0] ≥ 0∧[(-1)bso_60] + x1[0] ≥ 0)



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

    (5)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [bni_59]x1[0] ≥ 0∧[(-1)bso_60] + x1[0] ≥ 0)



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

    (6)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[bni_59] ≥ 0∧0 ≥ 0∧[(-1)bni_59 + (-1)Bound*bni_59] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_60] ≥ 0)



  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)) which results in the following constraint:

    (7)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[2]))∧x1[0]=x1[2]2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (8)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUE2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (9)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [bni_59]x1[0] ≥ 0∧[(-1)bso_60] + x1[0] ≥ 0)



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

    (10)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [bni_59]x1[0] ≥ 0∧[(-1)bso_60] + x1[0] ≥ 0)



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

    (11)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_59 + (-1)Bound*bni_59] + [bni_59]x1[0] ≥ 0∧[(-1)bso_60] + x1[0] ≥ 0)



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

    (12)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[bni_59] ≥ 0∧0 ≥ 0∧[(-1)bni_59 + (-1)Bound*bni_59] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_60] ≥ 0)







For Pair COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0))) the following chains were created:
  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)), x1[1], x1[1], java.lang.Object(ARRAY(x0[1]))), 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) which results in the following constraint:

    (13)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[1]))∧x1[0]=x1[1]2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))=3455_0_mysteriousRecursive_Returnx1[1]=x1[3]x1[1]=x2[3]java.lang.Object(ARRAY(x0[1]))=java.lang.Object(ARRAY(x0[3])) ⇒ COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)), x1[1], x1[1], java.lang.Object(ARRAY(x0[1])))∧(UIncreasing(3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)), x1[1], x1[1], java.lang.Object(ARRAY(x0[1])))), ≥))



    We solved constraint (13) using rules (I), (II).




For Pair COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1)) the following chains were created:
  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)), 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]) which results in the following constraint:

    (14)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[2]))∧x1[0]=x1[2]java.lang.Object(ARRAY(x0[2]))=java.lang.Object(ARRAY(x0[0]1))∧+(x1[2], 1)=x1[0]1COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))



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

    (15)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))



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

    (16)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_61 + (-1)Bound*bni_61] ≥ 0∧[(-1)bso_62] ≥ 0)



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

    (17)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_61 + (-1)Bound*bni_61] ≥ 0∧[(-1)bso_62] ≥ 0)



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

    (18)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_61 + (-1)Bound*bni_61] ≥ 0∧[(-1)bso_62] ≥ 0)



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

    (19)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_61 + (-1)Bound*bni_61] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_62] ≥ 0)



  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)), 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]) which results in the following constraint:

    (20)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[2]))∧x1[0]=x1[2]java.lang.Object(ARRAY(x0[2]))=java.lang.Object(ARRAY(x0[6]))∧+(x1[2], 1)=x0_-1[6]COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))



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

    (21)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))



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

    (22)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_61 + (-1)Bound*bni_61] ≥ 0∧[(-1)bso_62] ≥ 0)



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

    (23)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_61 + (-1)Bound*bni_61] ≥ 0∧[(-1)bso_62] ≥ 0)



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

    (24)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_61 + (-1)Bound*bni_61] ≥ 0∧[(-1)bso_62] ≥ 0)



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

    (25)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_61 + (-1)Bound*bni_61] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_62] ≥ 0)







For Pair 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2, -1), >(x1, -1)), <(x1, x0)), >(x0, -1)), >(x0, +(x2, 1))), 3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) the following chains were created:
  • We consider the chain 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))), COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4]))) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1)), x1[4], +(x2[4], 1), java.lang.Object(ARRAY(x0[4]))) which results in the following constraint:

    (26)    (&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1)))=TRUEx1[3]=x1[4]x2[3]=x2[4]java.lang.Object(ARRAY(x0[3]))=java.lang.Object(ARRAY(x0[4])) ⇒ 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))∧(UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥))



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

    (27)    (&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1)))=TRUE3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))∧(UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥))



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

    (28)    (0 ≥ 0 ⇒ (UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥)∧[(-1)Bound*bni_63] + [bni_63]x2[3] + [(2)bni_63]x1[3] ≥ 0∧[1 + (-1)bso_64] + x2[3] + x1[3] ≥ 0)



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

    (29)    (0 ≥ 0 ⇒ (UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥)∧[(-1)Bound*bni_63] + [bni_63]x2[3] + [(2)bni_63]x1[3] ≥ 0∧[1 + (-1)bso_64] + x2[3] + x1[3] ≥ 0)



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

    (30)    (0 ≥ 0 ⇒ (UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥)∧[(-1)Bound*bni_63] + [bni_63]x2[3] + [(2)bni_63]x1[3] ≥ 0∧[1 + (-1)bso_64] + x2[3] + x1[3] ≥ 0)



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

    (31)    (0 ≥ 0 ⇒ (UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥)∧0 ≥ 0∧[bni_63] ≥ 0∧[(2)bni_63] ≥ 0∧[(-1)Bound*bni_63] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1 + (-1)bso_64] ≥ 0)



  • We consider the chain 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))), COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1)) which results in the following constraint:

    (32)    (&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1)))=TRUEx1[3]=x1[5]x2[3]=x2[5]java.lang.Object(ARRAY(x0[3]))=java.lang.Object(ARRAY(x0[5])) ⇒ 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))∧(UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥))



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

    (33)    (&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1)))=TRUE3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))∧(UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥))



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

    (34)    (0 ≥ 0 ⇒ (UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥)∧[(-1)Bound*bni_63] + [bni_63]x2[3] + [(2)bni_63]x1[3] ≥ 0∧[1 + (-1)bso_64] + x2[3] + x1[3] ≥ 0)



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

    (35)    (0 ≥ 0 ⇒ (UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥)∧[(-1)Bound*bni_63] + [bni_63]x2[3] + [(2)bni_63]x1[3] ≥ 0∧[1 + (-1)bso_64] + x2[3] + x1[3] ≥ 0)



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

    (36)    (0 ≥ 0 ⇒ (UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥)∧[(-1)Bound*bni_63] + [bni_63]x2[3] + [(2)bni_63]x1[3] ≥ 0∧[1 + (-1)bso_64] + x2[3] + x1[3] ≥ 0)



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

    (37)    (0 ≥ 0 ⇒ (UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥)∧0 ≥ 0∧[bni_63] ≥ 0∧[(2)bni_63] ≥ 0∧[(-1)Bound*bni_63] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1 + (-1)bso_64] ≥ 0)







For Pair COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, +(x2, 1), java.lang.Object(ARRAY(x0))) the following chains were created:
  • We consider the chain 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))), COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4]))) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1)), x1[4], +(x2[4], 1), java.lang.Object(ARRAY(x0[4]))), 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) which results in the following constraint:

    (38)    (&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1)))=TRUEx1[3]=x1[4]x2[3]=x2[4]java.lang.Object(ARRAY(x0[3]))=java.lang.Object(ARRAY(x0[4]))∧2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1))=3455_0_mysteriousRecursive_Returnx1[4]=x1[3]1+(x2[4], 1)=x2[3]1java.lang.Object(ARRAY(x0[4]))=java.lang.Object(ARRAY(x0[3]1)) ⇒ COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4])))≥NonInfC∧COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4])))≥3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1)), x1[4], +(x2[4], 1), java.lang.Object(ARRAY(x0[4])))∧(UIncreasing(3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1)), x1[4], +(x2[4], 1), java.lang.Object(ARRAY(x0[4])))), ≥))



    We solved constraint (38) using rules (I), (II).




For Pair COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1)) the following chains were created:
  • We consider the chain 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))), COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1)), 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]) which results in the following constraint:

    (39)    (&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1)))=TRUEx1[3]=x1[5]x2[3]=x2[5]java.lang.Object(ARRAY(x0[3]))=java.lang.Object(ARRAY(x0[5]))∧java.lang.Object(ARRAY(x0[5]))=java.lang.Object(ARRAY(x0[0]))∧+(x1[5], 1)=x1[0]COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5])))≥NonInfC∧COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5])))≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥))



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

    (40)    (&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1)))=TRUECOND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[3])), +(x1[3], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥))



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

    (41)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥)∧[(-1)bni_65 + (-1)Bound*bni_65] + [bni_65]x1[3] ≥ 0∧[(-1)bso_66] + x1[3] ≥ 0)



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

    (42)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥)∧[(-1)bni_65 + (-1)Bound*bni_65] + [bni_65]x1[3] ≥ 0∧[(-1)bso_66] + x1[3] ≥ 0)



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

    (43)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥)∧[(-1)bni_65 + (-1)Bound*bni_65] + [bni_65]x1[3] ≥ 0∧[(-1)bso_66] + x1[3] ≥ 0)



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

    (44)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_65] ≥ 0∧[(-1)bni_65 + (-1)Bound*bni_65] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_66] ≥ 0)



  • We consider the chain 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))), COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1)), 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]) which results in the following constraint:

    (45)    (&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1)))=TRUEx1[3]=x1[5]x2[3]=x2[5]java.lang.Object(ARRAY(x0[3]))=java.lang.Object(ARRAY(x0[5]))∧java.lang.Object(ARRAY(x0[5]))=java.lang.Object(ARRAY(x0[6]))∧+(x1[5], 1)=x0_-1[6]COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5])))≥NonInfC∧COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5])))≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥))



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

    (46)    (&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1)))=TRUECOND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[3])), +(x1[3], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥))



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

    (47)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥)∧[(-1)bni_65 + (-1)Bound*bni_65] + [bni_65]x1[3] ≥ 0∧[(-1)bso_66] + x1[3] ≥ 0)



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

    (48)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥)∧[(-1)bni_65 + (-1)Bound*bni_65] + [bni_65]x1[3] ≥ 0∧[(-1)bso_66] + x1[3] ≥ 0)



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

    (49)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥)∧[(-1)bni_65 + (-1)Bound*bni_65] + [bni_65]x1[3] ≥ 0∧[(-1)bso_66] + x1[3] ≥ 0)



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

    (50)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_65] ≥ 0∧[(-1)bni_65 + (-1)Bound*bni_65] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_66] ≥ 0)







For Pair 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x0_-1) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0, 0), =(x0_-1, -(x0, 1))), java.lang.Object(ARRAY(x0)), x0_-1) the following chains were created:
  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0) which results in the following constraint:

    (51)    (&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1)))=TRUEjava.lang.Object(ARRAY(x0[6]))=java.lang.Object(ARRAY(x0[7]))∧x0_-1[6]=x0_-1[7]2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥))



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

    (52)    (&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1)))=TRUE2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥))



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

    (53)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[(-1)bni_67 + (-1)Bound*bni_67] + [bni_67]x0-1[6] ≥ 0∧[(-1)bso_68] ≥ 0)



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

    (54)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[(-1)bni_67 + (-1)Bound*bni_67] + [bni_67]x0-1[6] ≥ 0∧[(-1)bso_68] ≥ 0)



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

    (55)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[(-1)bni_67 + (-1)Bound*bni_67] + [bni_67]x0-1[6] ≥ 0∧[(-1)bso_68] ≥ 0)



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

    (56)    (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[bni_67] ≥ 0∧0 ≥ 0∧[(-1)bni_67 + (-1)Bound*bni_67] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_68] ≥ 0)







For Pair COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0)), x0_-1) → 2865_0_DISPLAY_GE(-(x0, 1), java.lang.Object(ARRAY(x0)), 0) the following chains were created:
  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0), 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) which results in the following constraint:

    (57)    (&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1)))=TRUEjava.lang.Object(ARRAY(x0[6]))=java.lang.Object(ARRAY(x0[7]))∧x0_-1[6]=x0_-1[7]-(x0[7], 1)=x1[8]java.lang.Object(ARRAY(x0[7]))=java.lang.Object(ARRAY(x0[8]))∧0=x2[8]COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)∧(UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥))



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

    (58)    (&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1)))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥2865_0_DISPLAY_GE(-(x0[6], 1), java.lang.Object(ARRAY(x0[6])), 0)∧(UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥))



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

    (59)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(-1)bni_69 + (-1)Bound*bni_69] + [bni_69]x0-1[6] ≥ 0∧[(-1)bso_70] + x0-1[6] ≥ 0)



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

    (60)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(-1)bni_69 + (-1)Bound*bni_69] + [bni_69]x0-1[6] ≥ 0∧[(-1)bso_70] + x0-1[6] ≥ 0)



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

    (61)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(-1)bni_69 + (-1)Bound*bni_69] + [bni_69]x0-1[6] ≥ 0∧[(-1)bso_70] + x0-1[6] ≥ 0)



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

    (62)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[bni_69] ≥ 0∧0 ≥ 0∧[(-1)bni_69 + (-1)Bound*bni_69] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_70] ≥ 0)



  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0), 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) which results in the following constraint:

    (63)    (&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1)))=TRUEjava.lang.Object(ARRAY(x0[6]))=java.lang.Object(ARRAY(x0[7]))∧x0_-1[6]=x0_-1[7]-(x0[7], 1)=x1[11]java.lang.Object(ARRAY(x0[7]))=java.lang.Object(ARRAY(x0[11]))∧0=x2[11]COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)∧(UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥))



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

    (64)    (&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1)))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥2865_0_DISPLAY_GE(-(x0[6], 1), java.lang.Object(ARRAY(x0[6])), 0)∧(UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥))



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

    (65)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(-1)bni_69 + (-1)Bound*bni_69] + [bni_69]x0-1[6] ≥ 0∧[(-1)bso_70] + x0-1[6] ≥ 0)



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

    (66)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(-1)bni_69 + (-1)Bound*bni_69] + [bni_69]x0-1[6] ≥ 0∧[(-1)bso_70] + x0-1[6] ≥ 0)



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

    (67)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(-1)bni_69 + (-1)Bound*bni_69] + [bni_69]x0-1[6] ≥ 0∧[(-1)bso_70] + x0-1[6] ≥ 0)



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

    (68)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[bni_69] ≥ 0∧0 ≥ 0∧[(-1)bni_69 + (-1)Bound*bni_69] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_70] ≥ 0)







For Pair 2865_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2, x0), >(x1, -1)), <(x1, x0)), >(x0, -1)), x1, java.lang.Object(ARRAY(x0)), x2) the following chains were created:
  • We consider the chain 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]), COND_2865_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9]) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), +(x1[9], 1)), x1[9], x1[9], java.lang.Object(ARRAY(x0[9]))) which results in the following constraint:

    (69)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUEx1[8]=x1[9]java.lang.Object(ARRAY(x0[8]))=java.lang.Object(ARRAY(x0[9]))∧x2[8]=x2[9]2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])∧(UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥))



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

    (70)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUE2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])∧(UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥))



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

    (71)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[(-1)bni_71 + (-1)Bound*bni_71] + [bni_71]x2[8] + [bni_71]x1[8] ≥ 0∧[(-1)bso_72] + x1[8] ≥ 0)



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

    (72)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[(-1)bni_71 + (-1)Bound*bni_71] + [bni_71]x2[8] + [bni_71]x1[8] ≥ 0∧[(-1)bso_72] + x1[8] ≥ 0)



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

    (73)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[(-1)bni_71 + (-1)Bound*bni_71] + [bni_71]x2[8] + [bni_71]x1[8] ≥ 0∧[(-1)bso_72] + x1[8] ≥ 0)



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

    (74)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[bni_71] ≥ 0∧0 ≥ 0∧[bni_71] ≥ 0∧[(-1)bni_71 + (-1)Bound*bni_71] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_72] ≥ 0)



  • We consider the chain 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]), COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)) which results in the following constraint:

    (75)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUEx1[8]=x1[10]java.lang.Object(ARRAY(x0[8]))=java.lang.Object(ARRAY(x0[10]))∧x2[8]=x2[10]2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])∧(UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥))



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

    (76)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUE2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])∧(UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥))



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

    (77)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[(-1)bni_71 + (-1)Bound*bni_71] + [bni_71]x2[8] + [bni_71]x1[8] ≥ 0∧[(-1)bso_72] + x1[8] ≥ 0)



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

    (78)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[(-1)bni_71 + (-1)Bound*bni_71] + [bni_71]x2[8] + [bni_71]x1[8] ≥ 0∧[(-1)bso_72] + x1[8] ≥ 0)



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

    (79)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[(-1)bni_71 + (-1)Bound*bni_71] + [bni_71]x2[8] + [bni_71]x1[8] ≥ 0∧[(-1)bso_72] + x1[8] ≥ 0)



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

    (80)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[bni_71] ≥ 0∧0 ≥ 0∧[bni_71] ≥ 0∧[(-1)bni_71 + (-1)Bound*bni_71] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_72] ≥ 0)







For Pair COND_2865_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0))) the following chains were created:
  • We consider the chain 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]), COND_2865_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9]) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), +(x1[9], 1)), x1[9], x1[9], java.lang.Object(ARRAY(x0[9]))), 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) which results in the following constraint:

    (81)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUEx1[8]=x1[9]java.lang.Object(ARRAY(x0[8]))=java.lang.Object(ARRAY(x0[9]))∧x2[8]=x2[9]2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), +(x1[9], 1))=3455_0_mysteriousRecursive_Returnx1[9]=x1[3]x1[9]=x2[3]java.lang.Object(ARRAY(x0[9]))=java.lang.Object(ARRAY(x0[3])) ⇒ COND_2865_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9])≥NonInfC∧COND_2865_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9])≥3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), +(x1[9], 1)), x1[9], x1[9], java.lang.Object(ARRAY(x0[9])))∧(UIncreasing(3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), +(x1[9], 1)), x1[9], x1[9], java.lang.Object(ARRAY(x0[9])))), ≥))



    We solved constraint (81) using rules (I), (II).




For Pair COND_2865_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1)) the following chains were created:
  • We consider the chain 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]), COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)), 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]) which results in the following constraint:

    (82)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUEx1[8]=x1[10]java.lang.Object(ARRAY(x0[8]))=java.lang.Object(ARRAY(x0[10]))∧x2[8]=x2[10]java.lang.Object(ARRAY(x0[10]))=java.lang.Object(ARRAY(x0[0]))∧+(x1[10], 1)=x1[0]COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥NonInfC∧COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥))



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

    (83)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUECOND_2865_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧COND_2865_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[8])), +(x1[8], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥))



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

    (84)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(-1)bni_73 + (-1)Bound*bni_73] + [bni_73]x2[8] ≥ 0∧[(-1)bso_74] + x2[8] ≥ 0)



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

    (85)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(-1)bni_73 + (-1)Bound*bni_73] + [bni_73]x2[8] ≥ 0∧[(-1)bso_74] + x2[8] ≥ 0)



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

    (86)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(-1)bni_73 + (-1)Bound*bni_73] + [bni_73]x2[8] ≥ 0∧[(-1)bso_74] + x2[8] ≥ 0)



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

    (87)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[bni_73] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_73 + (-1)Bound*bni_73] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_74] ≥ 0)



  • We consider the chain 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]), COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)), 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]) which results in the following constraint:

    (88)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUEx1[8]=x1[10]java.lang.Object(ARRAY(x0[8]))=java.lang.Object(ARRAY(x0[10]))∧x2[8]=x2[10]java.lang.Object(ARRAY(x0[10]))=java.lang.Object(ARRAY(x0[6]))∧+(x1[10], 1)=x0_-1[6]COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥NonInfC∧COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥))



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

    (89)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUECOND_2865_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧COND_2865_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[8])), +(x1[8], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥))



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

    (90)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(-1)bni_73 + (-1)Bound*bni_73] + [bni_73]x2[8] ≥ 0∧[(-1)bso_74] + x2[8] ≥ 0)



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

    (91)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(-1)bni_73 + (-1)Bound*bni_73] + [bni_73]x2[8] ≥ 0∧[(-1)bso_74] + x2[8] ≥ 0)



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

    (92)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(-1)bni_73 + (-1)Bound*bni_73] + [bni_73]x2[8] ≥ 0∧[(-1)bso_74] + x2[8] ≥ 0)



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

    (93)    (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[bni_73] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_73 + (-1)Bound*bni_73] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_74] ≥ 0)







For Pair 2865_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2, -1), <(x2, x0)), >(x0, -1)), x1, java.lang.Object(ARRAY(x0)), x2) the following chains were created:
  • We consider the chain 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)) which results in the following constraint:

    (94)    (&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1))=TRUEx1[11]=x1[12]java.lang.Object(ARRAY(x0[11]))=java.lang.Object(ARRAY(x0[12]))∧x2[11]=x2[12]2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])∧(UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥))



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

    (95)    (&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1))=TRUE2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])∧(UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥))



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

    (96)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[(-1)bni_75 + (-1)Bound*bni_75] + [bni_75]x2[11] + [bni_75]x1[11] ≥ 0∧[(-1)bso_76] + x2[11] ≥ 0)



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

    (97)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[(-1)bni_75 + (-1)Bound*bni_75] + [bni_75]x2[11] + [bni_75]x1[11] ≥ 0∧[(-1)bso_76] + x2[11] ≥ 0)



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

    (98)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[(-1)bni_75 + (-1)Bound*bni_75] + [bni_75]x2[11] + [bni_75]x1[11] ≥ 0∧[(-1)bso_76] + x2[11] ≥ 0)



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

    (99)    (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[bni_75] ≥ 0∧0 ≥ 0∧[bni_75] ≥ 0∧[(-1)bni_75 + (-1)Bound*bni_75] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_76] ≥ 0)







For Pair COND_2865_0_DISPLAY_GE1(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 2865_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), +(x2, 1)) the following chains were created:
  • We consider the chain 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)), 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) which results in the following constraint:

    (100)    (&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1))=TRUEx1[11]=x1[12]java.lang.Object(ARRAY(x0[11]))=java.lang.Object(ARRAY(x0[12]))∧x2[11]=x2[12]x1[12]=x1[8]java.lang.Object(ARRAY(x0[12]))=java.lang.Object(ARRAY(x0[8]))∧+(x2[12], 1)=x2[8]COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥NonInfC∧COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))∧(UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥))



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

    (101)    (&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1))=TRUECOND_2865_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧COND_2865_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), +(x2[11], 1))∧(UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥))



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

    (102)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_77 + (-1)Bound*bni_77] + [bni_77]x1[11] ≥ 0∧[(-1)bso_78] ≥ 0)



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

    (103)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_77 + (-1)Bound*bni_77] + [bni_77]x1[11] ≥ 0∧[(-1)bso_78] ≥ 0)



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

    (104)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_77 + (-1)Bound*bni_77] + [bni_77]x1[11] ≥ 0∧[(-1)bso_78] ≥ 0)



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

    (105)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_77] ≥ 0∧[(-1)bni_77 + (-1)Bound*bni_77] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_78] ≥ 0)



  • We consider the chain 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)), 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) which results in the following constraint:

    (106)    (&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1))=TRUEx1[11]=x1[12]java.lang.Object(ARRAY(x0[11]))=java.lang.Object(ARRAY(x0[12]))∧x2[11]=x2[12]x1[12]=x1[11]1java.lang.Object(ARRAY(x0[12]))=java.lang.Object(ARRAY(x0[11]1))∧+(x2[12], 1)=x2[11]1COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥NonInfC∧COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))∧(UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥))



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

    (107)    (&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1))=TRUECOND_2865_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧COND_2865_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), +(x2[11], 1))∧(UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥))



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

    (108)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_77 + (-1)Bound*bni_77] + [bni_77]x1[11] ≥ 0∧[(-1)bso_78] ≥ 0)



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

    (109)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_77 + (-1)Bound*bni_77] + [bni_77]x1[11] ≥ 0∧[(-1)bso_78] ≥ 0)



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

    (110)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_77 + (-1)Bound*bni_77] + [bni_77]x1[11] ≥ 0∧[(-1)bso_78] ≥ 0)



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

    (111)    (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_77] ≥ 0∧[(-1)bni_77 + (-1)Bound*bni_77] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_78] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1, -1), <(x1, x0)), !(=(x1, -(x0, 1)))), >(x0, 0)), java.lang.Object(ARRAY(x0)), x1)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[bni_59] ≥ 0∧0 ≥ 0∧[(-1)bni_59 + (-1)Bound*bni_59] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_60] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[bni_59] ≥ 0∧0 ≥ 0∧[(-1)bni_59 + (-1)Bound*bni_59] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_60] ≥ 0)

  • COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0)))

  • COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
    • (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_61 + (-1)Bound*bni_61] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_62] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_61 + (-1)Bound*bni_61] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_62] ≥ 0)

  • 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2, -1), >(x1, -1)), <(x1, x0)), >(x0, -1)), >(x0, +(x2, 1))), 3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0)))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥)∧0 ≥ 0∧[bni_63] ≥ 0∧[(2)bni_63] ≥ 0∧[(-1)Bound*bni_63] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1 + (-1)bso_64] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))), ≥)∧0 ≥ 0∧[bni_63] ≥ 0∧[(2)bni_63] ≥ 0∧[(-1)Bound*bni_63] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1 + (-1)bso_64] ≥ 0)

  • COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, +(x2, 1), java.lang.Object(ARRAY(x0)))

  • COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
    • (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_65] ≥ 0∧[(-1)bni_65 + (-1)Bound*bni_65] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_66] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_65] ≥ 0∧[(-1)bni_65 + (-1)Bound*bni_65] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_66] ≥ 0)

  • 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x0_-1) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0, 0), =(x0_-1, -(x0, 1))), java.lang.Object(ARRAY(x0)), x0_-1)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[bni_67] ≥ 0∧0 ≥ 0∧[(-1)bni_67 + (-1)Bound*bni_67] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_68] ≥ 0)

  • COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0)), x0_-1) → 2865_0_DISPLAY_GE(-(x0, 1), java.lang.Object(ARRAY(x0)), 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[bni_69] ≥ 0∧0 ≥ 0∧[(-1)bni_69 + (-1)Bound*bni_69] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_70] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[bni_69] ≥ 0∧0 ≥ 0∧[(-1)bni_69 + (-1)Bound*bni_69] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧[(-1)bso_70] ≥ 0)

  • 2865_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2, x0), >(x1, -1)), <(x1, x0)), >(x0, -1)), x1, java.lang.Object(ARRAY(x0)), x2)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[bni_71] ≥ 0∧0 ≥ 0∧[bni_71] ≥ 0∧[(-1)bni_71 + (-1)Bound*bni_71] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_72] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[bni_71] ≥ 0∧0 ≥ 0∧[bni_71] ≥ 0∧[(-1)bni_71 + (-1)Bound*bni_71] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧[(-1)bso_72] ≥ 0)

  • COND_2865_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0)))

  • COND_2865_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
    • (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[bni_73] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_73 + (-1)Bound*bni_73] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_74] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[bni_73] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bni_73 + (-1)Bound*bni_73] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_74] ≥ 0)

  • 2865_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2, -1), <(x2, x0)), >(x0, -1)), x1, java.lang.Object(ARRAY(x0)), x2)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[bni_75] ≥ 0∧0 ≥ 0∧[bni_75] ≥ 0∧[(-1)bni_75 + (-1)Bound*bni_75] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_76] ≥ 0)

  • COND_2865_0_DISPLAY_GE1(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 2865_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), +(x2, 1))
    • (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_77] ≥ 0∧[(-1)bni_77 + (-1)Bound*bni_77] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_78] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧[bni_77] ≥ 0∧[(-1)bni_77 + (-1)Bound*bni_77] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_78] ≥ 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(3708_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4)) = 0   
POL(4182_0_mysteriousRecursive_InvokeMethod(x1, x2, x3)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(ARRAY(x1)) = 0   
POL(4239_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4)) = 0   
POL(2448_0_MYSTERIOUSRECURSIVE_LOAD(x1, x2)) = [-1] + x2 + [-1]x1   
POL(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(x1, x2, x3)) = [-1] + [-1]x2 + x1   
POL(&&(x1, x2)) = 0   
POL(>(x1, x2)) = 0   
POL(-1) = 0   
POL(<(x1, x2)) = 0   
POL(!(x1)) = 0   
POL(=(x1, x2)) = 0   
POL(-(x1, x2)) = 0   
POL(1) = 0   
POL(0) = 0   
POL(3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(x1, x2, x3, x4)) = [-1]x4 + x3 + [2]x2 + [-1]x1   
POL(2448_0_mysteriousRecursive_Load(x1, x2)) = 0   
POL(+(x1, x2)) = 0   
POL(3455_0_mysteriousRecursive_Return) = 0   
POL(COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + x3 + [-1]x2 + [-1]x1   
POL(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(x1, x2, x3)) = [-1] + x3 + [-1]x2 + [-1]x1   
POL(2865_0_DISPLAY_GE(x1, x2, x3)) = [-1] + x3 + [-1]x2 + x1   
POL(COND_2865_0_DISPLAY_GE(x1, x2, x3, x4)) = [-1] + x4 + [-1]x3   
POL(>=(x1, x2)) = 0   
POL(COND_2865_0_DISPLAY_GE1(x1, x2, x3, x4)) = [-1] + [-1]x3 + x2 + [-1]x1   

The following pairs are in P>:

COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)), x1[1], x1[1], java.lang.Object(ARRAY(x0[1])))
3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))
COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4]))) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1)), x1[4], +(x2[4], 1), java.lang.Object(ARRAY(x0[4])))
COND_2865_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9]) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), +(x1[9], 1)), x1[9], x1[9], java.lang.Object(ARRAY(x0[9])))

The following pairs are in Pbound:

2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])
COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)), x1[1], x1[1], java.lang.Object(ARRAY(x0[1])))
COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3455_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))
COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4]))) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1)), x1[4], +(x2[4], 1), java.lang.Object(ARRAY(x0[4])))
COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))
2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])
COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)
2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])
COND_2865_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9]) → 3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(2448_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), +(x1[9], 1)), x1[9], x1[9], java.lang.Object(ARRAY(x0[9])))
COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))
2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))

The following pairs are in P:

2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])
COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))
2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])
COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)
2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])
COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))
2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))

At least the following rules have been oriented under context sensitive arithmetic replacement:

&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1

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

Boolean, Integer


The ITRS R consists of the following rules:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)

The integer pair graph contains the following rules and edges:
(0): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0, java.lang.Object(ARRAY(x0[0])), x1[0])
(2): COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(5): COND_3708_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3455_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), x1[5] + 1)
(6): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(x0[6] > 0 && x0_-1[6] = x0[6] - 1, java.lang.Object(ARRAY(x0[6])), x0_-1[6])
(7): COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(x0[7] - 1, java.lang.Object(ARRAY(x0[7])), 0)
(8): 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(x2[8] >= x0[8] && x1[8] > -1 && x1[8] < x0[8] && x0[8] > -1, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])
(10): COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), x1[10] + 1)
(11): 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
(12): COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), x2[12] + 1)

(2) -> (0), if (java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[0]))∧x1[2] + 1* x1[0])


(5) -> (0), if (java.lang.Object(ARRAY(x0[5])) →* java.lang.Object(ARRAY(x0[0]))∧x1[5] + 1* x1[0])


(10) -> (0), if (java.lang.Object(ARRAY(x0[10])) →* java.lang.Object(ARRAY(x0[0]))∧x1[10] + 1* x1[0])


(0) -> (2), if (x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0java.lang.Object(ARRAY(x0[0])) →* java.lang.Object(ARRAY(x0[2]))∧x1[0]* x1[2])


(2) -> (6), if (java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[6]))∧x1[2] + 1* x0_-1[6])


(5) -> (6), if (java.lang.Object(ARRAY(x0[5])) →* java.lang.Object(ARRAY(x0[6]))∧x1[5] + 1* x0_-1[6])


(10) -> (6), if (java.lang.Object(ARRAY(x0[10])) →* java.lang.Object(ARRAY(x0[6]))∧x1[10] + 1* x0_-1[6])


(6) -> (7), if (x0[6] > 0 && x0_-1[6] = x0[6] - 1java.lang.Object(ARRAY(x0[6])) →* java.lang.Object(ARRAY(x0[7]))∧x0_-1[6]* x0_-1[7])


(7) -> (8), if (x0[7] - 1* x1[8]java.lang.Object(ARRAY(x0[7])) →* java.lang.Object(ARRAY(x0[8]))∧0* x2[8])


(12) -> (8), if (x1[12]* x1[8]java.lang.Object(ARRAY(x0[12])) →* java.lang.Object(ARRAY(x0[8]))∧x2[12] + 1* x2[8])


(8) -> (10), if (x2[8] >= x0[8] && x1[8] > -1 && x1[8] < x0[8] && x0[8] > -1x1[8]* x1[10]java.lang.Object(ARRAY(x0[8])) →* java.lang.Object(ARRAY(x0[10]))∧x2[8]* x2[10])


(7) -> (11), if (x0[7] - 1* x1[11]java.lang.Object(ARRAY(x0[7])) →* java.lang.Object(ARRAY(x0[11]))∧0* x2[11])


(12) -> (11), if (x1[12]* x1[11]java.lang.Object(ARRAY(x0[12])) →* java.lang.Object(ARRAY(x0[11]))∧x2[12] + 1* x2[11])


(11) -> (12), if (x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1x1[11]* x1[12]java.lang.Object(ARRAY(x0[11])) →* java.lang.Object(ARRAY(x0[12]))∧x2[11]* x2[12])



The set Q consists of the following terms:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x0, x1, java.lang.Object(ARRAY(x2)), x3), x4, x5, java.lang.Object(ARRAY(x2)))

(10) IDependencyGraphProof (EQUIVALENT transformation)

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

(11) 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:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4239_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)

The integer pair graph contains the following rules and edges:
(12): COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), x2[12] + 1)
(11): 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
(10): COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), x1[10] + 1)
(8): 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(x2[8] >= x0[8] && x1[8] > -1 && x1[8] < x0[8] && x0[8] > -1, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])
(7): COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(x0[7] - 1, java.lang.Object(ARRAY(x0[7])), 0)
(6): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(x0[6] > 0 && x0_-1[6] = x0[6] - 1, java.lang.Object(ARRAY(x0[6])), x0_-1[6])
(2): COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(0): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0, java.lang.Object(ARRAY(x0[0])), x1[0])

(2) -> (0), if (java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[0]))∧x1[2] + 1* x1[0])


(10) -> (0), if (java.lang.Object(ARRAY(x0[10])) →* java.lang.Object(ARRAY(x0[0]))∧x1[10] + 1* x1[0])


(0) -> (2), if (x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0java.lang.Object(ARRAY(x0[0])) →* java.lang.Object(ARRAY(x0[2]))∧x1[0]* x1[2])


(2) -> (6), if (java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[6]))∧x1[2] + 1* x0_-1[6])


(10) -> (6), if (java.lang.Object(ARRAY(x0[10])) →* java.lang.Object(ARRAY(x0[6]))∧x1[10] + 1* x0_-1[6])


(6) -> (7), if (x0[6] > 0 && x0_-1[6] = x0[6] - 1java.lang.Object(ARRAY(x0[6])) →* java.lang.Object(ARRAY(x0[7]))∧x0_-1[6]* x0_-1[7])


(7) -> (8), if (x0[7] - 1* x1[8]java.lang.Object(ARRAY(x0[7])) →* java.lang.Object(ARRAY(x0[8]))∧0* x2[8])


(12) -> (8), if (x1[12]* x1[8]java.lang.Object(ARRAY(x0[12])) →* java.lang.Object(ARRAY(x0[8]))∧x2[12] + 1* x2[8])


(8) -> (10), if (x2[8] >= x0[8] && x1[8] > -1 && x1[8] < x0[8] && x0[8] > -1x1[8]* x1[10]java.lang.Object(ARRAY(x0[8])) →* java.lang.Object(ARRAY(x0[10]))∧x2[8]* x2[10])


(7) -> (11), if (x0[7] - 1* x1[11]java.lang.Object(ARRAY(x0[7])) →* java.lang.Object(ARRAY(x0[11]))∧0* x2[11])


(12) -> (11), if (x1[12]* x1[11]java.lang.Object(ARRAY(x0[12])) →* java.lang.Object(ARRAY(x0[11]))∧x2[12] + 1* x2[11])


(11) -> (12), if (x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1x1[11]* x1[12]java.lang.Object(ARRAY(x0[11])) →* java.lang.Object(ARRAY(x0[12]))∧x2[11]* x2[12])



The set Q consists of the following terms:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x0, x1, java.lang.Object(ARRAY(x2)), x3), x4, x5, java.lang.Object(ARRAY(x2)))

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

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


R is empty.

The integer pair graph contains the following rules and edges:
(12): COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), x2[12] + 1)
(11): 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
(10): COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), x1[10] + 1)
(8): 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(x2[8] >= x0[8] && x1[8] > -1 && x1[8] < x0[8] && x0[8] > -1, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])
(7): COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(x0[7] - 1, java.lang.Object(ARRAY(x0[7])), 0)
(6): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(x0[6] > 0 && x0_-1[6] = x0[6] - 1, java.lang.Object(ARRAY(x0[6])), x0_-1[6])
(2): COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(0): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0, java.lang.Object(ARRAY(x0[0])), x1[0])

(2) -> (0), if (java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[0]))∧x1[2] + 1* x1[0])


(10) -> (0), if (java.lang.Object(ARRAY(x0[10])) →* java.lang.Object(ARRAY(x0[0]))∧x1[10] + 1* x1[0])


(0) -> (2), if (x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0java.lang.Object(ARRAY(x0[0])) →* java.lang.Object(ARRAY(x0[2]))∧x1[0]* x1[2])


(2) -> (6), if (java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[6]))∧x1[2] + 1* x0_-1[6])


(10) -> (6), if (java.lang.Object(ARRAY(x0[10])) →* java.lang.Object(ARRAY(x0[6]))∧x1[10] + 1* x0_-1[6])


(6) -> (7), if (x0[6] > 0 && x0_-1[6] = x0[6] - 1java.lang.Object(ARRAY(x0[6])) →* java.lang.Object(ARRAY(x0[7]))∧x0_-1[6]* x0_-1[7])


(7) -> (8), if (x0[7] - 1* x1[8]java.lang.Object(ARRAY(x0[7])) →* java.lang.Object(ARRAY(x0[8]))∧0* x2[8])


(12) -> (8), if (x1[12]* x1[8]java.lang.Object(ARRAY(x0[12])) →* java.lang.Object(ARRAY(x0[8]))∧x2[12] + 1* x2[8])


(8) -> (10), if (x2[8] >= x0[8] && x1[8] > -1 && x1[8] < x0[8] && x0[8] > -1x1[8]* x1[10]java.lang.Object(ARRAY(x0[8])) →* java.lang.Object(ARRAY(x0[10]))∧x2[8]* x2[10])


(7) -> (11), if (x0[7] - 1* x1[11]java.lang.Object(ARRAY(x0[7])) →* java.lang.Object(ARRAY(x0[11]))∧0* x2[11])


(12) -> (11), if (x1[12]* x1[11]java.lang.Object(ARRAY(x0[12])) →* java.lang.Object(ARRAY(x0[11]))∧x2[12] + 1* x2[11])


(11) -> (12), if (x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1x1[11]* x1[12]java.lang.Object(ARRAY(x0[11])) →* java.lang.Object(ARRAY(x0[12]))∧x2[11]* x2[12])



The set Q consists of the following terms:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x0, x1, java.lang.Object(ARRAY(x2)), x3), x4, x5, java.lang.Object(ARRAY(x2)))

(14) 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.IdpDefaultShapeHeuristic@265e5b08 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

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


For Pair COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)) the following chains were created:
  • We consider the chain 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)), 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) which results in the following constraint:

    (1)    (&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1))=TRUEx1[11]=x1[12]java.lang.Object(ARRAY(x0[11]))=java.lang.Object(ARRAY(x0[12]))∧x2[11]=x2[12]x1[12]=x1[8]java.lang.Object(ARRAY(x0[12]))=java.lang.Object(ARRAY(x0[8]))∧+(x2[12], 1)=x2[8]COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥NonInfC∧COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))∧(UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥))



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

    (2)    (>(x0[11], -1)=TRUE>(x2[11], -1)=TRUE<(x2[11], x0[11])=TRUECOND_2865_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧COND_2865_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), +(x2[11], 1))∧(UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥))



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

    (3)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[bni_38 + (-1)Bound*bni_38] + [bni_38]x0[11] + [(-1)bni_38]x1[11] ≥ 0∧[(-1)bso_39] ≥ 0)



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

    (4)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[bni_38 + (-1)Bound*bni_38] + [bni_38]x0[11] + [(-1)bni_38]x1[11] ≥ 0∧[(-1)bso_39] ≥ 0)



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

    (5)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[bni_38 + (-1)Bound*bni_38] + [bni_38]x0[11] + [(-1)bni_38]x1[11] ≥ 0∧[(-1)bso_39] ≥ 0)



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

    (6)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_38] = 0∧[bni_38 + (-1)Bound*bni_38] + [bni_38]x0[11] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)



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

    (7)    ([1] + x2[11] + x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_38] = 0∧[(2)bni_38 + (-1)Bound*bni_38] + [bni_38]x2[11] + [bni_38]x0[11] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)



  • We consider the chain 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)), 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) which results in the following constraint:

    (8)    (&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1))=TRUEx1[11]=x1[12]java.lang.Object(ARRAY(x0[11]))=java.lang.Object(ARRAY(x0[12]))∧x2[11]=x2[12]x1[12]=x1[11]1java.lang.Object(ARRAY(x0[12]))=java.lang.Object(ARRAY(x0[11]1))∧+(x2[12], 1)=x2[11]1COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥NonInfC∧COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))∧(UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥))



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

    (9)    (>(x0[11], -1)=TRUE>(x2[11], -1)=TRUE<(x2[11], x0[11])=TRUECOND_2865_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧COND_2865_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), +(x2[11], 1))∧(UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥))



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

    (10)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[bni_38 + (-1)Bound*bni_38] + [bni_38]x0[11] + [(-1)bni_38]x1[11] ≥ 0∧[(-1)bso_39] ≥ 0)



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

    (11)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[bni_38 + (-1)Bound*bni_38] + [bni_38]x0[11] + [(-1)bni_38]x1[11] ≥ 0∧[(-1)bso_39] ≥ 0)



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

    (12)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[bni_38 + (-1)Bound*bni_38] + [bni_38]x0[11] + [(-1)bni_38]x1[11] ≥ 0∧[(-1)bso_39] ≥ 0)



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

    (13)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_38] = 0∧[bni_38 + (-1)Bound*bni_38] + [bni_38]x0[11] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)



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

    (14)    ([1] + x2[11] + x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_38] = 0∧[(2)bni_38 + (-1)Bound*bni_38] + [bni_38]x2[11] + [bni_38]x0[11] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)







For Pair 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) the following chains were created:
  • We consider the chain 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)) which results in the following constraint:

    (15)    (&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1))=TRUEx1[11]=x1[12]java.lang.Object(ARRAY(x0[11]))=java.lang.Object(ARRAY(x0[12]))∧x2[11]=x2[12]2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])∧(UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥))



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

    (16)    (>(x0[11], -1)=TRUE>(x2[11], -1)=TRUE<(x2[11], x0[11])=TRUE2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])∧(UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥))



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

    (17)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[bni_40 + (-1)Bound*bni_40] + [bni_40]x0[11] + [(-1)bni_40]x1[11] ≥ 0∧[(-1)bso_41] ≥ 0)



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

    (18)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[bni_40 + (-1)Bound*bni_40] + [bni_40]x0[11] + [(-1)bni_40]x1[11] ≥ 0∧[(-1)bso_41] ≥ 0)



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

    (19)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[bni_40 + (-1)Bound*bni_40] + [bni_40]x0[11] + [(-1)bni_40]x1[11] ≥ 0∧[(-1)bso_41] ≥ 0)



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

    (20)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[(-1)bni_40] = 0∧[bni_40 + (-1)Bound*bni_40] + [bni_40]x0[11] ≥ 0∧0 = 0∧[(-1)bso_41] ≥ 0)



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

    (21)    ([1] + x2[11] + x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[(-1)bni_40] = 0∧[(2)bni_40 + (-1)Bound*bni_40] + [bni_40]x2[11] + [bni_40]x0[11] ≥ 0∧0 = 0∧[(-1)bso_41] ≥ 0)







For Pair COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)) the following chains were created:
  • We consider the chain 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]), COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)), 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]) which results in the following constraint:

    (22)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUEx1[8]=x1[10]java.lang.Object(ARRAY(x0[8]))=java.lang.Object(ARRAY(x0[10]))∧x2[8]=x2[10]java.lang.Object(ARRAY(x0[10]))=java.lang.Object(ARRAY(x0[0]))∧+(x1[10], 1)=x1[0]COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥NonInfC∧COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥))



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

    (23)    (>(x0[8], -1)=TRUE<(x1[8], x0[8])=TRUE>=(x2[8], x0[8])=TRUE>(x1[8], -1)=TRUECOND_2865_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧COND_2865_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[8])), +(x1[8], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥))



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

    (24)    (x0[8] ≥ 0∧x0[8] + [-1] + [-1]x1[8] ≥ 0∧x2[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] + [(-1)bni_42]x1[8] ≥ 0∧[(-1)bso_43] ≥ 0)



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

    (25)    (x0[8] ≥ 0∧x0[8] + [-1] + [-1]x1[8] ≥ 0∧x2[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] + [(-1)bni_42]x1[8] ≥ 0∧[(-1)bso_43] ≥ 0)



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

    (26)    (x0[8] ≥ 0∧x0[8] + [-1] + [-1]x1[8] ≥ 0∧x2[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] + [(-1)bni_42]x1[8] ≥ 0∧[(-1)bso_43] ≥ 0)



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

    (27)    ([1] + x1[8] + x0[8] ≥ 0∧x0[8] ≥ 0∧x2[8] + [-1] + [-1]x1[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(2)bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] ≥ 0∧[(-1)bso_43] ≥ 0)



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

    (28)    ([1] + x1[8] + x0[8] ≥ 0∧x0[8] ≥ 0∧x2[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(2)bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] ≥ 0∧[(-1)bso_43] ≥ 0)



  • We consider the chain 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]), COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)), 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]) which results in the following constraint:

    (29)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUEx1[8]=x1[10]java.lang.Object(ARRAY(x0[8]))=java.lang.Object(ARRAY(x0[10]))∧x2[8]=x2[10]java.lang.Object(ARRAY(x0[10]))=java.lang.Object(ARRAY(x0[6]))∧+(x1[10], 1)=x0_-1[6]COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥NonInfC∧COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥))



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

    (30)    (>(x0[8], -1)=TRUE<(x1[8], x0[8])=TRUE>=(x2[8], x0[8])=TRUE>(x1[8], -1)=TRUECOND_2865_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧COND_2865_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[8])), +(x1[8], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥))



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

    (31)    (x0[8] ≥ 0∧x0[8] + [-1] + [-1]x1[8] ≥ 0∧x2[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] + [(-1)bni_42]x1[8] ≥ 0∧[(-1)bso_43] ≥ 0)



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

    (32)    (x0[8] ≥ 0∧x0[8] + [-1] + [-1]x1[8] ≥ 0∧x2[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] + [(-1)bni_42]x1[8] ≥ 0∧[(-1)bso_43] ≥ 0)



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

    (33)    (x0[8] ≥ 0∧x0[8] + [-1] + [-1]x1[8] ≥ 0∧x2[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] + [(-1)bni_42]x1[8] ≥ 0∧[(-1)bso_43] ≥ 0)



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

    (34)    ([1] + x1[8] + x0[8] ≥ 0∧x0[8] ≥ 0∧x2[8] + [-1] + [-1]x1[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(2)bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] ≥ 0∧[(-1)bso_43] ≥ 0)



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

    (35)    ([1] + x1[8] + x0[8] ≥ 0∧x0[8] ≥ 0∧x2[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(2)bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] ≥ 0∧[(-1)bso_43] ≥ 0)







For Pair 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) the following chains were created:
  • We consider the chain 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]), COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)) which results in the following constraint:

    (36)    (&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1))=TRUEx1[8]=x1[10]java.lang.Object(ARRAY(x0[8]))=java.lang.Object(ARRAY(x0[10]))∧x2[8]=x2[10]2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])∧(UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥))



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

    (37)    (>(x0[8], -1)=TRUE<(x1[8], x0[8])=TRUE>=(x2[8], x0[8])=TRUE>(x1[8], -1)=TRUE2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])∧(UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥))



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

    (38)    (x0[8] ≥ 0∧x0[8] + [-1] + [-1]x1[8] ≥ 0∧x2[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[bni_44 + (-1)Bound*bni_44] + [bni_44]x0[8] + [(-1)bni_44]x1[8] ≥ 0∧[(-1)bso_45] ≥ 0)



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

    (39)    (x0[8] ≥ 0∧x0[8] + [-1] + [-1]x1[8] ≥ 0∧x2[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[bni_44 + (-1)Bound*bni_44] + [bni_44]x0[8] + [(-1)bni_44]x1[8] ≥ 0∧[(-1)bso_45] ≥ 0)



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

    (40)    (x0[8] ≥ 0∧x0[8] + [-1] + [-1]x1[8] ≥ 0∧x2[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[bni_44 + (-1)Bound*bni_44] + [bni_44]x0[8] + [(-1)bni_44]x1[8] ≥ 0∧[(-1)bso_45] ≥ 0)



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

    (41)    ([1] + x1[8] + x0[8] ≥ 0∧x0[8] ≥ 0∧x2[8] + [-1] + [-1]x1[8] + [-1]x0[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[(2)bni_44 + (-1)Bound*bni_44] + [bni_44]x0[8] ≥ 0∧[(-1)bso_45] ≥ 0)



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

    (42)    ([1] + x1[8] + x0[8] ≥ 0∧x0[8] ≥ 0∧x2[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[(2)bni_44 + (-1)Bound*bni_44] + [bni_44]x0[8] ≥ 0∧[(-1)bso_45] ≥ 0)







For Pair COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0) the following chains were created:
  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0), 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) which results in the following constraint:

    (43)    (&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1)))=TRUEjava.lang.Object(ARRAY(x0[6]))=java.lang.Object(ARRAY(x0[7]))∧x0_-1[6]=x0_-1[7]-(x0[7], 1)=x1[8]java.lang.Object(ARRAY(x0[7]))=java.lang.Object(ARRAY(x0[8]))∧0=x2[8]COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)∧(UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥))



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

    (44)    (>(x0[6], 0)=TRUE>=(x0_-1[6], -(x0[6], 1))=TRUE<=(x0_-1[6], -(x0[6], 1))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥2865_0_DISPLAY_GE(-(x0[6], 1), java.lang.Object(ARRAY(x0[6])), 0)∧(UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥))



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

    (45)    (x0[6] + [-1] ≥ 0∧x0-1[6] + [1] + [-1]x0[6] ≥ 0∧x0[6] + [-1] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(2)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]x0-1[6] + [bni_46]x0[6] ≥ 0∧[(-1)bso_47] + [-1]x0-1[6] + x0[6] ≥ 0)



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

    (46)    (x0[6] + [-1] ≥ 0∧x0-1[6] + [1] + [-1]x0[6] ≥ 0∧x0[6] + [-1] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(2)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]x0-1[6] + [bni_46]x0[6] ≥ 0∧[(-1)bso_47] + [-1]x0-1[6] + x0[6] ≥ 0)



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

    (47)    (x0[6] + [-1] ≥ 0∧x0-1[6] + [1] + [-1]x0[6] ≥ 0∧x0[6] + [-1] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(2)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]x0-1[6] + [bni_46]x0[6] ≥ 0∧[(-1)bso_47] + [-1]x0-1[6] + x0[6] ≥ 0)



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

    (48)    (x0[6] ≥ 0∧x0-1[6] + [-1]x0[6] ≥ 0∧x0[6] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(3)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]x0-1[6] + [bni_46]x0[6] ≥ 0∧[1 + (-1)bso_47] + [-1]x0-1[6] + x0[6] ≥ 0)



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

    (49)    (x0-1[6] + x0[6] ≥ 0∧[-1]x0[6] ≥ 0∧x0[6] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(3)bni_46 + (-1)Bound*bni_46] + [bni_46]x0[6] ≥ 0∧[1 + (-1)bso_47] + x0[6] ≥ 0)



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

    (50)    (x0-1[6] ≥ 0∧0 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(3)bni_46 + (-1)Bound*bni_46] ≥ 0∧[1 + (-1)bso_47] ≥ 0)



  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0), 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) which results in the following constraint:

    (51)    (&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1)))=TRUEjava.lang.Object(ARRAY(x0[6]))=java.lang.Object(ARRAY(x0[7]))∧x0_-1[6]=x0_-1[7]-(x0[7], 1)=x1[11]java.lang.Object(ARRAY(x0[7]))=java.lang.Object(ARRAY(x0[11]))∧0=x2[11]COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)∧(UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥))



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

    (52)    (>(x0[6], 0)=TRUE>=(x0_-1[6], -(x0[6], 1))=TRUE<=(x0_-1[6], -(x0[6], 1))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥2865_0_DISPLAY_GE(-(x0[6], 1), java.lang.Object(ARRAY(x0[6])), 0)∧(UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥))



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

    (53)    (x0[6] + [-1] ≥ 0∧x0-1[6] + [1] + [-1]x0[6] ≥ 0∧x0[6] + [-1] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(2)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]x0-1[6] + [bni_46]x0[6] ≥ 0∧[(-1)bso_47] + [-1]x0-1[6] + x0[6] ≥ 0)



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

    (54)    (x0[6] + [-1] ≥ 0∧x0-1[6] + [1] + [-1]x0[6] ≥ 0∧x0[6] + [-1] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(2)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]x0-1[6] + [bni_46]x0[6] ≥ 0∧[(-1)bso_47] + [-1]x0-1[6] + x0[6] ≥ 0)



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

    (55)    (x0[6] + [-1] ≥ 0∧x0-1[6] + [1] + [-1]x0[6] ≥ 0∧x0[6] + [-1] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(2)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]x0-1[6] + [bni_46]x0[6] ≥ 0∧[(-1)bso_47] + [-1]x0-1[6] + x0[6] ≥ 0)



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

    (56)    (x0[6] ≥ 0∧x0-1[6] + [-1]x0[6] ≥ 0∧x0[6] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(3)bni_46 + (-1)Bound*bni_46] + [(-1)bni_46]x0-1[6] + [bni_46]x0[6] ≥ 0∧[1 + (-1)bso_47] + [-1]x0-1[6] + x0[6] ≥ 0)



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

    (57)    (x0-1[6] + x0[6] ≥ 0∧[-1]x0[6] ≥ 0∧x0[6] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(3)bni_46 + (-1)Bound*bni_46] + [bni_46]x0[6] ≥ 0∧[1 + (-1)bso_47] + x0[6] ≥ 0)



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

    (58)    (x0-1[6] ≥ 0∧0 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(3)bni_46 + (-1)Bound*bni_46] ≥ 0∧[1 + (-1)bso_47] ≥ 0)







For Pair 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]) the following chains were created:
  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0) which results in the following constraint:

    (59)    (&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1)))=TRUEjava.lang.Object(ARRAY(x0[6]))=java.lang.Object(ARRAY(x0[7]))∧x0_-1[6]=x0_-1[7]2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥))



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

    (60)    (>(x0[6], 0)=TRUE>=(x0_-1[6], -(x0[6], 1))=TRUE<=(x0_-1[6], -(x0[6], 1))=TRUE2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥))



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

    (61)    (x0[6] + [-1] ≥ 0∧x0-1[6] + [1] + [-1]x0[6] ≥ 0∧x0[6] + [-1] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[(2)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]x0-1[6] + [bni_48]x0[6] ≥ 0∧[(-1)bso_49] ≥ 0)



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

    (62)    (x0[6] + [-1] ≥ 0∧x0-1[6] + [1] + [-1]x0[6] ≥ 0∧x0[6] + [-1] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[(2)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]x0-1[6] + [bni_48]x0[6] ≥ 0∧[(-1)bso_49] ≥ 0)



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

    (63)    (x0[6] + [-1] ≥ 0∧x0-1[6] + [1] + [-1]x0[6] ≥ 0∧x0[6] + [-1] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[(2)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]x0-1[6] + [bni_48]x0[6] ≥ 0∧[(-1)bso_49] ≥ 0)



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

    (64)    (x0[6] ≥ 0∧x0-1[6] + [-1]x0[6] ≥ 0∧x0[6] + [-1]x0-1[6] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[(3)bni_48 + (-1)Bound*bni_48] + [(-1)bni_48]x0-1[6] + [bni_48]x0[6] ≥ 0∧[(-1)bso_49] ≥ 0)



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

    (65)    (x0-1[6] + x0[6] ≥ 0∧[-1]x0[6] ≥ 0∧x0[6] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[(3)bni_48 + (-1)Bound*bni_48] + [bni_48]x0[6] ≥ 0∧[(-1)bso_49] ≥ 0)



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

    (66)    (x0-1[6] ≥ 0∧0 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[(3)bni_48 + (-1)Bound*bni_48] ≥ 0∧[(-1)bso_49] ≥ 0)







For Pair COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)) the following chains were created:
  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)), 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]) which results in the following constraint:

    (67)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[2]))∧x1[0]=x1[2]java.lang.Object(ARRAY(x0[2]))=java.lang.Object(ARRAY(x0[0]1))∧+(x1[2], 1)=x1[0]1COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))



    We simplified constraint (67) using rules (I), (II), (III), (IV), (IDP_BOOLEAN) which results in the following new constraints:

    (68)    (>(x0[0], 0)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE<(x1[0], -(x0[0], 1))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))


    (69)    (>(x0[0], 0)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE>(x1[0], -(x0[0], 1))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))



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

    (70)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (71)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (72)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (73)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (74)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (75)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (76)    (x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1]x1[0] ≥ 0∧[-1] + x0[0] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(2)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



    We solved constraint (75) using rule (IDP_SMT_SPLIT).We simplified constraint (76) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (77)    (x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] ≥ 0∧[-1] + x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(2)bni_50 + (-1)Bound*bni_50] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (78)    ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧[1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(3)bni_50 + (-1)Bound*bni_50] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)), 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]) which results in the following constraint:

    (79)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[2]))∧x1[0]=x1[2]java.lang.Object(ARRAY(x0[2]))=java.lang.Object(ARRAY(x0[6]))∧+(x1[2], 1)=x0_-1[6]COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))



    We simplified constraint (79) using rules (I), (II), (III), (IV), (IDP_BOOLEAN) which results in the following new constraints:

    (80)    (>(x0[0], 0)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE<(x1[0], -(x0[0], 1))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))


    (81)    (>(x0[0], 0)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE>(x1[0], -(x0[0], 1))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))



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

    (82)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (83)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (84)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (85)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (86)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (87)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (88)    (x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1]x1[0] ≥ 0∧[-1] + x0[0] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(2)bni_50 + (-1)Bound*bni_50] + [(-1)bni_50]x1[0] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



    We solved constraint (87) using rule (IDP_SMT_SPLIT).We simplified constraint (88) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (89)    (x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] ≥ 0∧[-1] + x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(2)bni_50 + (-1)Bound*bni_50] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)



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

    (90)    ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧[1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(3)bni_50 + (-1)Bound*bni_50] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)







For Pair 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]) the following chains were created:
  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)) which results in the following constraint:

    (91)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[2]))∧x1[0]=x1[2]2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (92)    (>(x0[0], 0)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE<(x1[0], -(x0[0], 1))=TRUE2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))


    (93)    (>(x0[0], 0)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE>(x1[0], -(x0[0], 1))=TRUE2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (94)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(2)bni_52 + (-1)Bound*bni_52] + [(-1)bni_52]x1[0] + [bni_52]x0[0] ≥ 0∧[(-1)bso_53] ≥ 0)



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

    (95)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(2)bni_52 + (-1)Bound*bni_52] + [(-1)bni_52]x1[0] + [bni_52]x0[0] ≥ 0∧[(-1)bso_53] ≥ 0)



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

    (96)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(2)bni_52 + (-1)Bound*bni_52] + [(-1)bni_52]x1[0] + [bni_52]x0[0] ≥ 0∧[(-1)bso_53] ≥ 0)



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

    (97)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(2)bni_52 + (-1)Bound*bni_52] + [(-1)bni_52]x1[0] + [bni_52]x0[0] ≥ 0∧[(-1)bso_53] ≥ 0)



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

    (98)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(2)bni_52 + (-1)Bound*bni_52] + [(-1)bni_52]x1[0] + [bni_52]x0[0] ≥ 0∧[(-1)bso_53] ≥ 0)



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

    (99)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(2)bni_52 + (-1)Bound*bni_52] + [(-1)bni_52]x1[0] + [bni_52]x0[0] ≥ 0∧[(-1)bso_53] ≥ 0)



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

    (100)    (x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1]x1[0] ≥ 0∧[-1] + x0[0] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(3)bni_52 + (-1)Bound*bni_52] + [(-1)bni_52]x1[0] + [bni_52]x0[0] ≥ 0∧[(-1)bso_53] ≥ 0)



    We solved constraint (99) using rule (IDP_SMT_SPLIT).We simplified constraint (100) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (101)    (x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] ≥ 0∧[-1] + x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(3)bni_52 + (-1)Bound*bni_52] + [bni_52]x0[0] ≥ 0∧[(-1)bso_53] ≥ 0)



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

    (102)    ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧[1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(4)bni_52 + (-1)Bound*bni_52] + [bni_52]x0[0] ≥ 0∧[(-1)bso_53] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))
    • ([1] + x2[11] + x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_38] = 0∧[(2)bni_38 + (-1)Bound*bni_38] + [bni_38]x2[11] + [bni_38]x0[11] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)
    • ([1] + x2[11] + x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_38] = 0∧[(2)bni_38 + (-1)Bound*bni_38] + [bni_38]x2[11] + [bni_38]x0[11] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)

  • 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
    • ([1] + x2[11] + x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[(-1)bni_40] = 0∧[(2)bni_40 + (-1)Bound*bni_40] + [bni_40]x2[11] + [bni_40]x0[11] ≥ 0∧0 = 0∧[(-1)bso_41] ≥ 0)

  • COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))
    • ([1] + x1[8] + x0[8] ≥ 0∧x0[8] ≥ 0∧x2[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(2)bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] ≥ 0∧[(-1)bso_43] ≥ 0)
    • ([1] + x1[8] + x0[8] ≥ 0∧x0[8] ≥ 0∧x2[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))), ≥)∧[(2)bni_42 + (-1)Bound*bni_42] + [bni_42]x0[8] ≥ 0∧[(-1)bso_43] ≥ 0)

  • 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])
    • ([1] + x1[8] + x0[8] ≥ 0∧x0[8] ≥ 0∧x2[8] ≥ 0∧x1[8] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])), ≥)∧[(2)bni_44 + (-1)Bound*bni_44] + [bni_44]x0[8] ≥ 0∧[(-1)bso_45] ≥ 0)

  • COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)
    • (x0-1[6] ≥ 0∧0 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(3)bni_46 + (-1)Bound*bni_46] ≥ 0∧[1 + (-1)bso_47] ≥ 0)
    • (x0-1[6] ≥ 0∧0 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(3)bni_46 + (-1)Bound*bni_46] ≥ 0∧[1 + (-1)bso_47] ≥ 0)

  • 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])
    • (x0-1[6] ≥ 0∧0 ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])), ≥)∧[(3)bni_48 + (-1)Bound*bni_48] ≥ 0∧[(-1)bso_49] ≥ 0)

  • COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
    • ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧[1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(3)bni_50 + (-1)Bound*bni_50] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)
    • ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧[1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(3)bni_50 + (-1)Bound*bni_50] + [bni_50]x0[0] ≥ 0∧[(-1)bso_51] ≥ 0)

  • 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])
    • ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧[1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(4)bni_52 + (-1)Bound*bni_52] + [bni_52]x0[0] ≥ 0∧[(-1)bso_53] ≥ 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(COND_2865_0_DISPLAY_GE1(x1, x2, x3, x4)) = [-1] + [-1]x3 + [-1]x2   
POL(java.lang.Object(x1)) = [-1] + x1   
POL(ARRAY(x1)) = [-1] + [-1]x1   
POL(2865_0_DISPLAY_GE(x1, x2, x3)) = [-1] + [-1]x2 + [-1]x1   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(COND_2865_0_DISPLAY_GE(x1, x2, x3, x4)) = [-1] + [-1]x3 + [-1]x2   
POL(2448_0_MYSTERIOUSRECURSIVE_LOAD(x1, x2)) = [-1]x2 + [-1]x1   
POL(>=(x1, x2)) = [-1]   
POL(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(x1, x2, x3)) = [-1]x3 + [-1]x2   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(0) = 0   
POL(=(x1, x2)) = [-1]   
POL(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1   
POL(!(x1)) = [-1]   

The following pairs are in P>:

COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)

The following pairs are in Pbound:

COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))
2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])
COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 2865_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)
2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])
COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])

The following pairs are in P:

COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))
2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))
2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(&&(&&(&&(>=(x2[8], x0[8]), >(x1[8], -1)), <(x1[8], x0[8])), >(x0[8], -1)), x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])
2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])
COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1

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


R is empty.

The integer pair graph contains the following rules and edges:
(12): COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), x2[12] + 1)
(11): 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
(10): COND_2865_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), x1[10] + 1)
(8): 2865_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_2865_0_DISPLAY_GE(x2[8] >= x0[8] && x1[8] > -1 && x1[8] < x0[8] && x0[8] > -1, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])
(6): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD1(x0[6] > 0 && x0_-1[6] = x0[6] - 1, java.lang.Object(ARRAY(x0[6])), x0_-1[6])
(2): COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(0): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0, java.lang.Object(ARRAY(x0[0])), x1[0])

(2) -> (0), if (java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[0]))∧x1[2] + 1* x1[0])


(10) -> (0), if (java.lang.Object(ARRAY(x0[10])) →* java.lang.Object(ARRAY(x0[0]))∧x1[10] + 1* x1[0])


(0) -> (2), if (x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0java.lang.Object(ARRAY(x0[0])) →* java.lang.Object(ARRAY(x0[2]))∧x1[0]* x1[2])


(2) -> (6), if (java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[6]))∧x1[2] + 1* x0_-1[6])


(10) -> (6), if (java.lang.Object(ARRAY(x0[10])) →* java.lang.Object(ARRAY(x0[6]))∧x1[10] + 1* x0_-1[6])


(12) -> (8), if (x1[12]* x1[8]java.lang.Object(ARRAY(x0[12])) →* java.lang.Object(ARRAY(x0[8]))∧x2[12] + 1* x2[8])


(8) -> (10), if (x2[8] >= x0[8] && x1[8] > -1 && x1[8] < x0[8] && x0[8] > -1x1[8]* x1[10]java.lang.Object(ARRAY(x0[8])) →* java.lang.Object(ARRAY(x0[10]))∧x2[8]* x2[10])


(12) -> (11), if (x1[12]* x1[11]java.lang.Object(ARRAY(x0[12])) →* java.lang.Object(ARRAY(x0[11]))∧x2[12] + 1* x2[11])


(11) -> (12), if (x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1x1[11]* x1[12]java.lang.Object(ARRAY(x0[11])) →* java.lang.Object(ARRAY(x0[12]))∧x2[11]* x2[12])



The set Q consists of the following terms:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x0, x1, java.lang.Object(ARRAY(x2)), x3), x4, x5, java.lang.Object(ARRAY(x2)))

(16) IDependencyGraphProof (EQUIVALENT transformation)

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

(17) Complex Obligation (AND)

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


R is empty.

The integer pair graph contains the following rules and edges:
(2): COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(0): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0, java.lang.Object(ARRAY(x0[0])), x1[0])

(2) -> (0), if (java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[0]))∧x1[2] + 1* x1[0])


(0) -> (2), if (x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0java.lang.Object(ARRAY(x0[0])) →* java.lang.Object(ARRAY(x0[2]))∧x1[0]* x1[2])



The set Q consists of the following terms:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x0, x1, java.lang.Object(ARRAY(x2)), x3), x4, x5, java.lang.Object(ARRAY(x2)))

(19) 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.IdpDefaultShapeHeuristic@265e5b08 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

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


For Pair COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)) the following chains were created:
  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)), 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]) which results in the following constraint:

    (1)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[2]))∧x1[0]=x1[2]java.lang.Object(ARRAY(x0[2]))=java.lang.Object(ARRAY(x0[0]1))∧+(x1[2], 1)=x1[0]1COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))



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

    (2)    (>(x0[0], 0)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE<(x1[0], -(x0[0], 1))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))


    (3)    (>(x0[0], 0)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE>(x1[0], -(x0[0], 1))=TRUECOND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥))



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

    (4)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x1[0] + [(2)bni_19]x0[0] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (5)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x1[0] + [(2)bni_19]x0[0] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (6)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x1[0] + [(2)bni_19]x0[0] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (7)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x1[0] + [(2)bni_19]x0[0] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (8)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x1[0] + [(2)bni_19]x0[0] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (9)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x1[0] + [(2)bni_19]x0[0] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (10)    (x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1]x1[0] ≥ 0∧[-1] + x0[0] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x1[0] + [(2)bni_19]x0[0] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (11)    (x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] ≥ 0∧[-1] + x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[bni_19 + (-1)Bound*bni_19] + [bni_19]x1[0] + [(2)bni_19]x0[0] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (12)    ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧[1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(3)bni_19 + (-1)Bound*bni_19] + [bni_19]x1[0] + [(2)bni_19]x0[0] ≥ 0∧[1 + (-1)bso_20] ≥ 0)







For Pair 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]) the following chains were created:
  • We consider the chain 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)) which results in the following constraint:

    (13)    (&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[2]))∧x1[0]=x1[2]2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (14)    (>(x0[0], 0)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE<(x1[0], -(x0[0], 1))=TRUE2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))


    (15)    (>(x0[0], 0)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE>(x1[0], -(x0[0], 1))=TRUE2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (16)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x1[0] + [(2)bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (17)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x1[0] + [(2)bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (18)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x1[0] + [(2)bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (19)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x1[0] + [(2)bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (20)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x0[0] + [-2] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x1[0] + [(2)bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (21)    (x0[0] + [-1] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0∧x1[0] + [-1]x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x1[0] + [(2)bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (22)    (x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1]x1[0] ≥ 0∧[-1] + x0[0] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x1[0] + [(2)bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



    We solved constraint (21) using rule (IDP_SMT_SPLIT).We simplified constraint (22) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (23)    (x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] ≥ 0∧[-1] + x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[bni_21 + (-1)Bound*bni_21] + [bni_21]x1[0] + [(2)bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (24)    ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧[1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(3)bni_21 + (-1)Bound*bni_21] + [bni_21]x1[0] + [(2)bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
    • ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧[1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))), ≥)∧[(3)bni_19 + (-1)Bound*bni_19] + [bni_19]x1[0] + [(2)bni_19]x0[0] ≥ 0∧[1 + (-1)bso_20] ≥ 0)

  • 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])
    • ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧[1] + x0[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(3)bni_21 + (-1)Bound*bni_21] + [bni_21]x1[0] + [(2)bni_21]x0[0] ≥ 0∧[(-1)bso_22] ≥ 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(COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2   
POL(java.lang.Object(x1)) = [-1] + [-1]x1   
POL(ARRAY(x1)) = [-1] + [2]x1   
POL(2448_0_MYSTERIOUSRECURSIVE_LOAD(x1, x2)) = [-1] + [-1]x2 + [-1]x1   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(!(x1)) = [-1]   
POL(=(x1, x2)) = [-1]   
POL(-(x1, x2)) = x1 + [-1]x2   
POL(0) = 0   

The following pairs are in P>:

COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))

The following pairs are in Pbound:

COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])

The following pairs are in P:

2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), !(=(x1[0], -(x0[0], 1)))), >(x0[0], 0)), java.lang.Object(ARRAY(x0[0])), x1[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1

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


R is empty.

The integer pair graph contains the following rules and edges:
(0): 2448_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_2448_0_MYSTERIOUSRECURSIVE_LOAD(x1[0] > -1 && x1[0] < x0[0] && !(x1[0] = x0[0] - 1) && x0[0] > 0, java.lang.Object(ARRAY(x0[0])), x1[0])


The set Q consists of the following terms:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x0, x1, java.lang.Object(ARRAY(x2)), x3), x4, x5, java.lang.Object(ARRAY(x2)))

(21) IDependencyGraphProof (EQUIVALENT transformation)

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

(22) TRUE

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


R is empty.

The integer pair graph contains the following rules and edges:
(11): 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
(12): COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), x2[12] + 1)

(12) -> (11), if (x1[12]* x1[11]java.lang.Object(ARRAY(x0[12])) →* java.lang.Object(ARRAY(x0[11]))∧x2[12] + 1* x2[11])


(11) -> (12), if (x2[11] > -1 && x2[11] < x0[11] && x0[11] > -1x1[11]* x1[12]java.lang.Object(ARRAY(x0[11])) →* java.lang.Object(ARRAY(x0[12]))∧x2[11]* x2[12])



The set Q consists of the following terms:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x0, x1, java.lang.Object(ARRAY(x2)), x3), x4, x5, java.lang.Object(ARRAY(x2)))

(24) 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.IdpDefaultShapeHeuristic@265e5b08 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 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) the following chains were created:
  • We consider the chain 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)) which results in the following constraint:

    (1)    (&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1))=TRUEx1[11]=x1[12]java.lang.Object(ARRAY(x0[11]))=java.lang.Object(ARRAY(x0[12]))∧x2[11]=x2[12]2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])∧(UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥))



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

    (2)    (>(x0[11], -1)=TRUE>(x2[11], -1)=TRUE<(x2[11], x0[11])=TRUE2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])∧(UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥))



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

    (3)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[(2)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x2[11] + [bni_19]x0[11] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (4)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[(2)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x2[11] + [bni_19]x0[11] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (5)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[(2)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x2[11] + [bni_19]x0[11] ≥ 0∧[1 + (-1)bso_20] ≥ 0)



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

    (6)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧0 = 0∧[(2)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x2[11] + [bni_19]x0[11] ≥ 0∧0 = 0∧[1 + (-1)bso_20] ≥ 0)



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

    (7)    ([1] + x2[11] + x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧0 = 0∧[(3)bni_19 + (-1)Bound*bni_19] + [bni_19]x0[11] ≥ 0∧0 = 0∧[1 + (-1)bso_20] ≥ 0)







For Pair COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)) the following chains were created:
  • We consider the chain 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)), 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) which results in the following constraint:

    (8)    (&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1))=TRUEx1[11]=x1[12]java.lang.Object(ARRAY(x0[11]))=java.lang.Object(ARRAY(x0[12]))∧x2[11]=x2[12]x1[12]=x1[11]1java.lang.Object(ARRAY(x0[12]))=java.lang.Object(ARRAY(x0[11]1))∧+(x2[12], 1)=x2[11]1COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥NonInfC∧COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))∧(UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥))



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

    (9)    (>(x0[11], -1)=TRUE>(x2[11], -1)=TRUE<(x2[11], x0[11])=TRUECOND_2865_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧COND_2865_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), +(x2[11], 1))∧(UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥))



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

    (10)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x2[11] + [bni_21]x0[11] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (11)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x2[11] + [bni_21]x0[11] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (12)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x2[11] + [bni_21]x0[11] ≥ 0∧[(-1)bso_22] ≥ 0)



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

    (13)    (x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] + [-1] + [-1]x2[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧0 = 0∧[bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x2[11] + [bni_21]x0[11] ≥ 0∧0 = 0∧[(-1)bso_22] ≥ 0)



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

    (14)    ([1] + x2[11] + x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧0 = 0∧[(2)bni_21 + (-1)Bound*bni_21] + [bni_21]x0[11] ≥ 0∧0 = 0∧[(-1)bso_22] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
    • ([1] + x2[11] + x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] ≥ 0 ⇒ (UIncreasing(COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧0 = 0∧[(3)bni_19 + (-1)Bound*bni_19] + [bni_19]x0[11] ≥ 0∧0 = 0∧[1 + (-1)bso_20] ≥ 0)

  • COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))
    • ([1] + x2[11] + x0[11] ≥ 0∧x2[11] ≥ 0∧x0[11] ≥ 0 ⇒ (UIncreasing(2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧0 = 0∧[(2)bni_21 + (-1)Bound*bni_21] + [bni_21]x0[11] ≥ 0∧0 = 0∧[(-1)bso_22] ≥ 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) = [1]   
POL(FALSE) = [2]   
POL(2865_0_DISPLAY_GE(x1, x2, x3)) = [-1]x3 + [-1]x2   
POL(java.lang.Object(x1)) = [-1] + x1   
POL(ARRAY(x1)) = [-1] + [-1]x1   
POL(COND_2865_0_DISPLAY_GE1(x1, x2, x3, x4)) = [-1]x4 + [-1]x3 + [-1]x1   
POL(&&(x1, x2)) = [1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   

The following pairs are in P>:

2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])

The following pairs are in Pbound:

2865_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_2865_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))

The following pairs are in P:

COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))

At least the following rules have been oriented under context sensitive arithmetic replacement:

TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1

(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


R is empty.

The integer pair graph contains the following rules and edges:
(12): COND_2865_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 2865_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), x2[12] + 1)


The set Q consists of the following terms:
3708_1_mysteriousRecursive_InvokeMethod(4182_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
3708_1_mysteriousRecursive_InvokeMethod(4239_0_mysteriousRecursive_InvokeMethod(x0, x1, java.lang.Object(ARRAY(x2)), x3), x4, x5, java.lang.Object(ARRAY(x2)))

(26) IDependencyGraphProof (EQUIVALENT transformation)

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

(27) TRUE

(28) Obligation:

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

(29) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 69 rules for P and 0 rules for R.


P rules:
2338_0_mysterious_Load(EOS(STATIC_2338), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, i263) → 2350_0_mysterious_ArrayLength(EOS(STATIC_2350), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, i263, java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
2350_0_mysterious_ArrayLength(EOS(STATIC_2350), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, i263, java.lang.Object(ARRAY(i29))) → 2362_0_mysterious_GE(EOS(STATIC_2362), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, i263, i29) | &&(&&(>=(i29, 0), =(matching1, 0)), =(matching2, 0))
2362_0_mysterious_GE(EOS(STATIC_2362), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, i263, i29) → 2378_0_mysterious_GE(EOS(STATIC_2378), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, i263, i29) | &&(=(matching1, 0), =(matching2, 0))
2378_0_mysterious_GE(EOS(STATIC_2378), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, i263, i29) → 2393_0_mysterious_Load(EOS(STATIC_2393), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(<(i263, i29), =(matching1, 0)), =(matching2, 0))
2393_0_mysterious_Load(EOS(STATIC_2393), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263) → 2407_0_mysterious_Load(EOS(STATIC_2407), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
2407_0_mysterious_Load(EOS(STATIC_2407), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29))) → 2421_0_mysterious_Load(EOS(STATIC_2421), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0) | &&(=(matching1, 0), =(matching2, 0))
2421_0_mysterious_Load(EOS(STATIC_2421), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3) → 2438_0_mysterious_InvokeMethod(EOS(STATIC_2438), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2438_0_mysterious_InvokeMethod(EOS(STATIC_2438), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263) → 2446_0_swap3_Load(EOS(STATIC_2446), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2446_0_swap3_Load(EOS(STATIC_2446), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263) → 2452_0_swap3_Load(EOS(STATIC_2452), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2452_0_swap3_Load(EOS(STATIC_2452), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263, java.lang.Object(ARRAY(i29))) → 2457_0_swap3_ArrayAccess(EOS(STATIC_2457), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2457_0_swap3_ArrayAccess(EOS(STATIC_2457), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263, java.lang.Object(ARRAY(i29)), matching5) → 2460_0_swap3_Store(EOS(STATIC_2460), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(&&(&&(&&(<(0, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0)), =(matching5, 0))
2460_0_swap3_Store(EOS(STATIC_2460), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263) → 2463_0_swap3_Load(EOS(STATIC_2463), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2463_0_swap3_Load(EOS(STATIC_2463), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263) → 2467_0_swap3_Load(EOS(STATIC_2467), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2467_0_swap3_Load(EOS(STATIC_2467), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263, java.lang.Object(ARRAY(i29))) → 2472_0_swap3_Load(EOS(STATIC_2472), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2472_0_swap3_Load(EOS(STATIC_2472), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), matching4) → 2476_0_swap3_Load(EOS(STATIC_2476), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2476_0_swap3_Load(EOS(STATIC_2476), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29))) → 2481_0_swap3_ArrayAccess(EOS(STATIC_2481), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), i263) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2481_0_swap3_ArrayAccess(EOS(STATIC_2481), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29)), i263) → 2484_0_swap3_ArrayAccess(EOS(STATIC_2484), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), i263) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2484_0_swap3_ArrayAccess(EOS(STATIC_2484), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29)), i263) → 2490_0_swap3_ArrayAccess(EOS(STATIC_2490), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(&&(<(i263, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2490_0_swap3_ArrayAccess(EOS(STATIC_2490), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), matching4) → 2496_0_swap3_Load(EOS(STATIC_2496), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263) | &&(&&(&&(&&(<(0, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
2496_0_swap3_Load(EOS(STATIC_2496), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263) → 2502_0_swap3_Load(EOS(STATIC_2502), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, i263, java.lang.Object(ARRAY(i29))) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2502_0_swap3_Load(EOS(STATIC_2502), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, i263, java.lang.Object(ARRAY(i29))) → 2510_0_swap3_Load(EOS(STATIC_2510), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2510_0_swap3_Load(EOS(STATIC_2510), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263) → 2518_0_swap3_ArrayAccess(EOS(STATIC_2518), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2518_0_swap3_ArrayAccess(EOS(STATIC_2518), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263) → 2525_0_swap3_ArrayAccess(EOS(STATIC_2525), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2525_0_swap3_ArrayAccess(EOS(STATIC_2525), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263) → 2531_0_swap3_Return(EOS(STATIC_2531), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(&&(<(i263, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0))
2531_0_swap3_Return(EOS(STATIC_2531), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263) → 2542_0_mysterious_Load(EOS(STATIC_2542), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2542_0_mysterious_Load(EOS(STATIC_2542), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263) → 2547_0_mysterious_InvokeMethod(EOS(STATIC_2547), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
2547_0_mysterious_InvokeMethod(EOS(STATIC_2547), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29))) → 2557_0_display_ConstantStackPush(EOS(STATIC_2557), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
2557_0_display_ConstantStackPush(EOS(STATIC_2557), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29))) → 2568_0_display_Store(EOS(STATIC_2568), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0) | &&(=(matching1, 0), =(matching2, 0))
2568_0_display_Store(EOS(STATIC_2568), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching3) → 2577_0_display_Load(EOS(STATIC_2577), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2577_0_display_Load(EOS(STATIC_2577), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching3) → 2646_0_display_Load(EOS(STATIC_2646), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
2646_0_display_Load(EOS(STATIC_2646), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i284) → 2746_0_display_Load(EOS(STATIC_2746), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i284) | &&(=(matching1, 0), =(matching2, 0))
2746_0_display_Load(EOS(STATIC_2746), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i291) → 2887_0_display_Load(EOS(STATIC_2887), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i291) | &&(=(matching1, 0), =(matching2, 0))
2887_0_display_Load(EOS(STATIC_2887), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i299) → 3013_0_display_Load(EOS(STATIC_3013), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i299) | &&(=(matching1, 0), =(matching2, 0))
3013_0_display_Load(EOS(STATIC_3013), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310) → 3031_0_display_Load(EOS(STATIC_3031), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310, i310) | &&(=(matching1, 0), =(matching2, 0))
3031_0_display_Load(EOS(STATIC_3031), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310, i310) → 3045_0_display_ArrayLength(EOS(STATIC_3045), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310, i310, java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
3045_0_display_ArrayLength(EOS(STATIC_3045), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310, i310, java.lang.Object(ARRAY(i29))) → 3065_0_display_GE(EOS(STATIC_3065), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310, i310, i29) | &&(&&(>=(i29, 0), =(matching1, 0)), =(matching2, 0))
3065_0_display_GE(EOS(STATIC_3065), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310, i310, i29) → 3081_0_display_GE(EOS(STATIC_3081), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310, i310, i29) | &&(=(matching1, 0), =(matching2, 0))
3065_0_display_GE(EOS(STATIC_3065), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310, i310, i29) → 3082_0_display_GE(EOS(STATIC_3082), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310, i310, i29) | &&(=(matching1, 0), =(matching2, 0))
3081_0_display_GE(EOS(STATIC_3081), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310, i310, i29) → 3102_0_display_Return(EOS(STATIC_3102), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29))) | &&(&&(>=(i310, i29), =(matching1, 0)), =(matching2, 0))
3102_0_display_Return(EOS(STATIC_3102), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29))) → 3129_0_mysterious_Load(EOS(STATIC_3129), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263) | &&(=(matching1, 0), =(matching2, 0))
3129_0_mysterious_Load(EOS(STATIC_3129), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263) → 3150_0_mysterious_Load(EOS(STATIC_3150), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
3150_0_mysterious_Load(EOS(STATIC_3150), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29))) → 3171_0_mysterious_Load(EOS(STATIC_3171), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0) | &&(=(matching1, 0), =(matching2, 0))
3171_0_mysterious_Load(EOS(STATIC_3171), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3) → 3191_0_mysterious_InvokeMethod(EOS(STATIC_3191), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3191_0_mysterious_InvokeMethod(EOS(STATIC_3191), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263) → 3211_0_swap3_Load(EOS(STATIC_3211), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3211_0_swap3_Load(EOS(STATIC_3211), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263) → 3251_0_swap3_Load(EOS(STATIC_3251), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3251_0_swap3_Load(EOS(STATIC_3251), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263, java.lang.Object(ARRAY(i29))) → 3270_0_swap3_ArrayAccess(EOS(STATIC_3270), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3270_0_swap3_ArrayAccess(EOS(STATIC_3270), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263, java.lang.Object(ARRAY(i29)), matching5) → 3278_0_swap3_Store(EOS(STATIC_3278), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(&&(&&(&&(<(0, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0)), =(matching5, 0))
3278_0_swap3_Store(EOS(STATIC_3278), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263) → 3289_0_swap3_Load(EOS(STATIC_3289), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3289_0_swap3_Load(EOS(STATIC_3289), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263) → 3299_0_swap3_Load(EOS(STATIC_3299), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3299_0_swap3_Load(EOS(STATIC_3299), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), matching4, i263, java.lang.Object(ARRAY(i29))) → 3314_0_swap3_Load(EOS(STATIC_3314), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3314_0_swap3_Load(EOS(STATIC_3314), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), matching4) → 3327_0_swap3_Load(EOS(STATIC_3327), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3327_0_swap3_Load(EOS(STATIC_3327), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29))) → 3341_0_swap3_ArrayAccess(EOS(STATIC_3341), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), i263) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3341_0_swap3_ArrayAccess(EOS(STATIC_3341), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29)), i263) → 3354_0_swap3_ArrayAccess(EOS(STATIC_3354), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), i263) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3354_0_swap3_ArrayAccess(EOS(STATIC_3354), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29)), i263) → 3361_0_swap3_ArrayAccess(EOS(STATIC_3361), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(&&(<(i263, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3361_0_swap3_ArrayAccess(EOS(STATIC_3361), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263, java.lang.Object(ARRAY(i29)), matching4) → 3378_0_swap3_Load(EOS(STATIC_3378), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263) | &&(&&(&&(&&(<(0, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3378_0_swap3_Load(EOS(STATIC_3378), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263) → 3394_0_swap3_Load(EOS(STATIC_3394), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, i263, java.lang.Object(ARRAY(i29))) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3394_0_swap3_Load(EOS(STATIC_3394), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, i263, java.lang.Object(ARRAY(i29))) → 3411_0_swap3_Load(EOS(STATIC_3411), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3411_0_swap3_Load(EOS(STATIC_3411), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263) → 3425_0_swap3_ArrayAccess(EOS(STATIC_3425), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3425_0_swap3_ArrayAccess(EOS(STATIC_3425), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263) → 3428_0_swap3_ArrayAccess(EOS(STATIC_3428), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3428_0_swap3_ArrayAccess(EOS(STATIC_3428), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263, java.lang.Object(ARRAY(i29)), i263) → 3436_0_swap3_Return(EOS(STATIC_3436), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(&&(<(i263, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0))
3436_0_swap3_Return(EOS(STATIC_3436), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), matching3, i263) → 3442_0_mysterious_Inc(EOS(STATIC_3442), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3442_0_mysterious_Inc(EOS(STATIC_3442), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263) → 3446_0_mysterious_JMP(EOS(STATIC_3446), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, +(i263, 1)) | &&(&&(>=(i263, 0), =(matching1, 0)), =(matching2, 0))
3446_0_mysterious_JMP(EOS(STATIC_3446), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i500) → 3458_0_mysterious_Load(EOS(STATIC_3458), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i500) | &&(=(matching1, 0), =(matching2, 0))
3458_0_mysterious_Load(EOS(STATIC_3458), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i500) → 2315_0_mysterious_Load(EOS(STATIC_2315), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i500) | &&(=(matching1, 0), =(matching2, 0))
2315_0_mysterious_Load(EOS(STATIC_2315), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263) → 2338_0_mysterious_Load(EOS(STATIC_2338), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, i263) | &&(=(matching1, 0), =(matching2, 0))
3082_0_display_GE(EOS(STATIC_3082), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310, i310, i29) → 3104_0_display_Inc(EOS(STATIC_3104), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310) | &&(&&(<(i310, i29), =(matching1, 0)), =(matching2, 0))
3104_0_display_Inc(EOS(STATIC_3104), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i310) → 3130_0_display_JMP(EOS(STATIC_3130), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), +(i310, 1)) | &&(&&(>=(i310, 0), =(matching1, 0)), =(matching2, 0))
3130_0_display_JMP(EOS(STATIC_3130), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i325) → 3153_0_display_Load(EOS(STATIC_3153), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i325) | &&(=(matching1, 0), =(matching2, 0))
3153_0_display_Load(EOS(STATIC_3153), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i325) → 3013_0_display_Load(EOS(STATIC_3013), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i263, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i325) | &&(=(matching1, 0), =(matching2, 0))
R rules:

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


P rules:
3065_0_display_GE(EOS(STATIC_3065), java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), 0, java.lang.Object(ARRAY(x0)), 0, x3, java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), x4, x4, x0) → 3065_0_display_GE(EOS(STATIC_3065), java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), 0, java.lang.Object(ARRAY(x0)), 0, +(x3, 1), java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), 0, 0, x0) | &&(&&(&&(>=(x4, x0), >(+(x3, 1), 0)), >(x0, 0)), >(x0, +(x3, 1)))
3065_0_display_GE(EOS(STATIC_3065), java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), 0, java.lang.Object(ARRAY(x0)), 0, x3, java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), x4, x4, x0) → 3065_0_display_GE(EOS(STATIC_3065), java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), 0, java.lang.Object(ARRAY(x0)), 0, x3, java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), +(x4, 1), +(x4, 1), x0) | &&(&&(>(+(x4, 1), 0), <(x4, x0)), >(+(x0, 1), 0))
R rules:

Filtered ground terms:



3065_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) → 3065_0_display_GE(x2, x3, x5, x7, x8, x9, x10, x11, x12)
EOS(x1) → EOS
Cond_3065_0_display_GE1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13) → Cond_3065_0_display_GE1(x1, x3, x4, x6, x8, x9, x10, x11, x12, x13)
Cond_3065_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13) → Cond_3065_0_display_GE(x1, x3, x4, x6, x8, x9, x10, x11, x12, x13)

Filtered duplicate args:



3065_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9) → 3065_0_display_GE(x4, x6, x8)
Cond_3065_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_3065_0_display_GE(x1, x5, x7, x9)
Cond_3065_0_display_GE1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_3065_0_display_GE1(x1, x5, x7, x9)

Filtered unneeded arguments:



Cond_3065_0_display_GE(x1, x2, x3, x4) → Cond_3065_0_display_GE(x1, x2, x3)

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


P rules:
3065_0_display_GE(x3, java.lang.Object(ARRAY(x0)), x4) → 3065_0_display_GE(+(x3, 1), java.lang.Object(ARRAY(x0)), 0) | &&(&&(&&(>=(x4, x0), >(x3, -1)), >(x0, 0)), >(x0, +(x3, 1)))
3065_0_display_GE(x3, java.lang.Object(ARRAY(x0)), x4) → 3065_0_display_GE(x3, java.lang.Object(ARRAY(x0)), +(x4, 1)) | &&(&&(>(x4, -1), <(x4, x0)), >(x0, -1))
R rules:

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


P rules:
3065_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4, x0), >(x3, -1)), >(x0, 0)), >(x0, +(x3, 1))), x3, java.lang.Object(ARRAY(x0)), x4)
COND_3065_0_DISPLAY_GE(TRUE, x3, java.lang.Object(ARRAY(x0)), x4) → 3065_0_DISPLAY_GE(+(x3, 1), java.lang.Object(ARRAY(x0)), 0)
3065_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4, -1), <(x4, x0)), >(x0, -1)), x3, java.lang.Object(ARRAY(x0)), x4)
COND_3065_0_DISPLAY_GE1(TRUE, x3, java.lang.Object(ARRAY(x0)), x4) → 3065_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), +(x4, 1))
R rules:

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


R is empty.

The integer pair graph contains the following rules and edges:
(0): 3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3065_0_DISPLAY_GE(x4[0] >= x0[0] && x3[0] > -1 && x0[0] > 0 && x0[0] > x3[0] + 1, x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])
(1): COND_3065_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1]) → 3065_0_DISPLAY_GE(x3[1] + 1, java.lang.Object(ARRAY(x0[1])), 0)
(2): 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(x4[2] > -1 && x4[2] < x0[2] && x0[2] > -1, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])
(3): COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), x4[3] + 1)

(0) -> (1), if (x4[0] >= x0[0] && x3[0] > -1 && x0[0] > 0 && x0[0] > x3[0] + 1x3[0]* x3[1]java.lang.Object(ARRAY(x0[0])) →* java.lang.Object(ARRAY(x0[1]))∧x4[0]* x4[1])


(1) -> (0), if (x3[1] + 1* x3[0]java.lang.Object(ARRAY(x0[1])) →* java.lang.Object(ARRAY(x0[0]))∧0* x4[0])


(1) -> (2), if (x3[1] + 1* x3[2]java.lang.Object(ARRAY(x0[1])) →* java.lang.Object(ARRAY(x0[2]))∧0* x4[2])


(2) -> (3), if (x4[2] > -1 && x4[2] < x0[2] && x0[2] > -1x3[2]* x3[3]java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[3]))∧x4[2]* x4[3])


(3) -> (0), if (x3[3]* x3[0]java.lang.Object(ARRAY(x0[3])) →* java.lang.Object(ARRAY(x0[0]))∧x4[3] + 1* x4[0])


(3) -> (2), if (x3[3]* x3[2]java.lang.Object(ARRAY(x0[3])) →* java.lang.Object(ARRAY(x0[2]))∧x4[3] + 1* x4[2])



The set Q is empty.

(31) 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.IdpDefaultShapeHeuristic@265e5b08 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 3065_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4, x0), >(x3, -1)), >(x0, 0)), >(x0, +(x3, 1))), x3, java.lang.Object(ARRAY(x0)), x4) the following chains were created:
  • We consider the chain 3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]), COND_3065_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1]) → 3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0) which results in the following constraint:

    (1)    (&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1)))=TRUEx3[0]=x3[1]java.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[1]))∧x4[0]=x4[1]3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥NonInfC∧3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])∧(UIncreasing(COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])), ≥))



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

    (2)    (>(x0[0], +(x3[0], 1))=TRUE>(x0[0], 0)=TRUE>=(x4[0], x0[0])=TRUE>(x3[0], -1)=TRUE3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥NonInfC∧3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])∧(UIncreasing(COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])), ≥))



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

    (3)    (x0[0] + [-2] + [-1]x3[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x4[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])), ≥)∧[(-1)bni_25 + (-1)Bound*bni_25] + [bni_25]x0[0] + [(-1)bni_25]x3[0] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (4)    (x0[0] + [-2] + [-1]x3[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x4[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])), ≥)∧[(-1)bni_25 + (-1)Bound*bni_25] + [bni_25]x0[0] + [(-1)bni_25]x3[0] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (5)    (x0[0] + [-2] + [-1]x3[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x4[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])), ≥)∧[(-1)bni_25 + (-1)Bound*bni_25] + [bni_25]x0[0] + [(-1)bni_25]x3[0] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (6)    (x0[0] ≥ 0∧[1] + x3[0] + x0[0] ≥ 0∧x4[0] + [-2] + [-1]x3[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])), ≥)∧[bni_25 + (-1)Bound*bni_25] + [bni_25]x0[0] ≥ 0∧[(-1)bso_26] ≥ 0)



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

    (7)    (x0[0] ≥ 0∧[1] + x3[0] + x0[0] ≥ 0∧x4[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])), ≥)∧[bni_25 + (-1)Bound*bni_25] + [bni_25]x0[0] ≥ 0∧[(-1)bso_26] ≥ 0)







For Pair COND_3065_0_DISPLAY_GE(TRUE, x3, java.lang.Object(ARRAY(x0)), x4) → 3065_0_DISPLAY_GE(+(x3, 1), java.lang.Object(ARRAY(x0)), 0) the following chains were created:
  • We consider the chain 3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]), COND_3065_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1]) → 3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0), 3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) which results in the following constraint:

    (8)    (&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1)))=TRUEx3[0]=x3[1]java.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[1]))∧x4[0]=x4[1]+(x3[1], 1)=x3[0]1java.lang.Object(ARRAY(x0[1]))=java.lang.Object(ARRAY(x0[0]1))∧0=x4[0]1COND_3065_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1])≥NonInfC∧COND_3065_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1])≥3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)∧(UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥))



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

    (9)    (>(x0[0], +(x3[0], 1))=TRUE>(x0[0], 0)=TRUE>=(x4[0], x0[0])=TRUE>(x3[0], -1)=TRUECOND_3065_0_DISPLAY_GE(TRUE, x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥NonInfC∧COND_3065_0_DISPLAY_GE(TRUE, x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥3065_0_DISPLAY_GE(+(x3[0], 1), java.lang.Object(ARRAY(x0[0])), 0)∧(UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥))



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

    (10)    (x0[0] + [-2] + [-1]x3[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x4[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] + [(-1)bni_27]x3[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)



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

    (11)    (x0[0] + [-2] + [-1]x3[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x4[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] + [(-1)bni_27]x3[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)



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

    (12)    (x0[0] + [-2] + [-1]x3[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x4[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] + [(-1)bni_27]x3[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)



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

    (13)    (x0[0] ≥ 0∧[1] + x3[0] + x0[0] ≥ 0∧x4[0] + [-2] + [-1]x3[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)



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

    (14)    (x0[0] ≥ 0∧[1] + x3[0] + x0[0] ≥ 0∧x4[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)



  • We consider the chain 3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]), COND_3065_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1]) → 3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0), 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) which results in the following constraint:

    (15)    (&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1)))=TRUEx3[0]=x3[1]java.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[1]))∧x4[0]=x4[1]+(x3[1], 1)=x3[2]java.lang.Object(ARRAY(x0[1]))=java.lang.Object(ARRAY(x0[2]))∧0=x4[2]COND_3065_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1])≥NonInfC∧COND_3065_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1])≥3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)∧(UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥))



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

    (16)    (>(x0[0], +(x3[0], 1))=TRUE>(x0[0], 0)=TRUE>=(x4[0], x0[0])=TRUE>(x3[0], -1)=TRUECOND_3065_0_DISPLAY_GE(TRUE, x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥NonInfC∧COND_3065_0_DISPLAY_GE(TRUE, x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥3065_0_DISPLAY_GE(+(x3[0], 1), java.lang.Object(ARRAY(x0[0])), 0)∧(UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥))



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

    (17)    (x0[0] + [-2] + [-1]x3[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x4[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] + [(-1)bni_27]x3[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)



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

    (18)    (x0[0] + [-2] + [-1]x3[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x4[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] + [(-1)bni_27]x3[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)



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

    (19)    (x0[0] + [-2] + [-1]x3[0] ≥ 0∧x0[0] + [-1] ≥ 0∧x4[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] + [(-1)bni_27]x3[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)



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

    (20)    (x0[0] ≥ 0∧[1] + x3[0] + x0[0] ≥ 0∧x4[0] + [-2] + [-1]x3[0] + [-1]x0[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)



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

    (21)    (x0[0] ≥ 0∧[1] + x3[0] + x0[0] ≥ 0∧x4[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)







For Pair 3065_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4, -1), <(x4, x0)), >(x0, -1)), x3, java.lang.Object(ARRAY(x0)), x4) the following chains were created:
  • We consider the chain 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]), COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1)) which results in the following constraint:

    (22)    (&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1))=TRUEx3[2]=x3[3]java.lang.Object(ARRAY(x0[2]))=java.lang.Object(ARRAY(x0[3]))∧x4[2]=x4[3]3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])∧(UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥))



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

    (23)    (>(x0[2], -1)=TRUE>(x4[2], -1)=TRUE<(x4[2], x0[2])=TRUE3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])∧(UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥))



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

    (24)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]x0[2] + [(-1)bni_29]x3[2] ≥ 0∧[(-1)bso_30] ≥ 0)



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

    (25)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]x0[2] + [(-1)bni_29]x3[2] ≥ 0∧[(-1)bso_30] ≥ 0)



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

    (26)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]x0[2] + [(-1)bni_29]x3[2] ≥ 0∧[(-1)bso_30] ≥ 0)



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

    (27)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧[(-1)bni_29] = 0∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]x0[2] ≥ 0∧0 = 0∧[(-1)bso_30] ≥ 0)



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

    (28)    ([1] + x4[2] + x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧[(-1)bni_29] = 0∧[(-1)Bound*bni_29] + [bni_29]x4[2] + [bni_29]x0[2] ≥ 0∧0 = 0∧[(-1)bso_30] ≥ 0)







For Pair COND_3065_0_DISPLAY_GE1(TRUE, x3, java.lang.Object(ARRAY(x0)), x4) → 3065_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), +(x4, 1)) the following chains were created:
  • We consider the chain 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]), COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1)), 3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) which results in the following constraint:

    (29)    (&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1))=TRUEx3[2]=x3[3]java.lang.Object(ARRAY(x0[2]))=java.lang.Object(ARRAY(x0[3]))∧x4[2]=x4[3]x3[3]=x3[0]java.lang.Object(ARRAY(x0[3]))=java.lang.Object(ARRAY(x0[0]))∧+(x4[3], 1)=x4[0]COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥NonInfC∧COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))∧(UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥))



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

    (30)    (>(x0[2], -1)=TRUE>(x4[2], -1)=TRUE<(x4[2], x0[2])=TRUECOND_3065_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧COND_3065_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), +(x4[2], 1))∧(UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥))



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

    (31)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]x0[2] + [(-1)bni_31]x3[2] ≥ 0∧[(-1)bso_32] ≥ 0)



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

    (32)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]x0[2] + [(-1)bni_31]x3[2] ≥ 0∧[(-1)bso_32] ≥ 0)



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

    (33)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]x0[2] + [(-1)bni_31]x3[2] ≥ 0∧[(-1)bso_32] ≥ 0)



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

    (34)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31] = 0∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]x0[2] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)



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

    (35)    ([1] + x4[2] + x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31] = 0∧[(-1)Bound*bni_31] + [bni_31]x4[2] + [bni_31]x0[2] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)



  • We consider the chain 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]), COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1)), 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) which results in the following constraint:

    (36)    (&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1))=TRUEx3[2]=x3[3]java.lang.Object(ARRAY(x0[2]))=java.lang.Object(ARRAY(x0[3]))∧x4[2]=x4[3]x3[3]=x3[2]1java.lang.Object(ARRAY(x0[3]))=java.lang.Object(ARRAY(x0[2]1))∧+(x4[3], 1)=x4[2]1COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥NonInfC∧COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))∧(UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥))



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

    (37)    (>(x0[2], -1)=TRUE>(x4[2], -1)=TRUE<(x4[2], x0[2])=TRUECOND_3065_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧COND_3065_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), +(x4[2], 1))∧(UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥))



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

    (38)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]x0[2] + [(-1)bni_31]x3[2] ≥ 0∧[(-1)bso_32] ≥ 0)



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

    (39)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]x0[2] + [(-1)bni_31]x3[2] ≥ 0∧[(-1)bso_32] ≥ 0)



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

    (40)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]x0[2] + [(-1)bni_31]x3[2] ≥ 0∧[(-1)bso_32] ≥ 0)



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

    (41)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31] = 0∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]x0[2] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)



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

    (42)    ([1] + x4[2] + x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31] = 0∧[(-1)Bound*bni_31] + [bni_31]x4[2] + [bni_31]x0[2] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 3065_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4, x0), >(x3, -1)), >(x0, 0)), >(x0, +(x3, 1))), x3, java.lang.Object(ARRAY(x0)), x4)
    • (x0[0] ≥ 0∧[1] + x3[0] + x0[0] ≥ 0∧x4[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])), ≥)∧[bni_25 + (-1)Bound*bni_25] + [bni_25]x0[0] ≥ 0∧[(-1)bso_26] ≥ 0)

  • COND_3065_0_DISPLAY_GE(TRUE, x3, java.lang.Object(ARRAY(x0)), x4) → 3065_0_DISPLAY_GE(+(x3, 1), java.lang.Object(ARRAY(x0)), 0)
    • (x0[0] ≥ 0∧[1] + x3[0] + x0[0] ≥ 0∧x4[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)
    • (x0[0] ≥ 0∧[1] + x3[0] + x0[0] ≥ 0∧x4[0] ≥ 0∧x3[0] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[bni_27 + (-1)Bound*bni_27] + [bni_27]x0[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)

  • 3065_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4, -1), <(x4, x0)), >(x0, -1)), x3, java.lang.Object(ARRAY(x0)), x4)
    • ([1] + x4[2] + x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧[(-1)bni_29] = 0∧[(-1)Bound*bni_29] + [bni_29]x4[2] + [bni_29]x0[2] ≥ 0∧0 = 0∧[(-1)bso_30] ≥ 0)

  • COND_3065_0_DISPLAY_GE1(TRUE, x3, java.lang.Object(ARRAY(x0)), x4) → 3065_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), +(x4, 1))
    • ([1] + x4[2] + x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31] = 0∧[(-1)Bound*bni_31] + [bni_31]x4[2] + [bni_31]x0[2] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)
    • ([1] + x4[2] + x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31] = 0∧[(-1)Bound*bni_31] + [bni_31]x4[2] + [bni_31]x0[2] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 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) = [3]   
POL(3065_0_DISPLAY_GE(x1, x2, x3)) = [-1] + [-1]x2 + [-1]x1   
POL(java.lang.Object(x1)) = [-1] + [-1]x1   
POL(ARRAY(x1)) = [-1] + x1   
POL(COND_3065_0_DISPLAY_GE(x1, x2, x3, x4)) = [-1] + [-1]x3 + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>=(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(0) = 0   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(COND_3065_0_DISPLAY_GE1(x1, x2, x3, x4)) = [-1] + [-1]x3 + [-1]x2   
POL(<(x1, x2)) = [-1]   

The following pairs are in P>:

COND_3065_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1]) → 3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)

The following pairs are in Pbound:

3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])
COND_3065_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1]) → 3065_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)

The following pairs are in P:

3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3065_0_DISPLAY_GE(&&(&&(&&(>=(x4[0], x0[0]), >(x3[0], -1)), >(x0[0], 0)), >(x0[0], +(x3[0], 1))), x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])
3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])
COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))

At least the following rules have been oriented under context sensitive arithmetic replacement:

TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1

(32) Obligation:

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


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 3065_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3065_0_DISPLAY_GE(x4[0] >= x0[0] && x3[0] > -1 && x0[0] > 0 && x0[0] > x3[0] + 1, x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])
(2): 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(x4[2] > -1 && x4[2] < x0[2] && x0[2] > -1, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])
(3): COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), x4[3] + 1)

(3) -> (0), if (x3[3]* x3[0]java.lang.Object(ARRAY(x0[3])) →* java.lang.Object(ARRAY(x0[0]))∧x4[3] + 1* x4[0])


(3) -> (2), if (x3[3]* x3[2]java.lang.Object(ARRAY(x0[3])) →* java.lang.Object(ARRAY(x0[2]))∧x4[3] + 1* x4[2])


(2) -> (3), if (x4[2] > -1 && x4[2] < x0[2] && x0[2] > -1x3[2]* x3[3]java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[3]))∧x4[2]* x4[3])



The set Q is empty.

(33) IDependencyGraphProof (EQUIVALENT transformation)

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

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


R is empty.

The integer pair graph contains the following rules and edges:
(3): COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), x4[3] + 1)
(2): 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(x4[2] > -1 && x4[2] < x0[2] && x0[2] > -1, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])

(3) -> (2), if (x3[3]* x3[2]java.lang.Object(ARRAY(x0[3])) →* java.lang.Object(ARRAY(x0[2]))∧x4[3] + 1* x4[2])


(2) -> (3), if (x4[2] > -1 && x4[2] < x0[2] && x0[2] > -1x3[2]* x3[3]java.lang.Object(ARRAY(x0[2])) →* java.lang.Object(ARRAY(x0[3]))∧x4[2]* x4[3])



The set Q is empty.

(35) 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.IdpDefaultShapeHeuristic@265e5b08 Constraint Generator: NonInfConstraintGenerator: PathGenerator: MetricPathGenerator: Max Left Steps: 1 Max Right Steps: 1

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


For Pair COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1)) the following chains were created:
  • We consider the chain 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]), COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1)), 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) which results in the following constraint:

    (1)    (&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1))=TRUEx3[2]=x3[3]java.lang.Object(ARRAY(x0[2]))=java.lang.Object(ARRAY(x0[3]))∧x4[2]=x4[3]x3[3]=x3[2]1java.lang.Object(ARRAY(x0[3]))=java.lang.Object(ARRAY(x0[2]1))∧+(x4[3], 1)=x4[2]1COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥NonInfC∧COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))∧(UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥))



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

    (2)    (>(x0[2], -1)=TRUE>(x4[2], -1)=TRUE<(x4[2], x0[2])=TRUECOND_3065_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧COND_3065_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), +(x4[2], 1))∧(UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥))



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

    (3)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-4)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x4[2] + [(2)bni_19]x0[2] ≥ 0∧[(-1)bso_20] ≥ 0)



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

    (4)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-4)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x4[2] + [(2)bni_19]x0[2] ≥ 0∧[(-1)bso_20] ≥ 0)



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

    (5)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-4)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x4[2] + [(2)bni_19]x0[2] ≥ 0∧[(-1)bso_20] ≥ 0)



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

    (6)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧0 = 0∧[(-4)bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x4[2] + [(2)bni_19]x0[2] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)



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

    (7)    ([1] + x4[2] + x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧0 = 0∧[(-2)bni_19 + (-1)Bound*bni_19] + [bni_19]x4[2] + [(2)bni_19]x0[2] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)







For Pair 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) the following chains were created:
  • We consider the chain 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]), COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1)) which results in the following constraint:

    (8)    (&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1))=TRUEx3[2]=x3[3]java.lang.Object(ARRAY(x0[2]))=java.lang.Object(ARRAY(x0[3]))∧x4[2]=x4[3]3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])∧(UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥))



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

    (9)    (>(x0[2], -1)=TRUE>(x4[2], -1)=TRUE<(x4[2], x0[2])=TRUE3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])∧(UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥))



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

    (10)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧[(-3)bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x4[2] + [(2)bni_21]x0[2] ≥ 0∧[1 + (-1)bso_22] ≥ 0)



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

    (11)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧[(-3)bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x4[2] + [(2)bni_21]x0[2] ≥ 0∧[1 + (-1)bso_22] ≥ 0)



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

    (12)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧[(-3)bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x4[2] + [(2)bni_21]x0[2] ≥ 0∧[1 + (-1)bso_22] ≥ 0)



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

    (13)    (x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] + [-1] + [-1]x4[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧0 = 0∧[(-3)bni_21 + (-1)Bound*bni_21] + [(-1)bni_21]x4[2] + [(2)bni_21]x0[2] ≥ 0∧0 = 0∧[1 + (-1)bso_22] ≥ 0)



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

    (14)    ([1] + x4[2] + x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧0 = 0∧[(-1)bni_21 + (-1)Bound*bni_21] + [bni_21]x4[2] + [(2)bni_21]x0[2] ≥ 0∧0 = 0∧[1 + (-1)bso_22] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))
    • ([1] + x4[2] + x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧0 = 0∧[(-2)bni_19 + (-1)Bound*bni_19] + [bni_19]x4[2] + [(2)bni_19]x0[2] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)

  • 3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])
    • ([1] + x4[2] + x0[2] ≥ 0∧x4[2] ≥ 0∧x0[2] ≥ 0 ⇒ (UIncreasing(COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])), ≥)∧0 = 0∧[(-1)bni_21 + (-1)Bound*bni_21] + [bni_21]x4[2] + [(2)bni_21]x0[2] ≥ 0∧0 = 0∧[1 + (-1)bso_22] ≥ 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) = [3]   
POL(COND_3065_0_DISPLAY_GE1(x1, x2, x3, x4)) = [-1]x4 + [-1]x3   
POL(java.lang.Object(x1)) = [2] + [2]x1   
POL(ARRAY(x1)) = [1] + [-1]x1   
POL(3065_0_DISPLAY_GE(x1, x2, x3)) = [1] + [-1]x3 + [-1]x2   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   

The following pairs are in P>:

3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])

The following pairs are in Pbound:

COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))
3065_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3065_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])

The following pairs are in P:

COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))

At least the following rules have been oriented under context sensitive arithmetic replacement:

FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1

(36) 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:
(3): COND_3065_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3065_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), x4[3] + 1)


The set Q is empty.

(37) IDependencyGraphProof (EQUIVALENT transformation)

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

(38) TRUE

(39) Obligation:

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

(40) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 15 rules for P and 0 rules for R.


P rules:
491_0_init_Load(EOS(STATIC_491), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, i55) → 493_0_init_ArrayLength(EOS(STATIC_493), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, i55, java.lang.Object(ARRAY(i29)))
493_0_init_ArrayLength(EOS(STATIC_493), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, i55, java.lang.Object(ARRAY(i29))) → 495_0_init_GE(EOS(STATIC_495), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, i55, i29) | >=(i29, 0)
495_0_init_GE(EOS(STATIC_495), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, i55, i29) → 499_0_init_GE(EOS(STATIC_499), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, i55, i29)
499_0_init_GE(EOS(STATIC_499), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, i55, i29) → 503_0_init_Load(EOS(STATIC_503), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55) | <(i55, i29)
503_0_init_Load(EOS(STATIC_503), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55) → 507_0_init_Load(EOS(STATIC_507), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29)))
507_0_init_Load(EOS(STATIC_507), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29))) → 511_0_init_Load(EOS(STATIC_511), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29)), i55)
511_0_init_Load(EOS(STATIC_511), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29)), i55) → 515_0_init_ConstantStackPush(EOS(STATIC_515), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29)), i55, i55)
515_0_init_ConstantStackPush(EOS(STATIC_515), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29)), i55, i55) → 519_0_init_IntArithmetic(EOS(STATIC_519), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29)), i55, i55)
519_0_init_IntArithmetic(EOS(STATIC_519), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29)), i55, i55) → 523_0_init_ArrayAccess(EOS(STATIC_523), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29)), i55) | >=(i55, 0)
523_0_init_ArrayAccess(EOS(STATIC_523), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29)), i55) → 527_0_init_ArrayAccess(EOS(STATIC_527), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29)), i55)
527_0_init_ArrayAccess(EOS(STATIC_527), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, java.lang.Object(ARRAY(i29)), i55) → 533_0_init_Inc(EOS(STATIC_533), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55) | <(i55, i29)
533_0_init_Inc(EOS(STATIC_533), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55) → 536_0_init_JMP(EOS(STATIC_536), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), +(i55, 1)) | >=(i55, 0)
536_0_init_JMP(EOS(STATIC_536), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i60) → 540_0_init_Load(EOS(STATIC_540), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i60)
540_0_init_Load(EOS(STATIC_540), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i60) → 487_0_init_Load(EOS(STATIC_487), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i60)
487_0_init_Load(EOS(STATIC_487), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55) → 491_0_init_Load(EOS(STATIC_491), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i55, i55)
R rules:

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


P rules:
491_0_init_Load(EOS(STATIC_491), x0, java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), x1, x1) → 491_0_init_Load(EOS(STATIC_491), x0, java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), +(x1, 1), +(x1, 1)) | &&(&&(>(+(x1, 1), 0), <(x1, x0)), >(+(x0, 1), 0))
R rules:

Filtered ground terms:



491_0_init_Load(x1, x2, x3, x4, x5, x6, x7) → 491_0_init_Load(x2, x3, x4, x5, x6, x7)
EOS(x1) → EOS
Cond_491_0_init_Load(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_491_0_init_Load(x1, x3, x4, x5, x6, x7, x8)

Filtered duplicate args:



491_0_init_Load(x1, x2, x3, x4, x5, x6) → 491_0_init_Load(x4, x6)
Cond_491_0_init_Load(x1, x2, x3, x4, x5, x6, x7) → Cond_491_0_init_Load(x1, x5, x7)

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


P rules:
491_0_init_Load(java.lang.Object(ARRAY(x0)), x1) → 491_0_init_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)) | &&(&&(>(x1, -1), <(x1, x0)), >(x0, -1))
R rules:

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


P rules:
491_0_INIT_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_491_0_INIT_LOAD(&&(&&(>(x1, -1), <(x1, x0)), >(x0, -1)), java.lang.Object(ARRAY(x0)), x1)
COND_491_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
R rules:

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

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_491_0_INIT_LOAD(x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1, java.lang.Object(ARRAY(x0[0])), x1[0])
(1): COND_491_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), x1[1] + 1)

(0) -> (1), if (x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1java.lang.Object(ARRAY(x0[0])) →* java.lang.Object(ARRAY(x0[1]))∧x1[0]* x1[1])


(1) -> (0), if (java.lang.Object(ARRAY(x0[1])) →* java.lang.Object(ARRAY(x0[0]))∧x1[1] + 1* x1[0])



The set Q is empty.

(42) 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@67f5740f 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 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_491_0_INIT_LOAD(&&(&&(>(x1, -1), <(x1, x0)), >(x0, -1)), java.lang.Object(ARRAY(x0)), x1) the following chains were created:
  • We consider the chain 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_491_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)) which results in the following constraint:

    (1)    (&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[1]))∧x1[0]=x1[1]491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (2)    (>(x0[0], -1)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (3)    (x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] + [bni_10]x0[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (4)    (x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] + [bni_10]x0[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (5)    (x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] + [bni_10]x0[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (6)    ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)Bound*bni_10] + [bni_10]x0[0] ≥ 0∧[(-1)bso_11] ≥ 0)







For Pair COND_491_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1)) the following chains were created:
  • We consider the chain COND_491_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)) which results in the following constraint:

    (7)    (COND_491_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥NonInfC∧COND_491_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))∧(UIncreasing(491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥))



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

    (8)    ((UIncreasing(491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (9)    ((UIncreasing(491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (10)    ((UIncreasing(491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (11)    ((UIncreasing(491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_13] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_491_0_INIT_LOAD(&&(&&(>(x1, -1), <(x1, x0)), >(x0, -1)), java.lang.Object(ARRAY(x0)), x1)
    • ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)Bound*bni_10] + [bni_10]x0[0] ≥ 0∧[(-1)bso_11] ≥ 0)

  • COND_491_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
    • ((UIncreasing(491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_13] ≥ 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(491_0_INIT_LOAD(x1, x2)) = [-1] + [-1]x2 + x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1)) = x1   
POL(COND_491_0_INIT_LOAD(x1, x2, x3)) = [-1] + [-1]x3 + x2   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   

The following pairs are in P>:

COND_491_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))

The following pairs are in Pbound:

491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])

The following pairs are in P:

491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_491_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])

There are no usable rules.

(43) Complex Obligation (AND)

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

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_491_0_INIT_LOAD(x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1, java.lang.Object(ARRAY(x0[0])), x1[0])


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:

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_491_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 491_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), x1[1] + 1)


The set Q is empty.

(48) IDependencyGraphProof (EQUIVALENT transformation)

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

(49) TRUE

(50) Obligation:

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

(51) SCCToIDPv1Proof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Log:

Generated 12 rules for P and 0 rules for R.


P rules:
250_0_main_Load(EOS(STATIC_250), java.lang.Object(ARRAY(i5)), i30, i30) → 252_0_main_ArrayLength(EOS(STATIC_252), java.lang.Object(ARRAY(i5)), i30, i30, java.lang.Object(ARRAY(i5)))
252_0_main_ArrayLength(EOS(STATIC_252), java.lang.Object(ARRAY(i5)), i30, i30, java.lang.Object(ARRAY(i5))) → 255_0_main_GE(EOS(STATIC_255), java.lang.Object(ARRAY(i5)), i30, i30, i5) | >=(i5, 0)
255_0_main_GE(EOS(STATIC_255), java.lang.Object(ARRAY(i5)), i30, i30, i5) → 258_0_main_GE(EOS(STATIC_258), java.lang.Object(ARRAY(i5)), i30, i30, i5)
258_0_main_GE(EOS(STATIC_258), java.lang.Object(ARRAY(i5)), i30, i30, i5) → 262_0_main_Load(EOS(STATIC_262), java.lang.Object(ARRAY(i5)), i30) | <(i30, i5)
262_0_main_Load(EOS(STATIC_262), java.lang.Object(ARRAY(i5)), i30) → 266_0_main_ConstantStackPush(EOS(STATIC_266), java.lang.Object(ARRAY(i5)), i30)
266_0_main_ConstantStackPush(EOS(STATIC_266), java.lang.Object(ARRAY(i5)), i30) → 270_0_main_IntArithmetic(EOS(STATIC_270), java.lang.Object(ARRAY(i5)), i30)
270_0_main_IntArithmetic(EOS(STATIC_270), java.lang.Object(ARRAY(i5)), i30) → 275_0_main_Store(EOS(STATIC_275), java.lang.Object(ARRAY(i5)), i30)
275_0_main_Store(EOS(STATIC_275), java.lang.Object(ARRAY(i5)), i30) → 279_0_main_Inc(EOS(STATIC_279), java.lang.Object(ARRAY(i5)), i30)
279_0_main_Inc(EOS(STATIC_279), java.lang.Object(ARRAY(i5)), i30) → 283_0_main_JMP(EOS(STATIC_283), java.lang.Object(ARRAY(i5)), +(i30, 1)) | >=(i30, 0)
283_0_main_JMP(EOS(STATIC_283), java.lang.Object(ARRAY(i5)), i34) → 287_0_main_Load(EOS(STATIC_287), java.lang.Object(ARRAY(i5)), i34)
287_0_main_Load(EOS(STATIC_287), java.lang.Object(ARRAY(i5)), i34) → 247_0_main_Load(EOS(STATIC_247), java.lang.Object(ARRAY(i5)), i34)
247_0_main_Load(EOS(STATIC_247), java.lang.Object(ARRAY(i5)), i30) → 250_0_main_Load(EOS(STATIC_250), java.lang.Object(ARRAY(i5)), i30, i30)
R rules:

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


P rules:
250_0_main_Load(EOS(STATIC_250), java.lang.Object(ARRAY(x0)), x1, x1) → 250_0_main_Load(EOS(STATIC_250), java.lang.Object(ARRAY(x0)), +(x1, 1), +(x1, 1)) | &&(&&(>(+(x1, 1), 0), <(x1, x0)), >(+(x0, 1), 0))
R rules:

Filtered ground terms:



250_0_main_Load(x1, x2, x3, x4) → 250_0_main_Load(x2, x3, x4)
EOS(x1) → EOS
Cond_250_0_main_Load(x1, x2, x3, x4, x5) → Cond_250_0_main_Load(x1, x3, x4, x5)

Filtered duplicate args:



250_0_main_Load(x1, x2, x3) → 250_0_main_Load(x1, x3)
Cond_250_0_main_Load(x1, x2, x3, x4) → Cond_250_0_main_Load(x1, x2, x4)

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


P rules:
250_0_main_Load(java.lang.Object(ARRAY(x0)), x1) → 250_0_main_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)) | &&(&&(>(x1, -1), <(x1, x0)), >(x0, -1))
R rules:

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


P rules:
250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_250_0_MAIN_LOAD(&&(&&(>(x1, -1), <(x1, x0)), >(x0, -1)), java.lang.Object(ARRAY(x0)), x1)
COND_250_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
R rules:

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

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_250_0_MAIN_LOAD(x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1, java.lang.Object(ARRAY(x0[0])), x1[0])
(1): COND_250_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), x1[1] + 1)

(0) -> (1), if (x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1java.lang.Object(ARRAY(x0[0])) →* java.lang.Object(ARRAY(x0[1]))∧x1[0]* x1[1])


(1) -> (0), if (java.lang.Object(ARRAY(x0[1])) →* java.lang.Object(ARRAY(x0[0]))∧x1[1] + 1* x1[0])



The set Q is empty.

(53) 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@67f5740f 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 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_250_0_MAIN_LOAD(&&(&&(>(x1, -1), <(x1, x0)), >(x0, -1)), java.lang.Object(ARRAY(x0)), x1) the following chains were created:
  • We consider the chain 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_250_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)) which results in the following constraint:

    (1)    (&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1))=TRUEjava.lang.Object(ARRAY(x0[0]))=java.lang.Object(ARRAY(x0[1]))∧x1[0]=x1[1]250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (2)    (>(x0[0], -1)=TRUE>(x1[0], -1)=TRUE<(x1[0], x0[0])=TRUE250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥))



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

    (3)    (x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] + [bni_10]x0[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (4)    (x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] + [bni_10]x0[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (5)    (x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] + [-1] + [-1]x1[0] ≥ 0 ⇒ (UIncreasing(COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)bni_10 + (-1)Bound*bni_10] + [(-1)bni_10]x1[0] + [bni_10]x0[0] ≥ 0∧[(-1)bso_11] ≥ 0)



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

    (6)    ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)Bound*bni_10] + [bni_10]x0[0] ≥ 0∧[(-1)bso_11] ≥ 0)







For Pair COND_250_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1)) the following chains were created:
  • We consider the chain COND_250_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)) which results in the following constraint:

    (7)    (COND_250_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥NonInfC∧COND_250_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))∧(UIncreasing(250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥))



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

    (8)    ((UIncreasing(250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (9)    ((UIncreasing(250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (10)    ((UIncreasing(250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥)∧[bni_12] = 0∧[1 + (-1)bso_13] ≥ 0)



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

    (11)    ((UIncreasing(250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_13] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_250_0_MAIN_LOAD(&&(&&(>(x1, -1), <(x1, x0)), >(x0, -1)), java.lang.Object(ARRAY(x0)), x1)
    • ([1] + x1[0] + x0[0] ≥ 0∧x1[0] ≥ 0∧x0[0] ≥ 0 ⇒ (UIncreasing(COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])), ≥)∧[(-1)Bound*bni_10] + [bni_10]x0[0] ≥ 0∧[(-1)bso_11] ≥ 0)

  • COND_250_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
    • ((UIncreasing(250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))), ≥)∧[bni_12] = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_13] ≥ 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(250_0_MAIN_LOAD(x1, x2)) = [-1] + [-1]x2 + x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1)) = x1   
POL(COND_250_0_MAIN_LOAD(x1, x2, x3)) = [-1] + [-1]x3 + x2   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(-1) = [-1]   
POL(<(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   

The following pairs are in P>:

COND_250_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))

The following pairs are in Pbound:

250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])

The following pairs are in P:

250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_250_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])

There are no usable rules.

(54) Complex Obligation (AND)

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

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_250_0_MAIN_LOAD(x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1, java.lang.Object(ARRAY(x0[0])), x1[0])


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:

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_250_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 250_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), x1[1] + 1)


The set Q is empty.

(59) IDependencyGraphProof (EQUIVALENT transformation)

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

(60) TRUE