(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 362 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 101 rules for P and 273 rules for R.


P rules:
3101_0_mysteriousRecursive_Load(EOS(STATIC_3101), java.lang.Object(ARRAY(i29)), i538, i538) → 3104_0_mysteriousRecursive_ArrayLength(EOS(STATIC_3104), java.lang.Object(ARRAY(i29)), i538, i538, java.lang.Object(ARRAY(i29)))
3104_0_mysteriousRecursive_ArrayLength(EOS(STATIC_3104), java.lang.Object(ARRAY(i29)), i538, i538, java.lang.Object(ARRAY(i29))) → 3107_0_mysteriousRecursive_ConstantStackPush(EOS(STATIC_3107), java.lang.Object(ARRAY(i29)), i538, i538, i29) | >=(i29, 0)
3107_0_mysteriousRecursive_ConstantStackPush(EOS(STATIC_3107), java.lang.Object(ARRAY(i29)), i538, i538, i29) → 3110_0_mysteriousRecursive_IntArithmetic(EOS(STATIC_3110), java.lang.Object(ARRAY(i29)), i538, i538, i29, 1)
3110_0_mysteriousRecursive_IntArithmetic(EOS(STATIC_3110), java.lang.Object(ARRAY(i29)), i538, i538, i29, matching1) → 3113_0_mysteriousRecursive_NE(EOS(STATIC_3113), java.lang.Object(ARRAY(i29)), i538, i538, -(i29, 1)) | &&(>(i29, 0), =(matching1, 1))
3113_0_mysteriousRecursive_NE(EOS(STATIC_3113), java.lang.Object(ARRAY(i29)), i538, i538, i541) → 3116_0_mysteriousRecursive_NE(EOS(STATIC_3116), java.lang.Object(ARRAY(i29)), i538, i538, i541)
3113_0_mysteriousRecursive_NE(EOS(STATIC_3113), java.lang.Object(ARRAY(i29)), i541, i541, i541) → 3117_0_mysteriousRecursive_NE(EOS(STATIC_3117), java.lang.Object(ARRAY(i29)), i541, i541, i541)
3116_0_mysteriousRecursive_NE(EOS(STATIC_3116), java.lang.Object(ARRAY(i29)), i538, i538, i541) → 3120_0_mysteriousRecursive_Load(EOS(STATIC_3120), java.lang.Object(ARRAY(i29)), i538) | !(=(i538, i541))
3120_0_mysteriousRecursive_Load(EOS(STATIC_3120), java.lang.Object(ARRAY(i29)), i538) → 3124_0_mysteriousRecursive_Store(EOS(STATIC_3124), java.lang.Object(ARRAY(i29)), i538, i538)
3124_0_mysteriousRecursive_Store(EOS(STATIC_3124), java.lang.Object(ARRAY(i29)), i538, i538) → 3128_0_mysteriousRecursive_Load(EOS(STATIC_3128), java.lang.Object(ARRAY(i29)), i538, i538)
3128_0_mysteriousRecursive_Load(EOS(STATIC_3128), java.lang.Object(ARRAY(i29)), i538, i538) → 3132_0_mysteriousRecursive_Load(EOS(STATIC_3132), java.lang.Object(ARRAY(i29)), i538, i538, i538)
3132_0_mysteriousRecursive_Load(EOS(STATIC_3132), java.lang.Object(ARRAY(i29)), i538, i538, i538) → 3939_0_mysteriousRecursive_Load(EOS(STATIC_3939), java.lang.Object(ARRAY(i29)), i538, i538, i538)
3939_0_mysteriousRecursive_Load(EOS(STATIC_3939), java.lang.Object(ARRAY(i836)), i837, i838, i838) → 3949_0_mysteriousRecursive_ArrayLength(EOS(STATIC_3949), java.lang.Object(ARRAY(i836)), i837, i838, i838, java.lang.Object(ARRAY(i836)))
3949_0_mysteriousRecursive_ArrayLength(EOS(STATIC_3949), java.lang.Object(ARRAY(i836)), i837, i838, i838, java.lang.Object(ARRAY(i836))) → 3954_0_mysteriousRecursive_GE(EOS(STATIC_3954), java.lang.Object(ARRAY(i836)), i837, i838, i838, i836) | >=(i836, 0)
3954_0_mysteriousRecursive_GE(EOS(STATIC_3954), java.lang.Object(ARRAY(i836)), i837, i838, i838, i836) → 3957_0_mysteriousRecursive_GE(EOS(STATIC_3957), java.lang.Object(ARRAY(i836)), i837, i838, i838, i836)
3957_0_mysteriousRecursive_GE(EOS(STATIC_3957), java.lang.Object(ARRAY(i836)), i837, i838, i838, i836) → 3965_0_mysteriousRecursive_Load(EOS(STATIC_3965), java.lang.Object(ARRAY(i836)), i837, i838) | <(i838, i836)
3965_0_mysteriousRecursive_Load(EOS(STATIC_3965), java.lang.Object(ARRAY(i836)), i837, i838) → 3972_0_mysteriousRecursive_Load(EOS(STATIC_3972), java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)))
3972_0_mysteriousRecursive_Load(EOS(STATIC_3972), java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836))) → 4001_0_mysteriousRecursive_Load(EOS(STATIC_4001), java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837)
4001_0_mysteriousRecursive_Load(EOS(STATIC_4001), java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837) → 4010_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4010), java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838)
4010_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4010), java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838) → 4013_0_swap3_Load(EOS(STATIC_4013), java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838)
4013_0_swap3_Load(EOS(STATIC_4013), java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838) → 4020_0_swap3_Load(EOS(STATIC_4020), java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)))
4020_0_swap3_Load(EOS(STATIC_4020), java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836))) → 4026_0_swap3_ArrayAccess(EOS(STATIC_4026), java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837, i838, java.lang.Object(ARRAY(i836)), i837)
4026_0_swap3_ArrayAccess(EOS(STATIC_4026), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4031_0_swap3_ArrayAccess(EOS(STATIC_4031), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4031_0_swap3_ArrayAccess(EOS(STATIC_4031), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4039_0_swap3_ArrayAccess(EOS(STATIC_4039), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4039_0_swap3_ArrayAccess(EOS(STATIC_4039), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4046_0_swap3_Store(EOS(STATIC_4046), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838) | <(i859, i836)
4046_0_swap3_Store(EOS(STATIC_4046), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838) → 4053_0_swap3_Load(EOS(STATIC_4053), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838)
4053_0_swap3_Load(EOS(STATIC_4053), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838) → 4062_0_swap3_Load(EOS(STATIC_4062), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)))
4062_0_swap3_Load(EOS(STATIC_4062), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836))) → 4071_0_swap3_Load(EOS(STATIC_4071), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i838, java.lang.Object(ARRAY(i836)), i859)
4071_0_swap3_Load(EOS(STATIC_4071), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i838, java.lang.Object(ARRAY(i836)), i859) → 4080_0_swap3_Load(EOS(STATIC_4080), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i838, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)))
4080_0_swap3_Load(EOS(STATIC_4080), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i838, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836))) → 4089_0_swap3_ArrayAccess(EOS(STATIC_4089), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i838, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i838)
4089_0_swap3_ArrayAccess(EOS(STATIC_4089), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4099_0_swap3_ArrayAccess(EOS(STATIC_4099), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4099_0_swap3_ArrayAccess(EOS(STATIC_4099), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4110_0_swap3_ArrayAccess(EOS(STATIC_4110), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4110_0_swap3_ArrayAccess(EOS(STATIC_4110), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4121_0_swap3_ArrayAccess(EOS(STATIC_4121), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) | <(i879, i836)
4121_0_swap3_ArrayAccess(EOS(STATIC_4121), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4131_0_swap3_ArrayAccess(EOS(STATIC_4131), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4131_0_swap3_ArrayAccess(EOS(STATIC_4131), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4144_0_swap3_Load(EOS(STATIC_4144), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) | <(i859, i836)
4144_0_swap3_Load(EOS(STATIC_4144), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4154_0_swap3_Load(EOS(STATIC_4154), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, i879, java.lang.Object(ARRAY(i836)))
4154_0_swap3_Load(EOS(STATIC_4154), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, i879, java.lang.Object(ARRAY(i836))) → 4163_0_swap3_Load(EOS(STATIC_4163), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4163_0_swap3_Load(EOS(STATIC_4163), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4174_0_swap3_ArrayAccess(EOS(STATIC_4174), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4174_0_swap3_ArrayAccess(EOS(STATIC_4174), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4184_0_swap3_ArrayAccess(EOS(STATIC_4184), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4184_0_swap3_ArrayAccess(EOS(STATIC_4184), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4196_0_swap3_Return(EOS(STATIC_4196), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) | <(i879, i836)
4196_0_swap3_Return(EOS(STATIC_4196), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) → 4207_0_mysteriousRecursive_Load(EOS(STATIC_4207), java.lang.Object(ARRAY(i836)), i859, i879)
4207_0_mysteriousRecursive_Load(EOS(STATIC_4207), java.lang.Object(ARRAY(i836)), i859, i879) → 4217_0_mysteriousRecursive_Load(EOS(STATIC_4217), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)))
4217_0_mysteriousRecursive_Load(EOS(STATIC_4217), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836))) → 4227_0_mysteriousRecursive_ConstantStackPush(EOS(STATIC_4227), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4227_0_mysteriousRecursive_ConstantStackPush(EOS(STATIC_4227), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4238_0_mysteriousRecursive_IntArithmetic(EOS(STATIC_4238), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, 1)
4238_0_mysteriousRecursive_IntArithmetic(EOS(STATIC_4238), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, matching1) → 4245_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4245), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), +(i859, 1)) | &&(>=(i859, 0), =(matching1, 1))
4245_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4245), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i893) → 4256_1_mysteriousRecursive_InvokeMethod(4256_0_mysteriousRecursive_Load(EOS(STATIC_4256), java.lang.Object(ARRAY(i836)), i893), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i893)
4256_0_mysteriousRecursive_Load(EOS(STATIC_4256), java.lang.Object(ARRAY(i836)), i893) → 4266_0_mysteriousRecursive_Load(EOS(STATIC_4266), java.lang.Object(ARRAY(i836)), i893)
4256_1_mysteriousRecursive_InvokeMethod(3963_0_mysteriousRecursive_Return(EOS(STATIC_3963)), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i898) → 4299_0_mysteriousRecursive_Return(EOS(STATIC_4299), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i898)
4266_0_mysteriousRecursive_Load(EOS(STATIC_4266), java.lang.Object(ARRAY(i836)), i893) → 3097_0_mysteriousRecursive_Load(EOS(STATIC_3097), java.lang.Object(ARRAY(i836)), i893)
3097_0_mysteriousRecursive_Load(EOS(STATIC_3097), java.lang.Object(ARRAY(i29)), i538) → 3101_0_mysteriousRecursive_Load(EOS(STATIC_3101), java.lang.Object(ARRAY(i29)), i538, i538)
4299_0_mysteriousRecursive_Return(EOS(STATIC_4299), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i898) → 4310_0_mysteriousRecursive_Load(EOS(STATIC_4310), java.lang.Object(ARRAY(i836)), i859, i879)
4310_0_mysteriousRecursive_Load(EOS(STATIC_4310), java.lang.Object(ARRAY(i836)), i859, i879) → 4326_0_mysteriousRecursive_Load(EOS(STATIC_4326), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)))
4326_0_mysteriousRecursive_Load(EOS(STATIC_4326), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836))) → 4338_0_mysteriousRecursive_Load(EOS(STATIC_4338), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4338_0_mysteriousRecursive_Load(EOS(STATIC_4338), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4351_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4351), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4351_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4351), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) → 4366_0_swap3_Load(EOS(STATIC_4366), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4366_0_swap3_Load(EOS(STATIC_4366), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) → 4398_0_swap3_Load(EOS(STATIC_4398), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)))
4398_0_swap3_Load(EOS(STATIC_4398), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836))) → 4412_0_swap3_ArrayAccess(EOS(STATIC_4412), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4412_0_swap3_ArrayAccess(EOS(STATIC_4412), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4426_0_swap3_ArrayAccess(EOS(STATIC_4426), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4426_0_swap3_ArrayAccess(EOS(STATIC_4426), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4444_0_swap3_Store(EOS(STATIC_4444), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) | <(i859, i836)
4444_0_swap3_Store(EOS(STATIC_4444), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) → 4459_0_swap3_Load(EOS(STATIC_4459), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4459_0_swap3_Load(EOS(STATIC_4459), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) → 4474_0_swap3_Load(EOS(STATIC_4474), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)))
4474_0_swap3_Load(EOS(STATIC_4474), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836))) → 4489_0_swap3_Load(EOS(STATIC_4489), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4489_0_swap3_Load(EOS(STATIC_4489), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4506_0_swap3_Load(EOS(STATIC_4506), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)))
4506_0_swap3_Load(EOS(STATIC_4506), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836))) → 4514_0_swap3_ArrayAccess(EOS(STATIC_4514), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4514_0_swap3_ArrayAccess(EOS(STATIC_4514), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4525_0_swap3_ArrayAccess(EOS(STATIC_4525), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4525_0_swap3_ArrayAccess(EOS(STATIC_4525), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4532_0_swap3_ArrayAccess(EOS(STATIC_4532), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) | <(i879, i836)
4532_0_swap3_ArrayAccess(EOS(STATIC_4532), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4538_0_swap3_ArrayAccess(EOS(STATIC_4538), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4538_0_swap3_ArrayAccess(EOS(STATIC_4538), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4546_0_swap3_Load(EOS(STATIC_4546), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) | <(i859, i836)
4546_0_swap3_Load(EOS(STATIC_4546), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4557_0_swap3_Load(EOS(STATIC_4557), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, i879, java.lang.Object(ARRAY(i836)))
4557_0_swap3_Load(EOS(STATIC_4557), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, i879, java.lang.Object(ARRAY(i836))) → 4565_0_swap3_Load(EOS(STATIC_4565), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4565_0_swap3_Load(EOS(STATIC_4565), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4575_0_swap3_ArrayAccess(EOS(STATIC_4575), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4575_0_swap3_ArrayAccess(EOS(STATIC_4575), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4583_0_swap3_ArrayAccess(EOS(STATIC_4583), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4583_0_swap3_ArrayAccess(EOS(STATIC_4583), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4587_0_swap3_Return(EOS(STATIC_4587), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) | <(i879, i836)
4587_0_swap3_Return(EOS(STATIC_4587), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) → 4598_0_mysteriousRecursive_Inc(EOS(STATIC_4598), java.lang.Object(ARRAY(i836)), i859, i879)
4598_0_mysteriousRecursive_Inc(EOS(STATIC_4598), java.lang.Object(ARRAY(i836)), i859, i879) → 4608_0_mysteriousRecursive_JMP(EOS(STATIC_4608), java.lang.Object(ARRAY(i836)), i859, +(i879, 1)) | >=(i879, 0)
4608_0_mysteriousRecursive_JMP(EOS(STATIC_4608), java.lang.Object(ARRAY(i836)), i859, i999) → 4619_0_mysteriousRecursive_Load(EOS(STATIC_4619), java.lang.Object(ARRAY(i836)), i859, i999)
4619_0_mysteriousRecursive_Load(EOS(STATIC_4619), java.lang.Object(ARRAY(i836)), i859, i999) → 3923_0_mysteriousRecursive_Load(EOS(STATIC_3923), java.lang.Object(ARRAY(i836)), i859, i999)
3923_0_mysteriousRecursive_Load(EOS(STATIC_3923), java.lang.Object(ARRAY(i816)), i817, i818) → 3938_0_mysteriousRecursive_Load(EOS(STATIC_3938), java.lang.Object(ARRAY(i816)), i817, i818, i818)
3938_0_mysteriousRecursive_Load(EOS(STATIC_3938), java.lang.Object(ARRAY(i816)), i817, i818, i818) → 3939_0_mysteriousRecursive_Load(EOS(STATIC_3939), java.lang.Object(ARRAY(i816)), i817, i818, i818)
3117_0_mysteriousRecursive_NE(EOS(STATIC_3117), java.lang.Object(ARRAY(i29)), i541, i541, i541) → 3121_0_mysteriousRecursive_Load(EOS(STATIC_3121), java.lang.Object(ARRAY(i29)), i541)
3121_0_mysteriousRecursive_Load(EOS(STATIC_3121), java.lang.Object(ARRAY(i29)), i541) → 3125_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3125), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)))
3125_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_3125), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29))) → 3129_0_display_ConstantStackPush(EOS(STATIC_3129), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)))
3129_0_display_ConstantStackPush(EOS(STATIC_3129), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29))) → 3137_0_display_Store(EOS(STATIC_3137), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0)
3137_0_display_Store(EOS(STATIC_3137), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1) → 3143_0_display_Load(EOS(STATIC_3143), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0) | =(matching1, 0)
3143_0_display_Load(EOS(STATIC_3143), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1) → 3188_0_display_Load(EOS(STATIC_3188), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0) | =(matching1, 0)
3188_0_display_Load(EOS(STATIC_3188), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i545) → 3233_0_display_Load(EOS(STATIC_3233), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i545)
3233_0_display_Load(EOS(STATIC_3233), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i549) → 3310_0_display_Load(EOS(STATIC_3310), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i549)
3310_0_display_Load(EOS(STATIC_3310), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i556) → 3415_0_display_Load(EOS(STATIC_3415), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i556)
3415_0_display_Load(EOS(STATIC_3415), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562) → 3429_0_display_Load(EOS(STATIC_3429), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562, i562)
3429_0_display_Load(EOS(STATIC_3429), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562, i562) → 3444_0_display_ArrayLength(EOS(STATIC_3444), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562, i562, java.lang.Object(ARRAY(i29)))
3444_0_display_ArrayLength(EOS(STATIC_3444), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562, i562, java.lang.Object(ARRAY(i29))) → 3460_0_display_GE(EOS(STATIC_3460), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562, i562, i29) | >=(i29, 0)
3460_0_display_GE(EOS(STATIC_3460), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562, i562, i29) → 3473_0_display_GE(EOS(STATIC_3473), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562, i562, i29)
3460_0_display_GE(EOS(STATIC_3460), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562, i562, i29) → 3474_0_display_GE(EOS(STATIC_3474), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562, i562, i29)
3473_0_display_GE(EOS(STATIC_3473), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562, i562, i29) → 3491_0_display_Return(EOS(STATIC_3491), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29))) | >=(i562, i29)
3491_0_display_Return(EOS(STATIC_3491), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29))) → 3503_0_mysteriousRecursive_Load(EOS(STATIC_3503), java.lang.Object(ARRAY(i29)), i541)
3503_0_mysteriousRecursive_Load(EOS(STATIC_3503), java.lang.Object(ARRAY(i29)), i541) → 3517_0_mysteriousRecursive_Store(EOS(STATIC_3517), java.lang.Object(ARRAY(i29)), i541, i541)
3517_0_mysteriousRecursive_Store(EOS(STATIC_3517), java.lang.Object(ARRAY(i29)), i541, i541) → 3532_0_mysteriousRecursive_Load(EOS(STATIC_3532), java.lang.Object(ARRAY(i29)), i541, i541)
3532_0_mysteriousRecursive_Load(EOS(STATIC_3532), java.lang.Object(ARRAY(i29)), i541, i541) → 3923_0_mysteriousRecursive_Load(EOS(STATIC_3923), java.lang.Object(ARRAY(i29)), i541, i541)
3474_0_display_GE(EOS(STATIC_3474), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562, i562, i29) → 3492_0_display_Inc(EOS(STATIC_3492), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562) | <(i562, i29)
3492_0_display_Inc(EOS(STATIC_3492), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i562) → 3505_0_display_JMP(EOS(STATIC_3505), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), +(i562, 1)) | >=(i562, 0)
3505_0_display_JMP(EOS(STATIC_3505), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i568) → 3519_0_display_Load(EOS(STATIC_3519), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i568)
3519_0_display_Load(EOS(STATIC_3519), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i568) → 3415_0_display_Load(EOS(STATIC_3415), java.lang.Object(ARRAY(i29)), i541, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i568)
R rules:
3954_0_mysteriousRecursive_GE(EOS(STATIC_3954), java.lang.Object(ARRAY(i836)), i837, i838, i838, i836) → 3956_0_mysteriousRecursive_GE(EOS(STATIC_3956), java.lang.Object(ARRAY(i836)), i837, i838, i838, i836)
3956_0_mysteriousRecursive_GE(EOS(STATIC_3956), java.lang.Object(ARRAY(i836)), i837, i838, i838, i836) → 3963_0_mysteriousRecursive_Return(EOS(STATIC_3963)) | >=(i838, i836)
4026_0_swap3_ArrayAccess(EOS(STATIC_4026), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4030_0_swap3_ArrayAccess(EOS(STATIC_4030), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4030_0_swap3_ArrayAccess(EOS(STATIC_4030), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4038_0_<init>_Load(EOS(STATIC_4038), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) | <=(i858, -1)
4031_0_swap3_ArrayAccess(EOS(STATIC_4031), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4040_0_swap3_ArrayAccess(EOS(STATIC_4040), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4038_0_<init>_Load(EOS(STATIC_4038), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4052_0_<init>_InvokeMethod(EOS(STATIC_4052), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4040_0_swap3_ArrayAccess(EOS(STATIC_4040), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4048_0_<init>_Load(EOS(STATIC_4048), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) | >=(i859, i836)
4048_0_<init>_Load(EOS(STATIC_4048), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4063_0_<init>_InvokeMethod(EOS(STATIC_4063), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4052_0_<init>_InvokeMethod(EOS(STATIC_4052), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4061_0_<init>_Load(EOS(STATIC_4061), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4061_0_<init>_Load(EOS(STATIC_4061), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4079_0_<init>_InvokeMethod(EOS(STATIC_4079), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4063_0_<init>_InvokeMethod(EOS(STATIC_4063), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4072_0_<init>_Load(EOS(STATIC_4072), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4072_0_<init>_Load(EOS(STATIC_4072), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4090_0_<init>_InvokeMethod(EOS(STATIC_4090), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4079_0_<init>_InvokeMethod(EOS(STATIC_4079), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4088_0_<init>_Load(EOS(STATIC_4088), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4088_0_<init>_Load(EOS(STATIC_4088), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4107_0_<init>_InvokeMethod(EOS(STATIC_4107), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4089_0_swap3_ArrayAccess(EOS(STATIC_4089), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4098_0_swap3_ArrayAccess(EOS(STATIC_4098), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4090_0_<init>_InvokeMethod(EOS(STATIC_4090), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4101_0_<init>_Load(EOS(STATIC_4101), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4098_0_swap3_ArrayAccess(EOS(STATIC_4098), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4109_0_<init>_Load(EOS(STATIC_4109), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) | <=(i878, -1)
4099_0_swap3_ArrayAccess(EOS(STATIC_4099), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4111_0_swap3_ArrayAccess(EOS(STATIC_4111), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4101_0_<init>_Load(EOS(STATIC_4101), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4123_0_<init>_InvokeMethod(EOS(STATIC_4123), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4107_0_<init>_InvokeMethod(EOS(STATIC_4107), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4119_0_<init>_Load(EOS(STATIC_4119), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4109_0_<init>_Load(EOS(STATIC_4109), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4130_0_<init>_InvokeMethod(EOS(STATIC_4130), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4111_0_swap3_ArrayAccess(EOS(STATIC_4111), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4122_0_<init>_Load(EOS(STATIC_4122), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) | >=(i879, i836)
4119_0_<init>_Load(EOS(STATIC_4119), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4141_0_<init>_InvokeMethod(EOS(STATIC_4141), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4121_0_swap3_ArrayAccess(EOS(STATIC_4121), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4132_0_swap3_ArrayAccess(EOS(STATIC_4132), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4122_0_<init>_Load(EOS(STATIC_4122), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4147_0_<init>_InvokeMethod(EOS(STATIC_4147), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4123_0_<init>_InvokeMethod(EOS(STATIC_4123), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4134_0_<init>_Load(EOS(STATIC_4134), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4130_0_<init>_InvokeMethod(EOS(STATIC_4130), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4142_0_<init>_Load(EOS(STATIC_4142), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4132_0_swap3_ArrayAccess(EOS(STATIC_4132), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4145_0_<init>_Load(EOS(STATIC_4145), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) | >=(i859, i836)
4134_0_<init>_Load(EOS(STATIC_4134), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4157_0_<init>_InvokeMethod(EOS(STATIC_4157), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4141_0_<init>_InvokeMethod(EOS(STATIC_4141), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4153_0_<init>_Load(EOS(STATIC_4153), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4142_0_<init>_Load(EOS(STATIC_4142), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4162_0_<init>_InvokeMethod(EOS(STATIC_4162), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4145_0_<init>_Load(EOS(STATIC_4145), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4166_0_<init>_InvokeMethod(EOS(STATIC_4166), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4147_0_<init>_InvokeMethod(EOS(STATIC_4147), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4156_0_<init>_Load(EOS(STATIC_4156), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4153_0_<init>_Load(EOS(STATIC_4153), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4171_0_<init>_InvokeMethod(EOS(STATIC_4171), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4156_0_<init>_Load(EOS(STATIC_4156), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4178_0_<init>_InvokeMethod(EOS(STATIC_4178), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4157_0_<init>_InvokeMethod(EOS(STATIC_4157), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4167_0_<init>_Load(EOS(STATIC_4167), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4162_0_<init>_InvokeMethod(EOS(STATIC_4162), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4173_0_<init>_Load(EOS(STATIC_4173), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4166_0_<init>_InvokeMethod(EOS(STATIC_4166), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4175_0_<init>_Load(EOS(STATIC_4175), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4167_0_<init>_Load(EOS(STATIC_4167), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4188_0_<init>_InvokeMethod(EOS(STATIC_4188), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4171_0_<init>_InvokeMethod(EOS(STATIC_4171), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4183_0_<init>_Load(EOS(STATIC_4183), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4173_0_<init>_Load(EOS(STATIC_4173), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4194_0_<init>_InvokeMethod(EOS(STATIC_4194), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4174_0_swap3_ArrayAccess(EOS(STATIC_4174), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4185_0_swap3_ArrayAccess(EOS(STATIC_4185), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4175_0_<init>_Load(EOS(STATIC_4175), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4200_0_<init>_InvokeMethod(EOS(STATIC_4200), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4178_0_<init>_InvokeMethod(EOS(STATIC_4178), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4187_0_<init>_Load(EOS(STATIC_4187), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4183_0_<init>_Load(EOS(STATIC_4183), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4192_0_<init>_Load(EOS(STATIC_4192), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4185_0_swap3_ArrayAccess(EOS(STATIC_4185), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4197_0_<init>_Load(EOS(STATIC_4197), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) | >=(i879, i836)
4187_0_<init>_Load(EOS(STATIC_4187), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4211_0_<init>_InvokeMethod(EOS(STATIC_4211), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4188_0_<init>_InvokeMethod(EOS(STATIC_4188), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4201_0_<init>_Load(EOS(STATIC_4201), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4192_0_<init>_Load(EOS(STATIC_4192), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4205_0_<init>_FieldAccess(EOS(STATIC_4205), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4194_0_<init>_InvokeMethod(EOS(STATIC_4194), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4206_0_<init>_Load(EOS(STATIC_4206), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4197_0_<init>_Load(EOS(STATIC_4197), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4220_0_<init>_InvokeMethod(EOS(STATIC_4220), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4200_0_<init>_InvokeMethod(EOS(STATIC_4200), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4209_0_<init>_Load(EOS(STATIC_4209), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4201_0_<init>_Load(EOS(STATIC_4201), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4212_0_<init>_Load(EOS(STATIC_4212), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4205_0_<init>_FieldAccess(EOS(STATIC_4205), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4216_0_<init>_Load(EOS(STATIC_4216), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4206_0_<init>_Load(EOS(STATIC_4206), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4226_0_<init>_InvokeMethod(EOS(STATIC_4226), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4209_0_<init>_Load(EOS(STATIC_4209), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4232_0_<init>_InvokeMethod(EOS(STATIC_4232), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4211_0_<init>_InvokeMethod(EOS(STATIC_4211), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4221_0_<init>_Load(EOS(STATIC_4221), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4212_0_<init>_Load(EOS(STATIC_4212), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4223_0_<init>_FieldAccess(EOS(STATIC_4223), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4216_0_<init>_Load(EOS(STATIC_4216), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4224_0_<init>_InvokeMethod(EOS(STATIC_4224), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4220_0_<init>_InvokeMethod(EOS(STATIC_4220), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4229_0_<init>_Load(EOS(STATIC_4229), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4221_0_<init>_Load(EOS(STATIC_4221), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4241_0_<init>_InvokeMethod(EOS(STATIC_4241), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4223_0_<init>_FieldAccess(EOS(STATIC_4223), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4234_0_<init>_Load(EOS(STATIC_4234), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4224_0_<init>_InvokeMethod(EOS(STATIC_4224), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4235_0_<init>_StackPop(EOS(STATIC_4235), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4226_0_<init>_InvokeMethod(EOS(STATIC_4226), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4237_0_<init>_Load(EOS(STATIC_4237), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4229_0_<init>_Load(EOS(STATIC_4229), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4249_0_<init>_InvokeMethod(EOS(STATIC_4249), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4232_0_<init>_InvokeMethod(EOS(STATIC_4232), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4239_0_<init>_Load(EOS(STATIC_4239), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4234_0_<init>_Load(EOS(STATIC_4234), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4243_0_<init>_InvokeMethod(EOS(STATIC_4243), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4235_0_<init>_StackPop(EOS(STATIC_4235), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4244_0_<init>_Return(EOS(STATIC_4244), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4237_0_<init>_Load(EOS(STATIC_4237), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4255_0_<init>_InvokeMethod(EOS(STATIC_4255), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4239_0_<init>_Load(EOS(STATIC_4239), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4260_0_<init>_InvokeMethod(EOS(STATIC_4260), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4241_0_<init>_InvokeMethod(EOS(STATIC_4241), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4250_0_<init>_Load(EOS(STATIC_4250), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4243_0_<init>_InvokeMethod(EOS(STATIC_4243), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4252_0_<init>_StackPop(EOS(STATIC_4252), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4244_0_<init>_Return(EOS(STATIC_4244), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4253_0_<init>_Return(EOS(STATIC_4253), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4249_0_<init>_InvokeMethod(EOS(STATIC_4249), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4257_0_<init>_Load(EOS(STATIC_4257), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4250_0_<init>_Load(EOS(STATIC_4250), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4269_0_<init>_InvokeMethod(EOS(STATIC_4269), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4252_0_<init>_StackPop(EOS(STATIC_4252), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4261_0_<init>_Return(EOS(STATIC_4261), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4253_0_<init>_Return(EOS(STATIC_4253), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4263_0_<init>_Return(EOS(STATIC_4263), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4255_0_<init>_InvokeMethod(EOS(STATIC_4255), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4264_0_<init>_Load(EOS(STATIC_4264), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4256_1_mysteriousRecursive_InvokeMethod(4334_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4334), java.lang.Object(ARRAY(i836)), i907, i838, java.lang.Object(ARRAY(i836)), i907, i838), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i907) → 4380_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4380), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i907, java.lang.Object(ARRAY(i836)), i907, i838, java.lang.Object(ARRAY(i836)), i907, i838)
4256_1_mysteriousRecursive_InvokeMethod(4394_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4394), java.lang.Object(ARRAY(i836)), i921, i918, java.lang.Object(ARRAY(i836)), i907), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i921) → 4442_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4442), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i921, java.lang.Object(ARRAY(i836)), i921, i918, java.lang.Object(ARRAY(i836)), i907)
4256_1_mysteriousRecursive_InvokeMethod(4425_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4425), java.lang.Object(ARRAY(i836)), i933, i878, java.lang.Object(ARRAY(i836)), i933, i878), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i933) → 4472_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4472), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i933, java.lang.Object(ARRAY(i836)), i933, i878, java.lang.Object(ARRAY(i836)), i933, i878)
4256_1_mysteriousRecursive_InvokeMethod(4450_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4450), java.lang.Object(ARRAY(i836)), i943, i940, java.lang.Object(ARRAY(i836)), i943, i940), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i943) → 4499_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4499), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i943, java.lang.Object(ARRAY(i836)), i943, i940, java.lang.Object(ARRAY(i836)), i943, i940)
4256_1_mysteriousRecursive_InvokeMethod(4455_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4455), java.lang.Object(ARRAY(i836)), i949, i946, java.lang.Object(ARRAY(i836)), i921), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i949) → 4504_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4504), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i949, java.lang.Object(ARRAY(i836)), i949, i946, java.lang.Object(ARRAY(i836)), i921)
4256_1_mysteriousRecursive_InvokeMethod(4482_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4482), java.lang.Object(ARRAY(i836)), i964, i961, java.lang.Object(ARRAY(i836)), i964, i961), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i964) → 4524_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4524), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i964, java.lang.Object(ARRAY(i836)), i964, i961, java.lang.Object(ARRAY(i836)), i964, i961)
4256_1_mysteriousRecursive_InvokeMethod(4537_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4537), java.lang.Object(ARRAY(i836)), i984, i981, java.lang.Object(ARRAY(i836)), i984, i981), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i984) → 4563_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4563), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i984, java.lang.Object(ARRAY(i836)), i984, i981, java.lang.Object(ARRAY(i836)), i984, i981)
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4747), java.lang.Object(ARRAY(i836)), i1044, i1041, java.lang.Object(ARRAY(i836)), i1044, i1041), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1044) → 4794_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4794), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1044, java.lang.Object(ARRAY(i836)), i1044, i1041, java.lang.Object(ARRAY(i836)), i1044, i1041)
4256_1_mysteriousRecursive_InvokeMethod(4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(i836)), i1068, i1065, java.lang.Object(ARRAY(i836)), i1044), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1068) → 4860_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4860), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1068, java.lang.Object(ARRAY(i836)), i1068, i1065, java.lang.Object(ARRAY(i836)), i1044)
4256_1_mysteriousRecursive_InvokeMethod(4855_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4855), java.lang.Object(ARRAY(i836)), i1088, i1085, java.lang.Object(ARRAY(i836)), i1088, i1085), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1088) → 4892_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4892), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1088, java.lang.Object(ARRAY(i836)), i1088, i1085, java.lang.Object(ARRAY(i836)), i1088, i1085)
4256_1_mysteriousRecursive_InvokeMethod(4876_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4876), java.lang.Object(ARRAY(i836)), i1099, i1096, java.lang.Object(ARRAY(i836)), i1099, i1096), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1099) → 4908_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4908), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1099, java.lang.Object(ARRAY(i836)), i1099, i1096, java.lang.Object(ARRAY(i836)), i1099, i1096)
4256_1_mysteriousRecursive_InvokeMethod(4914_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4914), java.lang.Object(ARRAY(i836)), i1110, i1107, java.lang.Object(ARRAY(i836)), i1110, i1107), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1110) → 4924_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4924), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1110, java.lang.Object(ARRAY(i836)), i1110, i1107, java.lang.Object(ARRAY(i836)), i1110, i1107)
4257_0_<init>_Load(EOS(STATIC_4257), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4277_0_<init>_InvokeMethod(EOS(STATIC_4277), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4260_0_<init>_InvokeMethod(EOS(STATIC_4260), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4267_0_<init>_Load(EOS(STATIC_4267), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4261_0_<init>_Return(EOS(STATIC_4261), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4271_0_<init>_Return(EOS(STATIC_4271), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4263_0_<init>_Return(EOS(STATIC_4263), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4272_0_<init>_Return(EOS(STATIC_4272), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4264_0_<init>_Load(EOS(STATIC_4264), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4274_0_<init>_Load(EOS(STATIC_4274), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4267_0_<init>_Load(EOS(STATIC_4267), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4291_0_<init>_InvokeMethod(EOS(STATIC_4291), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4269_0_<init>_InvokeMethod(EOS(STATIC_4269), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4280_0_<init>_Load(EOS(STATIC_4280), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4271_0_<init>_Return(EOS(STATIC_4271), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4281_0_<init>_Return(EOS(STATIC_4281), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4272_0_<init>_Return(EOS(STATIC_4272), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4283_0_<init>_Return(EOS(STATIC_4283), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4274_0_<init>_Load(EOS(STATIC_4274), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4285_0_<init>_FieldAccess(EOS(STATIC_4285), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4277_0_<init>_InvokeMethod(EOS(STATIC_4277), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4288_0_<init>_Load(EOS(STATIC_4288), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4280_0_<init>_Load(EOS(STATIC_4280), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4293_0_<init>_Load(EOS(STATIC_4293), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4281_0_<init>_Return(EOS(STATIC_4281), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4294_0_<init>_Return(EOS(STATIC_4294), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4283_0_<init>_Return(EOS(STATIC_4283), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4296_0_swap3_ArrayAccess(EOS(STATIC_4296), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858)
4285_0_<init>_FieldAccess(EOS(STATIC_4285), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4298_0_<init>_Load(EOS(STATIC_4298), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4288_0_<init>_Load(EOS(STATIC_4288), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4313_0_<init>_InvokeMethod(EOS(STATIC_4313), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4291_0_<init>_InvokeMethod(EOS(STATIC_4291), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4302_0_<init>_Load(EOS(STATIC_4302), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4293_0_<init>_Load(EOS(STATIC_4293), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4304_0_<init>_FieldAccess(EOS(STATIC_4304), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4294_0_<init>_Return(EOS(STATIC_4294), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4306_0_<init>_Return(EOS(STATIC_4306), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4296_0_swap3_ArrayAccess(EOS(STATIC_4296), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858) → 4307_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4307), java.lang.Object(ARRAY(i836)), i858, i838, java.lang.Object(ARRAY(i836)), i858, i838)
4298_0_<init>_Load(EOS(STATIC_4298), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4309_0_<init>_InvokeMethod(EOS(STATIC_4309), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4302_0_<init>_Load(EOS(STATIC_4302), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4316_0_<init>_Load(EOS(STATIC_4316), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4304_0_<init>_FieldAccess(EOS(STATIC_4304), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4319_0_<init>_Load(EOS(STATIC_4319), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4306_0_<init>_Return(EOS(STATIC_4306), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4321_0_swap3_ArrayAccess(EOS(STATIC_4321), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859)
4309_0_<init>_InvokeMethod(EOS(STATIC_4309), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4325_0_<init>_StackPop(EOS(STATIC_4325), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4313_0_<init>_InvokeMethod(EOS(STATIC_4313), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4327_0_<init>_Load(EOS(STATIC_4327), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4316_0_<init>_Load(EOS(STATIC_4316), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4330_0_<init>_FieldAccess(EOS(STATIC_4330), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4319_0_<init>_Load(EOS(STATIC_4319), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4332_0_<init>_InvokeMethod(EOS(STATIC_4332), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4321_0_swap3_ArrayAccess(EOS(STATIC_4321), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859) → 4334_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4334), java.lang.Object(ARRAY(i836)), i859, i838, java.lang.Object(ARRAY(i836)), i859, i838)
4325_0_<init>_StackPop(EOS(STATIC_4325), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4337_0_<init>_Return(EOS(STATIC_4337), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4327_0_<init>_Load(EOS(STATIC_4327), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4354_0_<init>_InvokeMethod(EOS(STATIC_4354), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4330_0_<init>_FieldAccess(EOS(STATIC_4330), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4342_0_<init>_Load(EOS(STATIC_4342), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4332_0_<init>_InvokeMethod(EOS(STATIC_4332), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4344_0_<init>_StackPop(EOS(STATIC_4344), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4337_0_<init>_Return(EOS(STATIC_4337), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4349_0_<init>_Return(EOS(STATIC_4349), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4342_0_<init>_Load(EOS(STATIC_4342), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4356_0_<init>_InvokeMethod(EOS(STATIC_4356), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4344_0_<init>_StackPop(EOS(STATIC_4344), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4359_0_<init>_Return(EOS(STATIC_4359), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4349_0_<init>_Return(EOS(STATIC_4349), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4364_0_<init>_Return(EOS(STATIC_4364), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4354_0_<init>_InvokeMethod(EOS(STATIC_4354), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4369_0_<init>_Load(EOS(STATIC_4369), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4356_0_<init>_InvokeMethod(EOS(STATIC_4356), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4372_0_<init>_StackPop(EOS(STATIC_4372), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4359_0_<init>_Return(EOS(STATIC_4359), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4374_0_<init>_Return(EOS(STATIC_4374), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4364_0_<init>_Return(EOS(STATIC_4364), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4382_0_<init>_Return(EOS(STATIC_4382), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4369_0_<init>_Load(EOS(STATIC_4369), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4385_0_<init>_Load(EOS(STATIC_4385), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4372_0_<init>_StackPop(EOS(STATIC_4372), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4388_0_<init>_Return(EOS(STATIC_4388), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4374_0_<init>_Return(EOS(STATIC_4374), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4390_0_<init>_Return(EOS(STATIC_4390), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4380_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4380), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i907, java.lang.Object(ARRAY(i836)), i907, i838, java.lang.Object(ARRAY(i836)), i907, i838) → 4394_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4394), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i907)
4382_0_<init>_Return(EOS(STATIC_4382), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4396_0_<init>_Return(EOS(STATIC_4396), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4385_0_<init>_Load(EOS(STATIC_4385), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4401_0_<init>_FieldAccess(EOS(STATIC_4401), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4388_0_<init>_Return(EOS(STATIC_4388), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4404_0_<init>_Return(EOS(STATIC_4404), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4390_0_<init>_Return(EOS(STATIC_4390), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4406_0_<init>_Return(EOS(STATIC_4406), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4394_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4394), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i907) → 4455_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4455), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i907)
4396_0_<init>_Return(EOS(STATIC_4396), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4410_0_swap3_ArrayAccess(EOS(STATIC_4410), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878)
4401_0_<init>_FieldAccess(EOS(STATIC_4401), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4416_0_<init>_Load(EOS(STATIC_4416), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4404_0_<init>_Return(EOS(STATIC_4404), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4419_0_<init>_Return(EOS(STATIC_4419), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4406_0_<init>_Return(EOS(STATIC_4406), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4420_0_<init>_Return(EOS(STATIC_4420), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4410_0_swap3_ArrayAccess(EOS(STATIC_4410), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i878, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i878) → 4425_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4425), java.lang.Object(ARRAY(i836)), i859, i878, java.lang.Object(ARRAY(i836)), i859, i878)
4412_0_swap3_ArrayAccess(EOS(STATIC_4412), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4427_0_swap3_ArrayAccess(EOS(STATIC_4427), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4416_0_<init>_Load(EOS(STATIC_4416), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4430_0_<init>_InvokeMethod(EOS(STATIC_4430), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4419_0_<init>_Return(EOS(STATIC_4419), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4433_0_<init>_Return(EOS(STATIC_4433), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4420_0_<init>_Return(EOS(STATIC_4420), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4436_0_swap3_ArrayAccess(EOS(STATIC_4436), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4427_0_swap3_ArrayAccess(EOS(STATIC_4427), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4445_0_<init>_Load(EOS(STATIC_4445), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) | >=(i859, i836)
4430_0_<init>_InvokeMethod(EOS(STATIC_4430), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4446_0_<init>_StackPop(EOS(STATIC_4446), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4433_0_<init>_Return(EOS(STATIC_4433), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4448_0_<init>_Return(EOS(STATIC_4448), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4436_0_swap3_ArrayAccess(EOS(STATIC_4436), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4450_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4450), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4442_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4442), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i921, java.lang.Object(ARRAY(i836)), i921, i918, java.lang.Object(ARRAY(i836)), i907) → 4455_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4455), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i921)
4445_0_<init>_Load(EOS(STATIC_4445), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4478_0_<init>_InvokeMethod(EOS(STATIC_4478), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4446_0_<init>_StackPop(EOS(STATIC_4446), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4462_0_<init>_Return(EOS(STATIC_4462), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4448_0_<init>_Return(EOS(STATIC_4448), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4464_0_swap3_ArrayAccess(EOS(STATIC_4464), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4450_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4450), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) → 4482_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4482), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4455_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4455), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i921) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i921)
4462_0_<init>_Return(EOS(STATIC_4462), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4481_0_<init>_Return(EOS(STATIC_4481), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4464_0_swap3_ArrayAccess(EOS(STATIC_4464), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4482_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4482), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4472_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4472), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i933, java.lang.Object(ARRAY(i836)), i933, i878, java.lang.Object(ARRAY(i836)), i933, i878) → 4380_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4380), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i933, java.lang.Object(ARRAY(i836)), i933, i878, java.lang.Object(ARRAY(i836)), i933, i878)
4478_0_<init>_InvokeMethod(EOS(STATIC_4478), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4490_0_<init>_Load(EOS(STATIC_4490), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4481_0_<init>_Return(EOS(STATIC_4481), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4493_0_<init>_Return(EOS(STATIC_4493), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4482_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4482), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) → 4537_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4537), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4490_0_<init>_Load(EOS(STATIC_4490), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4517_0_<init>_InvokeMethod(EOS(STATIC_4517), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4493_0_<init>_Return(EOS(STATIC_4493), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4509_0_<init>_Return(EOS(STATIC_4509), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4499_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4499), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i943, java.lang.Object(ARRAY(i836)), i943, i940, java.lang.Object(ARRAY(i836)), i943, i940) → 4380_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4380), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i943, java.lang.Object(ARRAY(i836)), i943, i940, java.lang.Object(ARRAY(i836)), i943, i940)
4504_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4504), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i949, java.lang.Object(ARRAY(i836)), i949, i946, java.lang.Object(ARRAY(i836)), i921) → 4442_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4442), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i949, java.lang.Object(ARRAY(i836)), i949, i946, java.lang.Object(ARRAY(i836)), i921)
4509_0_<init>_Return(EOS(STATIC_4509), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4519_0_<init>_Return(EOS(STATIC_4519), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4514_0_swap3_ArrayAccess(EOS(STATIC_4514), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4527_0_swap3_ArrayAccess(EOS(STATIC_4527), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4517_0_<init>_InvokeMethod(EOS(STATIC_4517), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4528_0_<init>_Load(EOS(STATIC_4528), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4519_0_<init>_Return(EOS(STATIC_4519), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4530_0_swap3_ArrayAccess(EOS(STATIC_4530), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4524_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4524), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i964, java.lang.Object(ARRAY(i836)), i964, i961, java.lang.Object(ARRAY(i836)), i964, i961) → 4380_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4380), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i964, java.lang.Object(ARRAY(i836)), i964, i961, java.lang.Object(ARRAY(i836)), i964, i961)
4527_0_swap3_ArrayAccess(EOS(STATIC_4527), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4533_0_<init>_Load(EOS(STATIC_4533), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) | >=(i879, i836)
4528_0_<init>_Load(EOS(STATIC_4528), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4543_0_<init>_InvokeMethod(EOS(STATIC_4543), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4530_0_swap3_ArrayAccess(EOS(STATIC_4530), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4537_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4537), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4532_0_swap3_ArrayAccess(EOS(STATIC_4532), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4539_0_swap3_ArrayAccess(EOS(STATIC_4539), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4533_0_<init>_Load(EOS(STATIC_4533), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4551_0_<init>_InvokeMethod(EOS(STATIC_4551), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4539_0_swap3_ArrayAccess(EOS(STATIC_4539), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4547_0_<init>_Load(EOS(STATIC_4547), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) | >=(i859, i836)
4543_0_<init>_InvokeMethod(EOS(STATIC_4543), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4553_0_<init>_Load(EOS(STATIC_4553), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4547_0_<init>_Load(EOS(STATIC_4547), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4569_0_<init>_InvokeMethod(EOS(STATIC_4569), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4551_0_<init>_InvokeMethod(EOS(STATIC_4551), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4558_0_<init>_Load(EOS(STATIC_4558), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4553_0_<init>_Load(EOS(STATIC_4553), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4573_0_<init>_InvokeMethod(EOS(STATIC_4573), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4558_0_<init>_Load(EOS(STATIC_4558), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4580_0_<init>_InvokeMethod(EOS(STATIC_4580), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4563_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4563), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i984, java.lang.Object(ARRAY(i836)), i984, i981, java.lang.Object(ARRAY(i836)), i984, i981) → 4380_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4380), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i984, java.lang.Object(ARRAY(i836)), i984, i981, java.lang.Object(ARRAY(i836)), i984, i981)
4569_0_<init>_InvokeMethod(EOS(STATIC_4569), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4576_0_<init>_Load(EOS(STATIC_4576), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4573_0_<init>_InvokeMethod(EOS(STATIC_4573), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4581_0_<init>_Load(EOS(STATIC_4581), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4575_0_swap3_ArrayAccess(EOS(STATIC_4575), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4584_0_swap3_ArrayAccess(EOS(STATIC_4584), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4576_0_<init>_Load(EOS(STATIC_4576), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4593_0_<init>_InvokeMethod(EOS(STATIC_4593), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4580_0_<init>_InvokeMethod(EOS(STATIC_4580), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4585_0_<init>_Load(EOS(STATIC_4585), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4581_0_<init>_Load(EOS(STATIC_4581), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4596_0_<init>_InvokeMethod(EOS(STATIC_4596), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4584_0_swap3_ArrayAccess(EOS(STATIC_4584), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4588_0_<init>_Load(EOS(STATIC_4588), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) | >=(i879, i836)
4585_0_<init>_Load(EOS(STATIC_4585), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4603_0_<init>_InvokeMethod(EOS(STATIC_4603), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4588_0_<init>_Load(EOS(STATIC_4588), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4613_0_<init>_InvokeMethod(EOS(STATIC_4613), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4593_0_<init>_InvokeMethod(EOS(STATIC_4593), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4599_0_<init>_Load(EOS(STATIC_4599), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4596_0_<init>_InvokeMethod(EOS(STATIC_4596), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4607_0_<init>_Load(EOS(STATIC_4607), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4599_0_<init>_Load(EOS(STATIC_4599), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4625_0_<init>_InvokeMethod(EOS(STATIC_4625), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4603_0_<init>_InvokeMethod(EOS(STATIC_4603), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4614_0_<init>_Load(EOS(STATIC_4614), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4607_0_<init>_Load(EOS(STATIC_4607), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4617_0_<init>_Load(EOS(STATIC_4617), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4613_0_<init>_InvokeMethod(EOS(STATIC_4613), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4620_0_<init>_Load(EOS(STATIC_4620), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4614_0_<init>_Load(EOS(STATIC_4614), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4634_0_<init>_InvokeMethod(EOS(STATIC_4634), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4617_0_<init>_Load(EOS(STATIC_4617), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4629_0_<init>_FieldAccess(EOS(STATIC_4629), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4620_0_<init>_Load(EOS(STATIC_4620), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4643_0_<init>_InvokeMethod(EOS(STATIC_4643), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4625_0_<init>_InvokeMethod(EOS(STATIC_4625), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4630_0_<init>_Load(EOS(STATIC_4630), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4629_0_<init>_FieldAccess(EOS(STATIC_4629), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4638_0_<init>_Load(EOS(STATIC_4638), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4630_0_<init>_Load(EOS(STATIC_4630), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4654_0_<init>_InvokeMethod(EOS(STATIC_4654), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4634_0_<init>_InvokeMethod(EOS(STATIC_4634), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4644_0_<init>_Load(EOS(STATIC_4644), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4638_0_<init>_Load(EOS(STATIC_4638), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4648_0_<init>_InvokeMethod(EOS(STATIC_4648), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4643_0_<init>_InvokeMethod(EOS(STATIC_4643), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4649_0_<init>_Load(EOS(STATIC_4649), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4644_0_<init>_Load(EOS(STATIC_4644), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4664_0_<init>_InvokeMethod(EOS(STATIC_4664), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4648_0_<init>_InvokeMethod(EOS(STATIC_4648), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4658_0_<init>_StackPop(EOS(STATIC_4658), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4649_0_<init>_Load(EOS(STATIC_4649), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4672_0_<init>_InvokeMethod(EOS(STATIC_4672), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4654_0_<init>_InvokeMethod(EOS(STATIC_4654), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4660_0_<init>_Load(EOS(STATIC_4660), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4658_0_<init>_StackPop(EOS(STATIC_4658), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4667_0_<init>_Return(EOS(STATIC_4667), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4660_0_<init>_Load(EOS(STATIC_4660), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4686_0_<init>_InvokeMethod(EOS(STATIC_4686), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4664_0_<init>_InvokeMethod(EOS(STATIC_4664), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4676_0_<init>_Load(EOS(STATIC_4676), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4667_0_<init>_Return(EOS(STATIC_4667), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4680_0_<init>_Return(EOS(STATIC_4680), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4672_0_<init>_InvokeMethod(EOS(STATIC_4672), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4681_0_<init>_Load(EOS(STATIC_4681), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4676_0_<init>_Load(EOS(STATIC_4676), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4690_0_<init>_Load(EOS(STATIC_4690), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4680_0_<init>_Return(EOS(STATIC_4680), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4694_0_<init>_Return(EOS(STATIC_4694), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4681_0_<init>_Load(EOS(STATIC_4681), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4711_0_<init>_InvokeMethod(EOS(STATIC_4711), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4686_0_<init>_InvokeMethod(EOS(STATIC_4686), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4699_0_<init>_Load(EOS(STATIC_4699), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4690_0_<init>_Load(EOS(STATIC_4690), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4703_0_<init>_FieldAccess(EOS(STATIC_4703), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4694_0_<init>_Return(EOS(STATIC_4694), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4706_0_<init>_Return(EOS(STATIC_4706), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4699_0_<init>_Load(EOS(STATIC_4699), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4716_0_<init>_Load(EOS(STATIC_4716), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4703_0_<init>_FieldAccess(EOS(STATIC_4703), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4720_0_<init>_Load(EOS(STATIC_4720), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4706_0_<init>_Return(EOS(STATIC_4706), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4723_0_<init>_Return(EOS(STATIC_4723), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4711_0_<init>_InvokeMethod(EOS(STATIC_4711), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4724_0_<init>_Load(EOS(STATIC_4724), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4716_0_<init>_Load(EOS(STATIC_4716), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4728_0_<init>_FieldAccess(EOS(STATIC_4728), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4720_0_<init>_Load(EOS(STATIC_4720), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4732_0_<init>_InvokeMethod(EOS(STATIC_4732), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4723_0_<init>_Return(EOS(STATIC_4723), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4735_0_swap3_ArrayAccess(EOS(STATIC_4735), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859)
4724_0_<init>_Load(EOS(STATIC_4724), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4752_0_<init>_InvokeMethod(EOS(STATIC_4752), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4728_0_<init>_FieldAccess(EOS(STATIC_4728), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4740_0_<init>_Load(EOS(STATIC_4740), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4732_0_<init>_InvokeMethod(EOS(STATIC_4732), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4745_0_<init>_StackPop(EOS(STATIC_4745), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4735_0_swap3_ArrayAccess(EOS(STATIC_4735), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859) → 4747_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4747), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4740_0_<init>_Load(EOS(STATIC_4740), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4756_0_<init>_InvokeMethod(EOS(STATIC_4756), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4745_0_<init>_StackPop(EOS(STATIC_4745), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4760_0_<init>_Return(EOS(STATIC_4760), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4747_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4747), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) → 4855_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4855), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4752_0_<init>_InvokeMethod(EOS(STATIC_4752), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4766_0_<init>_Load(EOS(STATIC_4766), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4756_0_<init>_InvokeMethod(EOS(STATIC_4756), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4771_0_<init>_StackPop(EOS(STATIC_4771), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4760_0_<init>_Return(EOS(STATIC_4760), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4775_0_<init>_Return(EOS(STATIC_4775), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4766_0_<init>_Load(EOS(STATIC_4766), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4783_0_<init>_Load(EOS(STATIC_4783), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4771_0_<init>_StackPop(EOS(STATIC_4771), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4787_0_<init>_Return(EOS(STATIC_4787), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4775_0_<init>_Return(EOS(STATIC_4775), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4791_0_<init>_Return(EOS(STATIC_4791), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4783_0_<init>_Load(EOS(STATIC_4783), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4801_0_<init>_FieldAccess(EOS(STATIC_4801), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4787_0_<init>_Return(EOS(STATIC_4787), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4807_0_<init>_Return(EOS(STATIC_4807), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4791_0_<init>_Return(EOS(STATIC_4791), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4811_0_<init>_Return(EOS(STATIC_4811), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4794_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4794), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1044, java.lang.Object(ARRAY(i836)), i1044, i1041, java.lang.Object(ARRAY(i836)), i1044, i1041) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1044)
4801_0_<init>_FieldAccess(EOS(STATIC_4801), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4823_0_<init>_Load(EOS(STATIC_4823), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4807_0_<init>_Return(EOS(STATIC_4807), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4827_0_<init>_Return(EOS(STATIC_4827), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4811_0_<init>_Return(EOS(STATIC_4811), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4830_0_<init>_Return(EOS(STATIC_4830), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4823_0_<init>_Load(EOS(STATIC_4823), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4838_0_<init>_InvokeMethod(EOS(STATIC_4838), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4827_0_<init>_Return(EOS(STATIC_4827), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4839_0_<init>_Return(EOS(STATIC_4839), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4830_0_<init>_Return(EOS(STATIC_4830), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4842_0_swap3_ArrayAccess(EOS(STATIC_4842), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879)
4838_0_<init>_InvokeMethod(EOS(STATIC_4838), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4850_0_<init>_StackPop(EOS(STATIC_4850), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4839_0_<init>_Return(EOS(STATIC_4839), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4853_0_<init>_Return(EOS(STATIC_4853), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4842_0_swap3_ArrayAccess(EOS(STATIC_4842), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859, java.lang.Object(ARRAY(i836)), i879) → 4855_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4855), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4850_0_<init>_StackPop(EOS(STATIC_4850), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4865_0_<init>_Return(EOS(STATIC_4865), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4853_0_<init>_Return(EOS(STATIC_4853), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4868_0_swap3_ArrayAccess(EOS(STATIC_4868), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859)
4855_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4855), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) → 4876_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4876), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4860_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4860), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1068, java.lang.Object(ARRAY(i836)), i1068, i1065, java.lang.Object(ARRAY(i836)), i1044) → 4442_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4442), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1068, java.lang.Object(ARRAY(i836)), i1068, i1065, java.lang.Object(ARRAY(i836)), i1044)
4865_0_<init>_Return(EOS(STATIC_4865), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4874_0_<init>_Return(EOS(STATIC_4874), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4868_0_swap3_ArrayAccess(EOS(STATIC_4868), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879, java.lang.Object(ARRAY(i836)), i859) → 4876_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4876), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4874_0_<init>_Return(EOS(STATIC_4874), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4886_0_<init>_Return(EOS(STATIC_4886), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4876_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4876), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879) → 4914_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4914), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4886_0_<init>_Return(EOS(STATIC_4886), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4897_0_<init>_Return(EOS(STATIC_4897), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4892_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4892), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1088, java.lang.Object(ARRAY(i836)), i1088, i1085, java.lang.Object(ARRAY(i836)), i1088, i1085) → 4794_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4794), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1088, java.lang.Object(ARRAY(i836)), i1088, i1085, java.lang.Object(ARRAY(i836)), i1088, i1085)
4897_0_<init>_Return(EOS(STATIC_4897), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4903_0_<init>_Return(EOS(STATIC_4903), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4903_0_<init>_Return(EOS(STATIC_4903), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4911_0_swap3_ArrayAccess(EOS(STATIC_4911), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879)
4908_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4908), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1099, java.lang.Object(ARRAY(i836)), i1099, i1096, java.lang.Object(ARRAY(i836)), i1099, i1096) → 4794_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4794), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1099, java.lang.Object(ARRAY(i836)), i1099, i1096, java.lang.Object(ARRAY(i836)), i1099, i1096)
4911_0_swap3_ArrayAccess(EOS(STATIC_4911), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i879) → 4914_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4914), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i859, i879)
4924_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4924), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1110, java.lang.Object(ARRAY(i836)), i1110, i1107, java.lang.Object(ARRAY(i836)), i1110, i1107) → 4794_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4794), java.lang.Object(ARRAY(i836)), i859, i879, java.lang.Object(ARRAY(i836)), i1110, java.lang.Object(ARRAY(i836)), i1110, i1107, java.lang.Object(ARRAY(i836)), i1110, i1107)

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


P rules:
3101_0_mysteriousRecursive_Load(EOS(STATIC_3101), java.lang.Object(ARRAY(x0)), x1, x1) → 4256_1_mysteriousRecursive_InvokeMethod(3101_0_mysteriousRecursive_Load(EOS(STATIC_3101), 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))
4256_1_mysteriousRecursive_InvokeMethod(3963_0_mysteriousRecursive_Return(EOS(STATIC_3963)), java.lang.Object(ARRAY(x0)), x1, x2, java.lang.Object(ARRAY(x0)), x3) → 4256_1_mysteriousRecursive_InvokeMethod(3101_0_mysteriousRecursive_Load(EOS(STATIC_3101), 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)))
3101_0_mysteriousRecursive_Load(EOS(STATIC_3101), java.lang.Object(ARRAY(x0)), -(x0, 1), -(x0, 1)) → 3460_0_display_GE(EOS(STATIC_3460), java.lang.Object(ARRAY(x0)), -(x0, 1), java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), 0, 0, x0) | >(x0, 0)
3460_0_display_GE(EOS(STATIC_3460), java.lang.Object(ARRAY(x0)), x1, java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), x2, x2, x0) → 4256_1_mysteriousRecursive_InvokeMethod(3101_0_mysteriousRecursive_Load(EOS(STATIC_3101), 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))
3460_0_display_GE(EOS(STATIC_3460), java.lang.Object(ARRAY(x0)), x1, java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), x2, x2, x0) → 3460_0_display_GE(EOS(STATIC_3460), 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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4747), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4855_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4855), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4876_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4876), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4914_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4914), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4394_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4394), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x4, x5, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4455_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4455), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x4, x5, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x4, x5, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4334_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4334), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4425_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4425), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4450_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4450), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4482_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4482), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4537_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4537), 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) → 4817_0_mysteriousRecursive_InvokeMethod(EOS(STATIC_4817), java.lang.Object(ARRAY(x0)), x3, x4, java.lang.Object(ARRAY(x0)), x1)

Filtered ground terms:



3460_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8) → 3460_0_display_GE(x2, x3, x4, x5, x6, x7, x8)
Cond_3460_0_display_GE1(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_3460_0_display_GE1(x1, x3, x4, x5, x6, x7, x8, x9)
3101_0_mysteriousRecursive_Load(x1, x2, x3, x4) → 3101_0_mysteriousRecursive_Load(x2, x3, x4)
Cond_3460_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9) → Cond_3460_0_display_GE(x1, x3, x4, x5, x6, x7, x8, x9)
Cond_3101_0_mysteriousRecursive_Load1(x1, x2, x3, x4, x5) → Cond_3101_0_mysteriousRecursive_Load1(x1, x3, x4, x5)
Cond_4256_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → Cond_4256_1_mysteriousRecursive_InvokeMethod(x1, x3, x4, x5, x6, x7)
3963_0_mysteriousRecursive_Return(x1) → 3963_0_mysteriousRecursive_Return
Cond_3101_0_mysteriousRecursive_Load(x1, x2, x3, x4, x5) → Cond_3101_0_mysteriousRecursive_Load(x1, x3, x4, x5)
4817_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4817_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6)
4537_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4537_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
4482_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4482_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
4450_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4450_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
4425_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4425_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
4334_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4334_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
4455_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4455_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6)
4394_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4394_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6)
4914_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4914_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
4876_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4876_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
4855_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4855_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)
4747_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) → 4747_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5, x6, x7)

Filtered duplicate args:



3101_0_mysteriousRecursive_Load(x1, x2, x3) → 3101_0_mysteriousRecursive_Load(x1, x3)
Cond_3101_0_mysteriousRecursive_Load(x1, x2, x3, x4) → Cond_3101_0_mysteriousRecursive_Load(x1, x2, x4)
4256_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4256_1_mysteriousRecursive_InvokeMethod(x1, x3, x4, x5, x6)
Cond_4256_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → Cond_4256_1_mysteriousRecursive_InvokeMethod(x1, x3, x4, x5, x6)
Cond_3101_0_mysteriousRecursive_Load1(x1, x2, x3, x4) → Cond_3101_0_mysteriousRecursive_Load1(x1, x2, x4)
3460_0_display_GE(x1, x2, x3, x4, x5, x6, x7) → 3460_0_display_GE(x2, x4, x6)
Cond_3460_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_3460_0_display_GE(x1, x3, x5, x7)
Cond_3460_0_display_GE1(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_3460_0_display_GE1(x1, x3, x5, x7)
4747_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4747_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
4817_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5) → 4817_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5)
4855_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4855_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
4876_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4876_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
4914_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4914_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
4394_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5) → 4394_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5)
4455_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5) → 4455_0_mysteriousRecursive_InvokeMethod(x2, x3, x4, x5)
4334_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4334_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
4425_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4425_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
4450_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4450_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
4482_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4482_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)
4537_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5, x6) → 4537_0_mysteriousRecursive_InvokeMethod(x4, x5, x6)

Filtered unneeded arguments:



4256_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5) → 4256_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4)
Cond_4256_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4, x5) → Cond_4256_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4)
Cond_3460_0_display_GE(x1, x2, x3, x4) → Cond_3460_0_display_GE(x1, x2, x3)

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


P rules:
3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), x1) → 4256_1_mysteriousRecursive_InvokeMethod(3101_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))
4256_1_mysteriousRecursive_InvokeMethod(3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 4256_1_mysteriousRecursive_InvokeMethod(3101_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)))
3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), x0_-1) → 3460_0_display_GE(-(x0, 1), java.lang.Object(ARRAY(x0)), 0) | &&(>(x0, 0), =(x0_-1, -(x0, 1)))
3460_0_display_GE(x1, java.lang.Object(ARRAY(x0)), x2) → 4256_1_mysteriousRecursive_InvokeMethod(3101_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))
3460_0_display_GE(x1, java.lang.Object(ARRAY(x0)), x2) → 3460_0_display_GE(x1, java.lang.Object(ARRAY(x0)), +(x2, 1)) | &&(&&(>(x2, -1), <(x2, x0)), >(x0, -1))
R rules:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4855_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4876_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4914_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4394_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4455_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4817_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4334_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4425_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4450_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4482_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4537_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)

Performed bisimulation on rules. Used the following equivalence classes: {[4817_0_mysteriousRecursive_InvokeMethod_4, 4394_0_mysteriousRecursive_InvokeMethod_4, 4455_0_mysteriousRecursive_InvokeMethod_4]=4817_0_mysteriousRecursive_InvokeMethod_4, [4747_0_mysteriousRecursive_InvokeMethod_3, 4855_0_mysteriousRecursive_InvokeMethod_3, 4876_0_mysteriousRecursive_InvokeMethod_3, 4914_0_mysteriousRecursive_InvokeMethod_3, 4334_0_mysteriousRecursive_InvokeMethod_3, 4425_0_mysteriousRecursive_InvokeMethod_3, 4450_0_mysteriousRecursive_InvokeMethod_3, 4482_0_mysteriousRecursive_InvokeMethod_3, 4537_0_mysteriousRecursive_InvokeMethod_3]=4747_0_mysteriousRecursive_InvokeMethod_3}


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


P rules:
3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1, -1), <(x1, x0)), !(=(x1, -(x0, 1)))), >(x0, 0)), java.lang.Object(ARRAY(x0)), x1)
COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0)))
COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2, -1), >(x1, -1)), <(x1, x0)), >(x0, -1)), >(x0, +(x2, 1))), 3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0)))
COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, +(x2, 1), java.lang.Object(ARRAY(x0)))
COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x0_-1) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0, 0), =(x0_-1, -(x0, 1))), java.lang.Object(ARRAY(x0)), x0_-1)
COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0)), x0_-1) → 3460_0_DISPLAY_GE(-(x0, 1), java.lang.Object(ARRAY(x0)), 0)
3460_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_3460_0_DISPLAY_GE(&&(&&(&&(>=(x2, x0), >(x1, -1)), <(x1, x0)), >(x0, -1)), x1, java.lang.Object(ARRAY(x0)), x2)
COND_3460_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0)))
COND_3460_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
3460_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2, -1), <(x2, x0)), >(x0, -1)), x1, java.lang.Object(ARRAY(x0)), x2)
COND_3460_0_DISPLAY_GE1(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 3460_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), +(x2, 1))
R rules:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4817_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4817_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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4817_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)

The integer pair graph contains the following rules and edges:
(0): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), x1[1] + 1), x1[1], x1[1], java.lang.Object(ARRAY(x0[1])))
(2): COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(3): 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(x2[3] > -1 && x1[3] > -1 && x1[3] < x0[3] && x0[3] > -1 && x0[3] > x2[3] + 1, 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))
(4): COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4]))) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), x1[5] + 1)
(6): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(x0[6] > 0 && x0_-1[6] = x0[6] - 1, java.lang.Object(ARRAY(x0[6])), x0_-1[6])
(7): COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(x0[7] - 1, java.lang.Object(ARRAY(x0[7])), 0)
(8): 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9]) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), x1[9] + 1), x1[9], x1[9], java.lang.Object(ARRAY(x0[9])))
(10): COND_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), x1[10] + 1)
(11): 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_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 (3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), x1[1] + 1) →* 3963_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 (3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), x1[4] + 1) →* 3963_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 (3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), x1[9] + 1) →* 3963_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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
4256_1_mysteriousRecursive_InvokeMethod(4817_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@3d1419a6 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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_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]3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_3101_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_3101_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))=TRUE3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_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]3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_3101_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_3101_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))=TRUE3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)), x1[1], x1[1], java.lang.Object(ARRAY(x0[1]))), 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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]3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))=3963_0_mysteriousRecursive_Returnx1[1]=x1[3]x1[1]=x2[3]java.lang.Object(ARRAY(x0[1]))=java.lang.Object(ARRAY(x0[3])) ⇒ COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)), x1[1], x1[1], java.lang.Object(ARRAY(x0[1])))∧(UIncreasing(4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1)) the following chains were created:
  • We consider the chain 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)), 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))∧(UIncreasing(3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(3101_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(3101_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(3101_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(3101_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(3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)), 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))∧(UIncreasing(3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(3101_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(3101_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(3101_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(3101_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(3101_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 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2, -1), >(x1, -1)), <(x1, x0)), >(x0, -1)), >(x0, +(x2, 1))), 3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) the following chains were created:
  • We consider the chain 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))), COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4]))) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_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])) ⇒ 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))∧(UIncreasing(COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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)))=TRUE4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))∧(UIncreasing(COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))), COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 3101_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])) ⇒ 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))∧(UIncreasing(COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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)))=TRUE4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))∧(UIncreasing(COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_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 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))), COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4]))) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1)), x1[4], +(x2[4], 1), java.lang.Object(ARRAY(x0[4]))), 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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]))∧3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1))=3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4])))≥NonInfC∧COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4])))≥4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1)), x1[4], +(x2[4], 1), java.lang.Object(ARRAY(x0[4])))∧(UIncreasing(4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1)) the following chains were created:
  • We consider the chain 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))), COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1)), 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5])))≥NonInfC∧COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5])))≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))∧(UIncreasing(3101_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[3])), +(x1[3], 1))∧(UIncreasing(3101_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(3101_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(3101_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(3101_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(3101_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 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))), COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1)), 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5])))≥NonInfC∧COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5])))≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))∧(UIncreasing(3101_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥NonInfC∧COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[3])), +(x1[3], 1))∧(UIncreasing(3101_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(3101_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(3101_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(3101_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(3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x0_-1) → COND_3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_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]3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])∧(UIncreasing(COND_3101_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)))=TRUE3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])∧(UIncreasing(COND_3101_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_3101_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_3101_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_3101_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_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0)), x0_-1) → 3460_0_DISPLAY_GE(-(x0, 1), java.lang.Object(ARRAY(x0)), 0) the following chains were created:
  • We consider the chain 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0), 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)∧(UIncreasing(3460_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥3460_0_DISPLAY_GE(-(x0[6], 1), java.lang.Object(ARRAY(x0[6])), 0)∧(UIncreasing(3460_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(3460_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(3460_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(3460_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(3460_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0), 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)∧(UIncreasing(3460_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥3460_0_DISPLAY_GE(-(x0[6], 1), java.lang.Object(ARRAY(x0[6])), 0)∧(UIncreasing(3460_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(3460_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(3460_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(3460_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(3460_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 3460_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_3460_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 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9]) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_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]3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_3460_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_3460_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))=TRUE3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_3460_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_3460_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_3460_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_3460_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_3460_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_3460_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 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_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]3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_3460_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_3460_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))=TRUE3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_3460_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_3460_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_3460_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_3460_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_3460_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_3460_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_3460_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_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 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9]) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), +(x1[9], 1)), x1[9], x1[9], java.lang.Object(ARRAY(x0[9]))), 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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]3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), +(x1[9], 1))=3963_0_mysteriousRecursive_Returnx1[9]=x1[3]x1[9]=x2[3]java.lang.Object(ARRAY(x0[9]))=java.lang.Object(ARRAY(x0[3])) ⇒ COND_3460_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9])≥NonInfC∧COND_3460_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9])≥4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), +(x1[9], 1)), x1[9], x1[9], java.lang.Object(ARRAY(x0[9])))∧(UIncreasing(4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_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_3460_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1)) the following chains were created:
  • We consider the chain 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)), 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥NonInfC∧COND_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))∧(UIncreasing(3101_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_3460_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧COND_3460_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[8])), +(x1[8], 1))∧(UIncreasing(3101_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(3101_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(3101_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(3101_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(3101_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 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)), 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥NonInfC∧COND_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))∧(UIncreasing(3101_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_3460_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧COND_3460_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[8])), +(x1[8], 1))∧(UIncreasing(3101_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(3101_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(3101_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(3101_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(3101_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 3460_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_3460_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 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_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]3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_3460_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_3460_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))=TRUE3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_3460_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_3460_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_3460_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_3460_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_3460_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_3460_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_3460_0_DISPLAY_GE1(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 3460_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), +(x2, 1)) the following chains were created:
  • We consider the chain 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)), 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥NonInfC∧COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))∧(UIncreasing(3460_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_3460_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧COND_3460_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), +(x2[11], 1))∧(UIncreasing(3460_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(3460_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(3460_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(3460_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(3460_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 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)), 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥NonInfC∧COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))∧(UIncreasing(3460_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_3460_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧COND_3460_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), +(x2[11], 1))∧(UIncreasing(3460_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(3460_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(3460_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(3460_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(3460_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.
  • 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(&&(&&(&&(>(x1, -1), <(x1, x0)), !(=(x1, -(x0, 1)))), >(x0, 0)), java.lang.Object(ARRAY(x0)), x1)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_3101_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_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0)))

  • COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
    • (0 ≥ 0 ⇒ (UIncreasing(3101_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(3101_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)

  • 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2, -1), >(x1, -1)), <(x1, x0)), >(x0, -1)), >(x0, +(x2, 1))), 3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0)))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_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_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, +(x2, 1), java.lang.Object(ARRAY(x0)))

  • COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1, x2, java.lang.Object(ARRAY(x0))) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
    • (0 ≥ 0 ⇒ (UIncreasing(3101_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(3101_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)

  • 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), x0_-1) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0, 0), =(x0_-1, -(x0, 1))), java.lang.Object(ARRAY(x0)), x0_-1)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0)), x0_-1) → 3460_0_DISPLAY_GE(-(x0, 1), java.lang.Object(ARRAY(x0)), 0)
    • (0 ≥ 0 ⇒ (UIncreasing(3460_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(3460_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)

  • 3460_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_3460_0_DISPLAY_GE(&&(&&(&&(>=(x2, x0), >(x1, -1)), <(x1, x0)), >(x0, -1)), x1, java.lang.Object(ARRAY(x0)), x2)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_3460_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_3460_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_3460_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0)), +(x1, 1)), x1, x1, java.lang.Object(ARRAY(x0)))

  • COND_3460_0_DISPLAY_GE(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
    • (0 ≥ 0 ⇒ (UIncreasing(3101_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(3101_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)

  • 3460_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), x2) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2, -1), <(x2, x0)), >(x0, -1)), x1, java.lang.Object(ARRAY(x0)), x2)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_3460_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_3460_0_DISPLAY_GE1(TRUE, x1, java.lang.Object(ARRAY(x0)), x2) → 3460_0_DISPLAY_GE(x1, java.lang.Object(ARRAY(x0)), +(x2, 1))
    • (0 ≥ 0 ⇒ (UIncreasing(3460_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(3460_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(4256_1_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4)) = 0   
POL(4747_0_mysteriousRecursive_InvokeMethod(x1, x2, x3)) = 0   
POL(java.lang.Object(x1)) = 0   
POL(ARRAY(x1)) = 0   
POL(4817_0_mysteriousRecursive_InvokeMethod(x1, x2, x3, x4)) = 0   
POL(3101_0_MYSTERIOUSRECURSIVE_LOAD(x1, x2)) = [-1] + x2 + [-1]x1   
POL(COND_3101_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(4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(x1, x2, x3, x4)) = [-1]x4 + x3 + [2]x2 + [-1]x1   
POL(3101_0_mysteriousRecursive_Load(x1, x2)) = 0   
POL(+(x1, x2)) = 0   
POL(3963_0_mysteriousRecursive_Return) = 0   
POL(COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(x1, x2, x3, x4, x5)) = [-1] + [-1]x5 + x3 + [-1]x2 + [-1]x1   
POL(COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(x1, x2, x3)) = [-1] + x3 + [-1]x2 + [-1]x1   
POL(3460_0_DISPLAY_GE(x1, x2, x3)) = [-1] + x3 + [-1]x2 + x1   
POL(COND_3460_0_DISPLAY_GE(x1, x2, x3, x4)) = [-1] + x4 + [-1]x3   
POL(>=(x1, x2)) = 0   
POL(COND_3460_0_DISPLAY_GE1(x1, x2, x3, x4)) = [-1] + [-1]x3 + x2 + [-1]x1   

The following pairs are in P>:

COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)), x1[1], x1[1], java.lang.Object(ARRAY(x0[1])))
4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))
COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4]))) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1)), x1[4], +(x2[4], 1), java.lang.Object(ARRAY(x0[4])))
COND_3460_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9]) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_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:

3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)), x1[1], x1[1], java.lang.Object(ARRAY(x0[1])))
COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3]))) → COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(&&(&&(&&(&&(>(x2[3], -1), >(x1[3], -1)), <(x1[3], x0[3])), >(x0[3], -1)), >(x0[3], +(x2[3], 1))), 3963_0_mysteriousRecursive_Return, x1[3], x2[3], java.lang.Object(ARRAY(x0[3])))
COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[4], x2[4], java.lang.Object(ARRAY(x0[4]))) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[4])), +(x1[4], 1)), x1[4], +(x2[4], 1), java.lang.Object(ARRAY(x0[4])))
COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))
3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])
COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)
3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[9], java.lang.Object(ARRAY(x0[9])), x2[9]) → 4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(3101_0_mysteriousRecursive_Load(java.lang.Object(ARRAY(x0[9])), +(x1[9], 1)), x1[9], x1[9], java.lang.Object(ARRAY(x0[9])))
COND_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))
3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))

The following pairs are in P:

3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), +(x1[5], 1))
3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])
COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)
3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))
3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4817_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)

The integer pair graph contains the following rules and edges:
(0): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(5): COND_4256_1_MYSTERIOUSRECURSIVE_INVOKEMETHOD(TRUE, 3963_0_mysteriousRecursive_Return, x1[5], x2[5], java.lang.Object(ARRAY(x0[5]))) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[5])), x1[5] + 1)
(6): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(x0[6] > 0 && x0_-1[6] = x0[6] - 1, java.lang.Object(ARRAY(x0[6])), x0_-1[6])
(7): COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(x0[7] - 1, java.lang.Object(ARRAY(x0[7])), 0)
(8): 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), x1[10] + 1)
(11): 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
4256_1_mysteriousRecursive_InvokeMethod(4817_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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x3, x4, java.lang.Object(ARRAY(x0)), x1)
4256_1_mysteriousRecursive_InvokeMethod(4817_0_mysteriousRecursive_InvokeMethod(x1, x2, java.lang.Object(ARRAY(x0)), x3), x4, x5, java.lang.Object(ARRAY(x0))) → 4817_0_mysteriousRecursive_InvokeMethod(x4, x5, java.lang.Object(ARRAY(x0)), x1)

The integer pair graph contains the following rules and edges:
(12): COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), x2[12] + 1)
(11): 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), x1[10] + 1)
(8): 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(x0[7] - 1, java.lang.Object(ARRAY(x0[7])), 0)
(6): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(x0[6] > 0 && x0_-1[6] = x0[6] - 1, java.lang.Object(ARRAY(x0[6])), x0_-1[6])
(2): COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(0): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
4256_1_mysteriousRecursive_InvokeMethod(4817_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), x2[12] + 1)
(11): 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), x1[10] + 1)
(8): 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(x0[7] - 1, java.lang.Object(ARRAY(x0[7])), 0)
(6): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(x0[6] > 0 && x0_-1[6] = x0[6] - 1, java.lang.Object(ARRAY(x0[6])), x0_-1[6])
(2): COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(0): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
4256_1_mysteriousRecursive_InvokeMethod(4817_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@b15fe2a 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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)) the following chains were created:
  • We consider the chain 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)), 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥NonInfC∧COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))∧(UIncreasing(3460_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_3460_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧COND_3460_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), +(x2[11], 1))∧(UIncreasing(3460_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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(2)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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(2)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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(2)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(3460_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]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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_38] = 0∧[(3)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 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)), 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥NonInfC∧COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))∧(UIncreasing(3460_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_3460_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧COND_3460_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), +(x2[11], 1))∧(UIncreasing(3460_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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(2)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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(2)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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(2)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(3460_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]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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_38] = 0∧[(3)bni_38 + (-1)Bound*bni_38] + [bni_38]x2[11] + [bni_38]x0[11] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)







For Pair 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_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]3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_3460_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_3460_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])=TRUE3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_3460_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_3460_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_3460_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_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_3460_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_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_3460_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_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_3460_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]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_3460_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∧[(3)bni_40 + (-1)Bound*bni_40] + [bni_40]x2[11] + [bni_40]x0[11] ≥ 0∧0 = 0∧[(-1)bso_41] ≥ 0)







For Pair COND_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)) the following chains were created:
  • We consider the chain 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)), 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥NonInfC∧COND_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))∧(UIncreasing(3101_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_3460_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧COND_3460_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[8])), +(x1[8], 1))∧(UIncreasing(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1)), 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥NonInfC∧COND_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))∧(UIncreasing(3101_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_3460_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧COND_3460_0_DISPLAY_GE(TRUE, x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[8])), +(x1[8], 1))∧(UIncreasing(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_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]3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_3460_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_3460_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)=TRUE3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥NonInfC∧3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8])≥COND_3460_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_3460_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_3460_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] + [(-1)bni_44]x1[8] ≥ 0∧[1 + (-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_3460_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] + [(-1)bni_44]x1[8] ≥ 0∧[1 + (-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_3460_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] + [(-1)bni_44]x1[8] ≥ 0∧[1 + (-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_3460_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])), ≥)∧[(3)bni_44 + (-1)Bound*bni_44] + [bni_44]x0[8] ≥ 0∧[1 + (-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_3460_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])), ≥)∧[(3)bni_44 + (-1)Bound*bni_44] + [bni_44]x0[8] ≥ 0∧[1 + (-1)bso_45] ≥ 0)







For Pair COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0) the following chains were created:
  • We consider the chain 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0), 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)∧(UIncreasing(3460_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥3460_0_DISPLAY_GE(-(x0[6], 1), java.lang.Object(ARRAY(x0[6])), 0)∧(UIncreasing(3460_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(3460_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 + (-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(3460_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 + (-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(3460_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 + (-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(3460_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)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(3460_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)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(3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(3)bni_46 + (-1)Bound*bni_46] ≥ 0∧[(-1)bso_47] ≥ 0)



  • We consider the chain 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0), 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7])≥3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)∧(UIncreasing(3460_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥3460_0_DISPLAY_GE(-(x0[6], 1), java.lang.Object(ARRAY(x0[6])), 0)∧(UIncreasing(3460_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(3460_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 + (-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(3460_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 + (-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(3460_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 + (-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(3460_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)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(3460_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)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(3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)), ≥)∧[(3)bni_46 + (-1)Bound*bni_46] ≥ 0∧[(-1)bso_47] ≥ 0)







For Pair 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6]), COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_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]3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])∧(UIncreasing(COND_3101_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))=TRUE3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6])≥COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])∧(UIncreasing(COND_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)) the following chains were created:
  • We consider the chain 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)), 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))∧(UIncreasing(3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)), 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))∧(UIncreasing(3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_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]3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_3101_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_3101_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))=TRUE3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_3101_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_3101_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))=TRUE3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_38] = 0∧[(3)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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)bni_38] = 0∧[(3)bni_38 + (-1)Bound*bni_38] + [bni_38]x2[11] + [bni_38]x0[11] ≥ 0∧0 = 0∧[(-1)bso_39] ≥ 0)

  • 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3460_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∧[(3)bni_40 + (-1)Bound*bni_40] + [bni_40]x2[11] + [bni_40]x0[11] ≥ 0∧0 = 0∧[(-1)bso_41] ≥ 0)

  • COND_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_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(3101_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(3101_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)

  • 3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3460_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])), ≥)∧[(3)bni_44 + (-1)Bound*bni_44] + [bni_44]x0[8] ≥ 0∧[1 + (-1)bso_45] ≥ 0)

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

  • 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_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_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_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(3101_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(3101_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)

  • 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_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_3460_0_DISPLAY_GE1(x1, x2, x3, x4)) = [-1]x3 + [-1]x2   
POL(java.lang.Object(x1)) = [-1] + x1   
POL(ARRAY(x1)) = [-1] + [-1]x1   
POL(3460_0_DISPLAY_GE(x1, x2, x3)) = [-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_3460_0_DISPLAY_GE(x1, x2, x3, x4)) = [-1] + [-1]x3 + [-1]x2   
POL(3101_0_MYSTERIOUSRECURSIVE_LOAD(x1, x2)) = [-1]x2 + [-1]x1   
POL(>=(x1, x2)) = [-1]   
POL(COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(x1, x2, x3)) = [-1] + [-1]x3 + [-1]x2 + [-1]x1   
POL(!(x1)) = [-1]   

The following pairs are in P>:

3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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 pairs are in Pbound:

COND_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))
3460_0_DISPLAY_GE(x1[8], java.lang.Object(ARRAY(x0[8])), x2[8]) → COND_3460_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_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)
3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])
COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))
3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])
COND_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), +(x1[10], 1))
COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(-(x0[7], 1), java.lang.Object(ARRAY(x0[7])), 0)
3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(&&(>(x0[6], 0), =(x0_-1[6], -(x0[6], 1))), java.lang.Object(ARRAY(x0[6])), x0_-1[6])
COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), x2[12] + 1)
(11): 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3460_0_DISPLAY_GE(TRUE, x1[10], java.lang.Object(ARRAY(x0[10])), x2[10]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[10])), x1[10] + 1)
(7): COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(TRUE, java.lang.Object(ARRAY(x0[7])), x0_-1[7]) → 3460_0_DISPLAY_GE(x0[7] - 1, java.lang.Object(ARRAY(x0[7])), 0)
(6): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[6])), x0_-1[6]) → COND_3101_0_MYSTERIOUSRECURSIVE_LOAD1(x0[6] > 0 && x0_-1[6] = x0[6] - 1, java.lang.Object(ARRAY(x0[6])), x0_-1[6])
(2): COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(0): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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) -> (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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
4256_1_mysteriousRecursive_InvokeMethod(4817_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:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(11): 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
4256_1_mysteriousRecursive_InvokeMethod(4817_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@b15fe2a 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 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_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]3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_3460_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_3460_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])=TRUE3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥COND_3460_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_3460_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_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x2[11] + [(2)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_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x2[11] + [(2)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_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])), ≥)∧[bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x2[11] + [(2)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_3460_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∧[bni_19 + (-1)Bound*bni_19] + [(-1)bni_19]x2[11] + [(2)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_3460_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]x2[11] + [(2)bni_19]x0[11] ≥ 0∧0 = 0∧[1 + (-1)bso_20] ≥ 0)







For Pair COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)) the following chains were created:
  • We consider the chain 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_0_DISPLAY_GE1(&&(&&(>(x2[11], -1), <(x2[11], x0[11])), >(x0[11], -1)), x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]), COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1)), 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥NonInfC∧COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12])≥3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))∧(UIncreasing(3460_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_3460_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥NonInfC∧COND_3460_0_DISPLAY_GE1(TRUE, x1[11], java.lang.Object(ARRAY(x0[11])), x2[11])≥3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), +(x2[11], 1))∧(UIncreasing(3460_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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)Bound*bni_21] + [(-1)bni_21]x2[11] + [(2)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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)Bound*bni_21] + [(-1)bni_21]x2[11] + [(2)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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧[(-1)Bound*bni_21] + [(-1)bni_21]x2[11] + [(2)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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧0 = 0∧[(-1)Bound*bni_21] + [(-1)bni_21]x2[11] + [(2)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(3460_0_DISPLAY_GE(x1[12], java.lang.Object(ARRAY(x0[12])), +(x2[12], 1))), ≥)∧0 = 0∧[(-1)Bound*bni_21 + (2)bni_21] + [bni_21]x2[11] + [(2)bni_21]x0[11] ≥ 0∧0 = 0∧[(-1)bso_22] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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_3460_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]x2[11] + [(2)bni_19]x0[11] ≥ 0∧0 = 0∧[1 + (-1)bso_20] ≥ 0)

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

3460_0_DISPLAY_GE(x1[11], java.lang.Object(ARRAY(x0[11])), x2[11]) → COND_3460_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:

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

The following pairs are in P:

COND_3460_0_DISPLAY_GE1(TRUE, x1[12], java.lang.Object(ARRAY(x0[12])), x2[12]) → 3460_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

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

Integer


R is empty.

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


The set Q consists of the following terms:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
4256_1_mysteriousRecursive_InvokeMethod(4817_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:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(2): COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), x1[2] + 1)
(0): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
4256_1_mysteriousRecursive_InvokeMethod(4817_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@b15fe2a 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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)) the following chains were created:
  • We consider the chain 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1)), 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))∧(UIncreasing(3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[0])), x1[0])≥3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), +(x1[0], 1))∧(UIncreasing(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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(3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_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]3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_3101_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_3101_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))=TRUE3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_3101_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_3101_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))=TRUE3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_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(3101_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)

  • 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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_3101_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_3101_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(3101_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_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))

The following pairs are in Pbound:

COND_3101_0_MYSTERIOUSRECURSIVE_LOAD(TRUE, java.lang.Object(ARRAY(x0[2])), x1[2]) → 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[2])), +(x1[2], 1))
3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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:

3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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

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

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): 3101_0_MYSTERIOUSRECURSIVE_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_3101_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:
4256_1_mysteriousRecursive_InvokeMethod(4747_0_mysteriousRecursive_InvokeMethod(java.lang.Object(ARRAY(x0)), x1, x2), x3, x4, java.lang.Object(ARRAY(x0)))
4256_1_mysteriousRecursive_InvokeMethod(4817_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:
3015_0_mysterious_Load(EOS(STATIC_3015), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, i531) → 3025_0_mysterious_ArrayLength(EOS(STATIC_3025), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, i531, java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
3025_0_mysterious_ArrayLength(EOS(STATIC_3025), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, i531, java.lang.Object(ARRAY(i29))) → 3034_0_mysterious_GE(EOS(STATIC_3034), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, i531, i29) | &&(&&(>=(i29, 0), =(matching1, 0)), =(matching2, 0))
3034_0_mysterious_GE(EOS(STATIC_3034), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, i531, i29) → 3045_0_mysterious_GE(EOS(STATIC_3045), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, i531, i29) | &&(=(matching1, 0), =(matching2, 0))
3045_0_mysterious_GE(EOS(STATIC_3045), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, i531, i29) → 3057_0_mysterious_Load(EOS(STATIC_3057), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(<(i531, i29), =(matching1, 0)), =(matching2, 0))
3057_0_mysterious_Load(EOS(STATIC_3057), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531) → 3070_0_mysterious_Load(EOS(STATIC_3070), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
3070_0_mysterious_Load(EOS(STATIC_3070), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29))) → 3081_0_mysterious_Load(EOS(STATIC_3081), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0) | &&(=(matching1, 0), =(matching2, 0))
3081_0_mysterious_Load(EOS(STATIC_3081), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3) → 3094_0_mysterious_InvokeMethod(EOS(STATIC_3094), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3094_0_mysterious_InvokeMethod(EOS(STATIC_3094), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531) → 3100_0_swap3_Load(EOS(STATIC_3100), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3100_0_swap3_Load(EOS(STATIC_3100), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531) → 3106_0_swap3_Load(EOS(STATIC_3106), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3106_0_swap3_Load(EOS(STATIC_3106), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531, java.lang.Object(ARRAY(i29))) → 3109_0_swap3_ArrayAccess(EOS(STATIC_3109), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3109_0_swap3_ArrayAccess(EOS(STATIC_3109), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531, java.lang.Object(ARRAY(i29)), matching5) → 3112_0_swap3_Store(EOS(STATIC_3112), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(&&(&&(&&(<(0, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0)), =(matching5, 0))
3112_0_swap3_Store(EOS(STATIC_3112), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531) → 3115_0_swap3_Load(EOS(STATIC_3115), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3115_0_swap3_Load(EOS(STATIC_3115), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531) → 3119_0_swap3_Load(EOS(STATIC_3119), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3119_0_swap3_Load(EOS(STATIC_3119), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531, java.lang.Object(ARRAY(i29))) → 3123_0_swap3_Load(EOS(STATIC_3123), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3123_0_swap3_Load(EOS(STATIC_3123), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), matching4) → 3127_0_swap3_Load(EOS(STATIC_3127), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3127_0_swap3_Load(EOS(STATIC_3127), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29))) → 3131_0_swap3_ArrayAccess(EOS(STATIC_3131), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), i531) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3131_0_swap3_ArrayAccess(EOS(STATIC_3131), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29)), i531) → 3134_0_swap3_ArrayAccess(EOS(STATIC_3134), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), i531) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3134_0_swap3_ArrayAccess(EOS(STATIC_3134), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29)), i531) → 3139_0_swap3_ArrayAccess(EOS(STATIC_3139), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(&&(<(i531, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3139_0_swap3_ArrayAccess(EOS(STATIC_3139), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), matching4) → 3144_0_swap3_Load(EOS(STATIC_3144), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531) | &&(&&(&&(&&(<(0, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3144_0_swap3_Load(EOS(STATIC_3144), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531) → 3150_0_swap3_Load(EOS(STATIC_3150), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, i531, java.lang.Object(ARRAY(i29))) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3150_0_swap3_Load(EOS(STATIC_3150), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, i531, java.lang.Object(ARRAY(i29))) → 3157_0_swap3_Load(EOS(STATIC_3157), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3157_0_swap3_Load(EOS(STATIC_3157), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531) → 3164_0_swap3_ArrayAccess(EOS(STATIC_3164), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3164_0_swap3_ArrayAccess(EOS(STATIC_3164), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531) → 3169_0_swap3_ArrayAccess(EOS(STATIC_3169), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3169_0_swap3_ArrayAccess(EOS(STATIC_3169), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531) → 3178_0_swap3_Return(EOS(STATIC_3178), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(&&(<(i531, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0))
3178_0_swap3_Return(EOS(STATIC_3178), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531) → 3190_0_mysterious_Load(EOS(STATIC_3190), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3190_0_mysterious_Load(EOS(STATIC_3190), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531) → 3194_0_mysterious_InvokeMethod(EOS(STATIC_3194), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
3194_0_mysterious_InvokeMethod(EOS(STATIC_3194), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29))) → 3202_0_display_ConstantStackPush(EOS(STATIC_3202), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
3202_0_display_ConstantStackPush(EOS(STATIC_3202), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29))) → 3213_0_display_Store(EOS(STATIC_3213), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0) | &&(=(matching1, 0), =(matching2, 0))
3213_0_display_Store(EOS(STATIC_3213), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching3) → 3223_0_display_Load(EOS(STATIC_3223), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3223_0_display_Load(EOS(STATIC_3223), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching3) → 3284_0_display_Load(EOS(STATIC_3284), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3284_0_display_Load(EOS(STATIC_3284), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i552) → 3367_0_display_Load(EOS(STATIC_3367), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i552) | &&(=(matching1, 0), =(matching2, 0))
3367_0_display_Load(EOS(STATIC_3367), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i559) → 3480_0_display_Load(EOS(STATIC_3480), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i559) | &&(=(matching1, 0), =(matching2, 0))
3480_0_display_Load(EOS(STATIC_3480), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i566) → 3572_0_display_Load(EOS(STATIC_3572), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i566) | &&(=(matching1, 0), =(matching2, 0))
3572_0_display_Load(EOS(STATIC_3572), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577) → 3581_0_display_Load(EOS(STATIC_3581), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577, i577) | &&(=(matching1, 0), =(matching2, 0))
3581_0_display_Load(EOS(STATIC_3581), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577, i577) → 3592_0_display_ArrayLength(EOS(STATIC_3592), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577, i577, java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
3592_0_display_ArrayLength(EOS(STATIC_3592), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577, i577, java.lang.Object(ARRAY(i29))) → 3602_0_display_GE(EOS(STATIC_3602), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577, i577, i29) | &&(&&(>=(i29, 0), =(matching1, 0)), =(matching2, 0))
3602_0_display_GE(EOS(STATIC_3602), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577, i577, i29) → 3613_0_display_GE(EOS(STATIC_3613), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577, i577, i29) | &&(=(matching1, 0), =(matching2, 0))
3602_0_display_GE(EOS(STATIC_3602), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577, i577, i29) → 3614_0_display_GE(EOS(STATIC_3614), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577, i577, i29) | &&(=(matching1, 0), =(matching2, 0))
3613_0_display_GE(EOS(STATIC_3613), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577, i577, i29) → 3627_0_display_Return(EOS(STATIC_3627), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29))) | &&(&&(>=(i577, i29), =(matching1, 0)), =(matching2, 0))
3627_0_display_Return(EOS(STATIC_3627), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29))) → 3641_0_mysterious_Load(EOS(STATIC_3641), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531) | &&(=(matching1, 0), =(matching2, 0))
3641_0_mysterious_Load(EOS(STATIC_3641), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531) → 3656_0_mysterious_Load(EOS(STATIC_3656), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29))) | &&(=(matching1, 0), =(matching2, 0))
3656_0_mysterious_Load(EOS(STATIC_3656), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29))) → 3673_0_mysterious_Load(EOS(STATIC_3673), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0) | &&(=(matching1, 0), =(matching2, 0))
3673_0_mysterious_Load(EOS(STATIC_3673), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3) → 3729_0_mysterious_InvokeMethod(EOS(STATIC_3729), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3729_0_mysterious_InvokeMethod(EOS(STATIC_3729), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531) → 3747_0_swap3_Load(EOS(STATIC_3747), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3747_0_swap3_Load(EOS(STATIC_3747), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531) → 3777_0_swap3_Load(EOS(STATIC_3777), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3777_0_swap3_Load(EOS(STATIC_3777), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531, java.lang.Object(ARRAY(i29))) → 3791_0_swap3_ArrayAccess(EOS(STATIC_3791), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3791_0_swap3_ArrayAccess(EOS(STATIC_3791), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531, java.lang.Object(ARRAY(i29)), matching5) → 3799_0_swap3_Store(EOS(STATIC_3799), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(&&(&&(&&(<(0, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0)), =(matching5, 0))
3799_0_swap3_Store(EOS(STATIC_3799), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531) → 3807_0_swap3_Load(EOS(STATIC_3807), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3807_0_swap3_Load(EOS(STATIC_3807), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531) → 3817_0_swap3_Load(EOS(STATIC_3817), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3817_0_swap3_Load(EOS(STATIC_3817), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), matching4, i531, java.lang.Object(ARRAY(i29))) → 3830_0_swap3_Load(EOS(STATIC_3830), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3830_0_swap3_Load(EOS(STATIC_3830), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), matching4) → 3842_0_swap3_Load(EOS(STATIC_3842), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29))) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3842_0_swap3_Load(EOS(STATIC_3842), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29))) → 3857_0_swap3_ArrayAccess(EOS(STATIC_3857), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), i531) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3857_0_swap3_ArrayAccess(EOS(STATIC_3857), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29)), i531) → 3869_0_swap3_ArrayAccess(EOS(STATIC_3869), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), i531) | &&(&&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3869_0_swap3_ArrayAccess(EOS(STATIC_3869), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), matching4, java.lang.Object(ARRAY(i29)), i531) → 3876_0_swap3_ArrayAccess(EOS(STATIC_3876), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), 0) | &&(&&(&&(&&(<(i531, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3876_0_swap3_ArrayAccess(EOS(STATIC_3876), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531, java.lang.Object(ARRAY(i29)), matching4) → 3890_0_swap3_Load(EOS(STATIC_3890), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531) | &&(&&(&&(&&(<(0, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0)), =(matching4, 0))
3890_0_swap3_Load(EOS(STATIC_3890), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531) → 3902_0_swap3_Load(EOS(STATIC_3902), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, i531, java.lang.Object(ARRAY(i29))) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3902_0_swap3_Load(EOS(STATIC_3902), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, i531, java.lang.Object(ARRAY(i29))) → 3917_0_swap3_Load(EOS(STATIC_3917), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3917_0_swap3_Load(EOS(STATIC_3917), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531) → 3936_0_swap3_ArrayAccess(EOS(STATIC_3936), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3936_0_swap3_ArrayAccess(EOS(STATIC_3936), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531) → 3944_0_swap3_ArrayAccess(EOS(STATIC_3944), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3944_0_swap3_ArrayAccess(EOS(STATIC_3944), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531, java.lang.Object(ARRAY(i29)), i531) → 3951_0_swap3_Return(EOS(STATIC_3951), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(&&(<(i531, i29), =(matching1, 0)), =(matching2, 0)), =(matching3, 0))
3951_0_swap3_Return(EOS(STATIC_3951), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), matching3, i531) → 3955_0_mysterious_Inc(EOS(STATIC_3955), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531) | &&(&&(=(matching1, 0), =(matching2, 0)), =(matching3, 0))
3955_0_mysterious_Inc(EOS(STATIC_3955), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531) → 3958_0_mysterious_JMP(EOS(STATIC_3958), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, +(i531, 1)) | &&(&&(>=(i531, 0), =(matching1, 0)), =(matching2, 0))
3958_0_mysterious_JMP(EOS(STATIC_3958), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i843) → 3967_0_mysterious_Load(EOS(STATIC_3967), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i843) | &&(=(matching1, 0), =(matching2, 0))
3967_0_mysterious_Load(EOS(STATIC_3967), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i843) → 2998_0_mysterious_Load(EOS(STATIC_2998), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i843) | &&(=(matching1, 0), =(matching2, 0))
2998_0_mysterious_Load(EOS(STATIC_2998), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531) → 3015_0_mysterious_Load(EOS(STATIC_3015), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, i531) | &&(=(matching1, 0), =(matching2, 0))
3614_0_display_GE(EOS(STATIC_3614), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577, i577, i29) → 3628_0_display_Inc(EOS(STATIC_3628), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577) | &&(&&(<(i577, i29), =(matching1, 0)), =(matching2, 0))
3628_0_display_Inc(EOS(STATIC_3628), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i577) → 3642_0_display_JMP(EOS(STATIC_3642), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), +(i577, 1)) | &&(&&(>=(i577, 0), =(matching1, 0)), =(matching2, 0))
3642_0_display_JMP(EOS(STATIC_3642), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i591) → 3659_0_display_Load(EOS(STATIC_3659), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i591) | &&(=(matching1, 0), =(matching2, 0))
3659_0_display_Load(EOS(STATIC_3659), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), matching1, java.lang.Object(ARRAY(i29)), matching2, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i591) → 3572_0_display_Load(EOS(STATIC_3572), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), 0, java.lang.Object(ARRAY(i29)), 0, i531, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i591) | &&(=(matching1, 0), =(matching2, 0))
R rules:

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


P rules:
3602_0_display_GE(EOS(STATIC_3602), 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) → 3602_0_display_GE(EOS(STATIC_3602), 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)))
3602_0_display_GE(EOS(STATIC_3602), 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) → 3602_0_display_GE(EOS(STATIC_3602), 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:



3602_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12) → 3602_0_display_GE(x2, x3, x5, x7, x8, x9, x10, x11, x12)
EOS(x1) → EOS
Cond_3602_0_display_GE1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13) → Cond_3602_0_display_GE1(x1, x3, x4, x6, x8, x9, x10, x11, x12, x13)
Cond_3602_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13) → Cond_3602_0_display_GE(x1, x3, x4, x6, x8, x9, x10, x11, x12, x13)

Filtered duplicate args:



3602_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9) → 3602_0_display_GE(x4, x6, x8)
Cond_3602_0_display_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_3602_0_display_GE(x1, x5, x7, x9)
Cond_3602_0_display_GE1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) → Cond_3602_0_display_GE1(x1, x5, x7, x9)

Filtered unneeded arguments:



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

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


P rules:
3602_0_display_GE(x3, java.lang.Object(ARRAY(x0)), x4) → 3602_0_display_GE(+(x3, 1), java.lang.Object(ARRAY(x0)), 0) | &&(&&(&&(>=(x4, x0), >(x3, -1)), >(x0, 0)), >(x0, +(x3, 1)))
3602_0_display_GE(x3, java.lang.Object(ARRAY(x0)), x4) → 3602_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:
3602_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3602_0_DISPLAY_GE(&&(&&(&&(>=(x4, x0), >(x3, -1)), >(x0, 0)), >(x0, +(x3, 1))), x3, java.lang.Object(ARRAY(x0)), x4)
COND_3602_0_DISPLAY_GE(TRUE, x3, java.lang.Object(ARRAY(x0)), x4) → 3602_0_DISPLAY_GE(+(x3, 1), java.lang.Object(ARRAY(x0)), 0)
3602_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3602_0_DISPLAY_GE1(&&(&&(>(x4, -1), <(x4, x0)), >(x0, -1)), x3, java.lang.Object(ARRAY(x0)), x4)
COND_3602_0_DISPLAY_GE1(TRUE, x3, java.lang.Object(ARRAY(x0)), x4) → 3602_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): 3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3602_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_3602_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1]) → 3602_0_DISPLAY_GE(x3[1] + 1, java.lang.Object(ARRAY(x0[1])), 0)
(2): 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_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_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_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@b15fe2a 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 3602_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3602_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 3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3602_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_3602_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1]) → 3602_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]3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥NonInfC∧3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥COND_3602_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_3602_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)=TRUE3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥NonInfC∧3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥COND_3602_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_3602_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_3602_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] + [(2)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_3602_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] + [(2)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_3602_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] + [(2)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_3602_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])), ≥)∧[(3)bni_25 + (-1)Bound*bni_25] + [bni_25]x3[0] + [(2)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_3602_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])), ≥)∧[(3)bni_25 + (-1)Bound*bni_25] + [bni_25]x3[0] + [(2)bni_25]x0[0] ≥ 0∧[(-1)bso_26] ≥ 0)







For Pair COND_3602_0_DISPLAY_GE(TRUE, x3, java.lang.Object(ARRAY(x0)), x4) → 3602_0_DISPLAY_GE(+(x3, 1), java.lang.Object(ARRAY(x0)), 0) the following chains were created:
  • We consider the chain 3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3602_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_3602_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1]) → 3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0), 3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3602_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_3602_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1])≥NonInfC∧COND_3602_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1])≥3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)∧(UIncreasing(3602_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_3602_0_DISPLAY_GE(TRUE, x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥NonInfC∧COND_3602_0_DISPLAY_GE(TRUE, x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥3602_0_DISPLAY_GE(+(x3[0], 1), java.lang.Object(ARRAY(x0[0])), 0)∧(UIncreasing(3602_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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [(2)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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [(2)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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [(2)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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(3)bni_27 + (-1)Bound*bni_27] + [bni_27]x3[0] + [(2)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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(3)bni_27 + (-1)Bound*bni_27] + [bni_27]x3[0] + [(2)bni_27]x0[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)



  • We consider the chain 3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3602_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_3602_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1]) → 3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0), 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_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_3602_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1])≥NonInfC∧COND_3602_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1])≥3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)∧(UIncreasing(3602_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_3602_0_DISPLAY_GE(TRUE, x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥NonInfC∧COND_3602_0_DISPLAY_GE(TRUE, x3[0], java.lang.Object(ARRAY(x0[0])), x4[0])≥3602_0_DISPLAY_GE(+(x3[0], 1), java.lang.Object(ARRAY(x0[0])), 0)∧(UIncreasing(3602_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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [(2)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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [(2)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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [(2)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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(3)bni_27 + (-1)Bound*bni_27] + [bni_27]x3[0] + [(2)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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(3)bni_27 + (-1)Bound*bni_27] + [bni_27]x3[0] + [(2)bni_27]x0[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)







For Pair 3602_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3602_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 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]), COND_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_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]3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥COND_3602_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_3602_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])=TRUE3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥COND_3602_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_3602_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_3602_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] + [(2)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_3602_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] + [(2)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_3602_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] + [(2)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_3602_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] + [(2)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_3602_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∧[bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x4[2] + [(2)bni_29]x0[2] ≥ 0∧0 = 0∧[(-1)bso_30] ≥ 0)







For Pair COND_3602_0_DISPLAY_GE1(TRUE, x3, java.lang.Object(ARRAY(x0)), x4) → 3602_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), +(x4, 1)) the following chains were created:
  • We consider the chain 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]), COND_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1)), 3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3602_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_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥NonInfC∧COND_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))∧(UIncreasing(3602_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_3602_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧COND_3602_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), +(x4[2], 1))∧(UIncreasing(3602_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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [(2)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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [(2)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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [(2)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(3602_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] + [(2)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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31] = 0∧[bni_31 + (-1)Bound*bni_31] + [(2)bni_31]x4[2] + [(2)bni_31]x0[2] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)



  • We consider the chain 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]), COND_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1)), 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_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_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥NonInfC∧COND_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))∧(UIncreasing(3602_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_3602_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧COND_3602_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), +(x4[2], 1))∧(UIncreasing(3602_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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [(2)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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [(2)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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [(2)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(3602_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] + [(2)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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(-1)bni_31] = 0∧[bni_31 + (-1)Bound*bni_31] + [(2)bni_31]x4[2] + [(2)bni_31]x0[2] ≥ 0∧0 = 0∧[(-1)bso_32] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • 3602_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3602_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_3602_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])), ≥)∧[(3)bni_25 + (-1)Bound*bni_25] + [bni_25]x3[0] + [(2)bni_25]x0[0] ≥ 0∧[(-1)bso_26] ≥ 0)

  • COND_3602_0_DISPLAY_GE(TRUE, x3, java.lang.Object(ARRAY(x0)), x4) → 3602_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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(3)bni_27 + (-1)Bound*bni_27] + [bni_27]x3[0] + [(2)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(3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)), ≥)∧[(3)bni_27 + (-1)Bound*bni_27] + [bni_27]x3[0] + [(2)bni_27]x0[0] ≥ 0∧[1 + (-1)bso_28] ≥ 0)

  • 3602_0_DISPLAY_GE(x3, java.lang.Object(ARRAY(x0)), x4) → COND_3602_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_3602_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∧[bni_29 + (-1)Bound*bni_29] + [(2)bni_29]x4[2] + [(2)bni_29]x0[2] ≥ 0∧0 = 0∧[(-1)bso_30] ≥ 0)

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

The following pairs are in P>:

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

The following pairs are in Pbound:

3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3602_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_3602_0_DISPLAY_GE(TRUE, x3[1], java.lang.Object(ARRAY(x0[1])), x4[1]) → 3602_0_DISPLAY_GE(+(x3[1], 1), java.lang.Object(ARRAY(x0[1])), 0)

The following pairs are in P:

3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3602_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])
3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])
COND_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_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:

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

(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): 3602_0_DISPLAY_GE(x3[0], java.lang.Object(ARRAY(x0[0])), x4[0]) → COND_3602_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): 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_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_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_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_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), x4[3] + 1)
(2): 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_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@b15fe2a 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_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1)) the following chains were created:
  • We consider the chain 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]), COND_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1)), 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_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_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥NonInfC∧COND_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3])≥3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))∧(UIncreasing(3602_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_3602_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧COND_3602_0_DISPLAY_GE1(TRUE, x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), +(x4[2], 1))∧(UIncreasing(3602_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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(2)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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(2)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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧[(2)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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧0 = 0∧[(2)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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧0 = 0∧[(4)bni_19 + (-1)Bound*bni_19] + [bni_19]x4[2] + [(2)bni_19]x0[2] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)







For Pair 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_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 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_0_DISPLAY_GE1(&&(&&(>(x4[2], -1), <(x4[2], x0[2])), >(x0[2], -1)), x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]), COND_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_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]3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥COND_3602_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_3602_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])=TRUE3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥NonInfC∧3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2])≥COND_3602_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_3602_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_3602_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_3602_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_3602_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_3602_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_3602_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∧[(5)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_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_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(3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))), ≥)∧0 = 0∧[(4)bni_19 + (-1)Bound*bni_19] + [bni_19]x4[2] + [(2)bni_19]x0[2] ≥ 0∧0 = 0∧[(-1)bso_20] ≥ 0)

  • 3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_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_3602_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∧[(5)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) = [1]   
POL(COND_3602_0_DISPLAY_GE1(x1, x2, x3, x4)) = [-1]x4 + [-1]x3   
POL(java.lang.Object(x1)) = [2]x1   
POL(ARRAY(x1)) = [-1] + [-1]x1   
POL(3602_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>:

3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_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_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_0_DISPLAY_GE(x3[3], java.lang.Object(ARRAY(x0[3])), +(x4[3], 1))
3602_0_DISPLAY_GE(x3[2], java.lang.Object(ARRAY(x0[2])), x4[2]) → COND_3602_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_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_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

(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_3602_0_DISPLAY_GE1(TRUE, x3[3], java.lang.Object(ARRAY(x0[3])), x4[3]) → 3602_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:
673_0_init_Load(EOS(STATIC_673), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, i93) → 675_0_init_ArrayLength(EOS(STATIC_675), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, i93, java.lang.Object(ARRAY(i29)))
675_0_init_ArrayLength(EOS(STATIC_675), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, i93, java.lang.Object(ARRAY(i29))) → 677_0_init_GE(EOS(STATIC_677), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, i93, i29) | >=(i29, 0)
677_0_init_GE(EOS(STATIC_677), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, i93, i29) → 680_0_init_GE(EOS(STATIC_680), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, i93, i29)
680_0_init_GE(EOS(STATIC_680), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, i93, i29) → 683_0_init_Load(EOS(STATIC_683), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93) | <(i93, i29)
683_0_init_Load(EOS(STATIC_683), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93) → 687_0_init_Load(EOS(STATIC_687), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29)))
687_0_init_Load(EOS(STATIC_687), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29))) → 690_0_init_Load(EOS(STATIC_690), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29)), i93)
690_0_init_Load(EOS(STATIC_690), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29)), i93) → 694_0_init_ConstantStackPush(EOS(STATIC_694), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29)), i93, i93)
694_0_init_ConstantStackPush(EOS(STATIC_694), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29)), i93, i93) → 698_0_init_IntArithmetic(EOS(STATIC_698), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29)), i93, i93)
698_0_init_IntArithmetic(EOS(STATIC_698), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29)), i93, i93) → 703_0_init_ArrayAccess(EOS(STATIC_703), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29)), i93) | >=(i93, 0)
703_0_init_ArrayAccess(EOS(STATIC_703), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29)), i93) → 706_0_init_ArrayAccess(EOS(STATIC_706), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29)), i93)
706_0_init_ArrayAccess(EOS(STATIC_706), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, java.lang.Object(ARRAY(i29)), i93) → 712_0_init_Inc(EOS(STATIC_712), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93) | <(i93, i29)
712_0_init_Inc(EOS(STATIC_712), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93) → 718_0_init_JMP(EOS(STATIC_718), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), +(i93, 1)) | >=(i93, 0)
718_0_init_JMP(EOS(STATIC_718), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i98) → 726_0_init_Load(EOS(STATIC_726), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i98)
726_0_init_Load(EOS(STATIC_726), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i98) → 669_0_init_Load(EOS(STATIC_669), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i98)
669_0_init_Load(EOS(STATIC_669), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93) → 673_0_init_Load(EOS(STATIC_673), i29, java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), java.lang.Object(ARRAY(i29)), i93, i93)
R rules:

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


P rules:
673_0_init_Load(EOS(STATIC_673), x0, java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), java.lang.Object(ARRAY(x0)), x1, x1) → 673_0_init_Load(EOS(STATIC_673), 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:



673_0_init_Load(x1, x2, x3, x4, x5, x6, x7) → 673_0_init_Load(x2, x3, x4, x5, x6, x7)
EOS(x1) → EOS
Cond_673_0_init_Load(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_673_0_init_Load(x1, x3, x4, x5, x6, x7, x8)

Filtered duplicate args:



673_0_init_Load(x1, x2, x3, x4, x5, x6) → 673_0_init_Load(x4, x6)
Cond_673_0_init_Load(x1, x2, x3, x4, x5, x6, x7) → Cond_673_0_init_Load(x1, x5, x7)

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


P rules:
673_0_init_Load(java.lang.Object(ARRAY(x0)), x1) → 673_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:
673_0_INIT_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_673_0_INIT_LOAD(&&(&&(>(x1, -1), <(x1, x0)), >(x0, -1)), java.lang.Object(ARRAY(x0)), x1)
COND_673_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 673_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): 673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_673_0_INIT_LOAD(x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1, java.lang.Object(ARRAY(x0[0])), x1[0])
(1): COND_673_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 673_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@7c9d461f 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 673_0_INIT_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_673_0_INIT_LOAD(&&(&&(>(x1, -1), <(x1, x0)), >(x0, -1)), java.lang.Object(ARRAY(x0)), x1) the following chains were created:
  • We consider the chain 673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_673_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_673_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 673_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]673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_673_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_673_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])=TRUE673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_673_0_INIT_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_673_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_673_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_673_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_673_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_673_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_673_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 673_0_INIT_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1)) the following chains were created:
  • We consider the chain COND_673_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)) which results in the following constraint:

    (7)    (COND_673_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥NonInfC∧COND_673_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))∧(UIncreasing(673_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(673_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(673_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(673_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(673_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.
  • 673_0_INIT_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_673_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_673_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_673_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 673_0_INIT_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
    • ((UIncreasing(673_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(673_0_INIT_LOAD(x1, x2)) = [-1] + [-1]x2 + x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1)) = x1   
POL(COND_673_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_673_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))

The following pairs are in Pbound:

673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_673_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:

673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_673_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): 673_0_INIT_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_673_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_673_0_INIT_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 673_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:
262_0_main_Load(EOS(STATIC_262), java.lang.Object(ARRAY(i6)), i30, i30) → 264_0_main_ArrayLength(EOS(STATIC_264), java.lang.Object(ARRAY(i6)), i30, i30, java.lang.Object(ARRAY(i6)))
264_0_main_ArrayLength(EOS(STATIC_264), java.lang.Object(ARRAY(i6)), i30, i30, java.lang.Object(ARRAY(i6))) → 267_0_main_GE(EOS(STATIC_267), java.lang.Object(ARRAY(i6)), i30, i30, i6) | >=(i6, 0)
267_0_main_GE(EOS(STATIC_267), java.lang.Object(ARRAY(i6)), i30, i30, i6) → 270_0_main_GE(EOS(STATIC_270), java.lang.Object(ARRAY(i6)), i30, i30, i6)
270_0_main_GE(EOS(STATIC_270), java.lang.Object(ARRAY(i6)), i30, i30, i6) → 274_0_main_Load(EOS(STATIC_274), java.lang.Object(ARRAY(i6)), i30) | <(i30, i6)
274_0_main_Load(EOS(STATIC_274), java.lang.Object(ARRAY(i6)), i30) → 278_0_main_ConstantStackPush(EOS(STATIC_278), java.lang.Object(ARRAY(i6)), i30)
278_0_main_ConstantStackPush(EOS(STATIC_278), java.lang.Object(ARRAY(i6)), i30) → 282_0_main_IntArithmetic(EOS(STATIC_282), java.lang.Object(ARRAY(i6)), i30)
282_0_main_IntArithmetic(EOS(STATIC_282), java.lang.Object(ARRAY(i6)), i30) → 285_0_main_Store(EOS(STATIC_285), java.lang.Object(ARRAY(i6)), i30)
285_0_main_Store(EOS(STATIC_285), java.lang.Object(ARRAY(i6)), i30) → 287_0_main_Inc(EOS(STATIC_287), java.lang.Object(ARRAY(i6)), i30)
287_0_main_Inc(EOS(STATIC_287), java.lang.Object(ARRAY(i6)), i30) → 291_0_main_JMP(EOS(STATIC_291), java.lang.Object(ARRAY(i6)), +(i30, 1)) | >=(i30, 0)
291_0_main_JMP(EOS(STATIC_291), java.lang.Object(ARRAY(i6)), i34) → 307_0_main_Load(EOS(STATIC_307), java.lang.Object(ARRAY(i6)), i34)
307_0_main_Load(EOS(STATIC_307), java.lang.Object(ARRAY(i6)), i34) → 259_0_main_Load(EOS(STATIC_259), java.lang.Object(ARRAY(i6)), i34)
259_0_main_Load(EOS(STATIC_259), java.lang.Object(ARRAY(i6)), i30) → 262_0_main_Load(EOS(STATIC_262), java.lang.Object(ARRAY(i6)), i30, i30)
R rules:

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


P rules:
262_0_main_Load(EOS(STATIC_262), java.lang.Object(ARRAY(x0)), x1, x1) → 262_0_main_Load(EOS(STATIC_262), java.lang.Object(ARRAY(x0)), +(x1, 1), +(x1, 1)) | &&(&&(>(+(x1, 1), 0), <(x1, x0)), >(+(x0, 1), 0))
R rules:

Filtered ground terms:



262_0_main_Load(x1, x2, x3, x4) → 262_0_main_Load(x2, x3, x4)
EOS(x1) → EOS
Cond_262_0_main_Load(x1, x2, x3, x4, x5) → Cond_262_0_main_Load(x1, x3, x4, x5)

Filtered duplicate args:



262_0_main_Load(x1, x2, x3) → 262_0_main_Load(x1, x3)
Cond_262_0_main_Load(x1, x2, x3, x4) → Cond_262_0_main_Load(x1, x2, x4)

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


P rules:
262_0_main_Load(java.lang.Object(ARRAY(x0)), x1) → 262_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:
262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_262_0_MAIN_LOAD(&&(&&(>(x1, -1), <(x1, x0)), >(x0, -1)), java.lang.Object(ARRAY(x0)), x1)
COND_262_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 262_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): 262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_262_0_MAIN_LOAD(x1[0] > -1 && x1[0] < x0[0] && x0[0] > -1, java.lang.Object(ARRAY(x0[0])), x1[0])
(1): COND_262_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 262_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@7c9d461f 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 262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_262_0_MAIN_LOAD(&&(&&(>(x1, -1), <(x1, x0)), >(x0, -1)), java.lang.Object(ARRAY(x0)), x1) the following chains were created:
  • We consider the chain 262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_262_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0]), COND_262_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 262_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]262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_262_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_262_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])=TRUE262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥NonInfC∧262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0])≥COND_262_0_MAIN_LOAD(&&(&&(>(x1[0], -1), <(x1[0], x0[0])), >(x0[0], -1)), java.lang.Object(ARRAY(x0[0])), x1[0])∧(UIncreasing(COND_262_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_262_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_262_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_262_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_262_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_262_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1)) the following chains were created:
  • We consider the chain COND_262_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1)) which results in the following constraint:

    (7)    (COND_262_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥NonInfC∧COND_262_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1])≥262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))∧(UIncreasing(262_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(262_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(262_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(262_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(262_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.
  • 262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0)), x1) → COND_262_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_262_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_262_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0)), x1) → 262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0)), +(x1, 1))
    • ((UIncreasing(262_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(262_0_MAIN_LOAD(x1, x2)) = [-1] + [-1]x2 + x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1)) = x1   
POL(COND_262_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_262_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[1])), +(x1[1], 1))

The following pairs are in Pbound:

262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_262_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:

262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_262_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): 262_0_MAIN_LOAD(java.lang.Object(ARRAY(x0[0])), x1[0]) → COND_262_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_262_0_MAIN_LOAD(TRUE, java.lang.Object(ARRAY(x0[1])), x1[1]) → 262_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