(0) Obligation:
Need to prove time_complexity of the following program:
public class Random {
static String[] args;
static int index = 0;
public static int random() {
String string = args[index];
index++;
return string.length();
}
}
public class Round3{
public static void main(String[] args) {
Random.args = args;
int x = Random.random();
while (x % 3 != 0) {
x++;
}
}
}
(1) JBCToGraph (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Constructed TerminationGraph.
(2) Obligation:
Termination Graph based on JBC Program:
Round3.main([Ljava/lang/String;)V: Graph of 108 nodes with 1 SCC.
(3) TerminationGraphToComplexityProof (BOTH CONCRETE BOUNDS(ID, ADD(47)) transformation)
Extracted set of 60 edges for the analysis of TIME complexity. Kept leaves.
(4) Obligation:
Set of 60 edges based on JBC Program.
Performed SCC analyses:
- Used field analysis yielded the following read fields:
Considered paths: nonterm paths and paths from start to sinks
(5) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)
Transformed 60 jbc graph edges to a weighted ITS with 60 rules.
Used simplified encoding of division and modulo.
Filtered conditions with variables that do not depend on the variables on the lhs or rhs without taking transitive dependencies into account.
Did no encode lower bounds for putfield and astore.
(6) Obligation:
IntTrs with 60 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_Load_2(o1, env, static) -{0,0}> main_Load_4(o1, env, static) :|: 0 < o1
main_Load_4(o1, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_5(o1, env, static) :|: 0 < o1
langle_clinit_rangle_ConstantStackPush_5(o1, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_10(iconst_0, o1, env, static) :|: iconst_0 = 0 && 0 < o1
langle_clinit_rangle_ArrayCreate_10(iconst_0, o1, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_11(a2, o1, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2 && 0 < o1
langle_clinit_rangle_FieldAccess_11(a2, o1, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_12(o1, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2 && 0 < o1
langle_clinit_rangle_New_12(o1, env, static) -{0,0}> langle_clinit_rangle_New_13(o1, env, static) :|: 0 < o1
langle_clinit_rangle_New_13(o1, env, static) -{0,0}> langle_clinit_rangle_New_15(o1, env, static) :|: 0 <= static && 0 < o1
langle_clinit_rangle_New_15(o1, env, static) -{1,1}> langle_clinit_rangle_Duplicate_17(o3, o1, env, static) :|: o3 = 1 && 0 < o3 && 0 < o1
langle_clinit_rangle_Duplicate_17(o3, o1, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_19(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_clinit_rangle_ConstantStackPush_19(o3, o1, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_22(o3, NULL, o1, env, static) :|: NULL = 0 && 0 < o3 && 0 < o1
langle_clinit_rangle_InvokeMethod_22(o3, NULL, o1, env, static) -{1,1}> langle_init_rangle_Load_23(o3, o1, env, static) :|: NULL = 0 && 0 < o3 && 0 < o1
langle_init_rangle_Load_23(o3, o1, env, static) -{1,1}> langle_init_rangle_InvokeMethod_26(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_InvokeMethod_26(o3, o1, env, static) -{1,1}> langle_init_rangle_Load_28(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_Load_28(o3, o1, env, static) -{1,1}> langle_init_rangle_InvokeMethod_30(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_InvokeMethod_30(o3, o1, env, static) -{1,1}> langle_init_rangle_Return_32(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_Return_32(o3, o1, env, static) -{1,1}> langle_init_rangle_Return_35(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_Return_35(o3, o1, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_37(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_clinit_rangle_FieldAccess_37(o3, o1, env, static) -{1,1}> langle_clinit_rangle_Return_40(o1, env, static') :|: 0 < o3 && 0 <= o3 && 0 <= static && 0 < o1 && static' <= static + o3
langle_clinit_rangle_Return_40(o1, env, static) -{1,1}> main_Load_41(o1, env, static) :|: 0 < o1
main_Load_41(o1, env, static) -{0,0}> main_Load_42(o1, env, static) :|: 0 < o1
main_Load_42(o1, env, static) -{0,0}> main_Load_44(o1, env, static) :|: 0 <= static && 0 < o1
main_Load_44(o1, env, static) -{0,0}> main_Load_46(o1, env, static) :|: 0 < o1
main_Load_46(o1, env, static) -{0,0}> main_Load_48(o1, env, static) :|: 0 < o1
main_Load_48(o1, env, static) -{1,1}> main_FieldAccess_51(o1, env, static) :|: 0 < o1
main_FieldAccess_51(o1, env, static) -{0,0}> main_FieldAccess_53(o1, env, static) :|: 0 < o1
main_FieldAccess_53(o1, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_55(o1, NULL, iconst_0, env, static) :|: NULL = 0 && iconst_0 = 0 && 0 < o1
langle_clinit_rangle_ConstantStackPush_55(o1, NULL, iconst_0, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_58(iconst_0, o1, NULL, env, static) :|: NULL = 0 && iconst_0 = 0 && 0 < o1
langle_clinit_rangle_FieldAccess_58(iconst_0, o1, NULL, env, static) -{1,1}> langle_clinit_rangle_Return_60(o1, NULL, iconst_0, env, static') :|: NULL = 0 && iconst_0 = 0 && 0 <= static && static' <= static + iconst_0 && 0 < o1
langle_clinit_rangle_Return_60(o1, NULL, iconst_0, env, static) -{1,1}> main_FieldAccess_62(o1, NULL, iconst_0, env, static) :|: NULL = 0 && iconst_0 = 0 && 0 < o1
main_FieldAccess_62(o1, NULL, iconst_0, env, static) -{1,1}> main_InvokeMethod_64(o1, iconst_0, env, static') :|: static' <= static + o1 && NULL = 0 && 0 <= o1 && iconst_0 = 0 && 0 <= static && 0 < o1
main_InvokeMethod_64(o1, iconst_0, env, static) -{1,1}> random_FieldAccess_66(o1, iconst_0, env, static) :|: iconst_0 = 0 && 0 < o1
random_FieldAccess_66(o1, iconst_0, env, static) -{1,1}> random_FieldAccess_67(o1, iconst_0, env, static) :|: 0 <= o1 && o1 <= static && iconst_0 = 0 && 0 <= static && 0 < o1
random_FieldAccess_67(o1, iconst_0, env, static) -{1,1}> random_ArrayAccess_69(o1, iconst_0, env, static) :|: -1 * static <= iconst_0 && iconst_0 = 0 && 0 <= static && iconst_0 <= static && 0 < o1
random_ArrayAccess_69(a6, iconst_0, env, static) -{0,0}> random_ArrayAccess_70(a6, iconst_0, i4, env, static) :|: 0 <= i4 && iconst_0 = 0 && 0 < a6 && i4 < a6
random_ArrayAccess_70(a6, iconst_0, iconst_0, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6
random_ArrayAccess_70(a6, iconst_0, i5, env, static) -{0,0}> random_ArrayAccess_74(a6, iconst_0, i5, env, static) :|: iconst_0 = 0 && 0 < a6 && 0 <= i5 && 1 <= i5
random_ArrayAccess_74(a6, iconst_0, i5, env, static) -{1,1}> random_Store_78(o7, a6, iconst_0, i5, env, static) :|: o7 < a6 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_Store_78(o7, a6, iconst_0, i5, env, static) -{1,1}> random_FieldAccess_80(o7, a6, iconst_0, i5, env, static) :|: iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_FieldAccess_80(o7, a6, iconst_0, i5, env, static) -{1,1}> random_ConstantStackPush_85(iconst_0, o7, a6, i5, env, static) :|: -1 * static <= iconst_0 && iconst_0 = 0 && 0 <= o7 && 0 <= static && 0 < a6 && iconst_0 <= static && 1 <= i5
random_ConstantStackPush_85(iconst_0, o7, a6, i5, env, static) -{1,1}> random_IntArithmetic_88(iconst_0, iconst_1, o7, a6, i5, env, static) :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_IntArithmetic_88(iconst_0, iconst_1, o7, a6, i5, env, static) -{1,1}> random_FieldAccess_90(iconst_1, o7, a6, iconst_0, i5, env, static) :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_FieldAccess_90(iconst_1, o7, a6, iconst_0, i5, env, static) -{1,1}> random_Load_94(o7, a6, iconst_1, i5, env, static') :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 <= static && 0 < a6 && static' <= static + iconst_1 && 1 <= i5
random_Load_94(o7, a6, iconst_1, i5, env, static) -{1,1}> random_InvokeMethod_100(o7, a6, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 <= o7 && 0 < a6 && 1 <= i5
random_InvokeMethod_100(o12, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_102(o12, a6, iconst_1, i5, env, static) :|: 0 <= o12 && 0 < o12 && iconst_1 = 1 && 0 < a6 && 1 <= i5
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(NULL, a6, iconst_1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
random_InvokeMethod_102(o12, a6, iconst_1, i5, env, static) -{1,1}> random_Return_106(i8, a6, iconst_1, i5, env, static) :|: i8 <= o12 && 0 < o12 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
random_Return_106(i8, a6, iconst_1, i5, env, static) -{1,1}> main_Store_112(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_Store_112(a6, i8, iconst_1, i5, env, static) -{1,1}> main_Load_116(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_Load_116(a6, i8, iconst_1, i5, env, static) -{1,1}> main_ConstantStackPush_121(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_ConstantStackPush_121(a6, i8, iconst_1, i5, env, static) -{1,1}> main_IntArithmetic_127(a6, i8, iconst_3, iconst_1, i5, env, static) :|: iconst_3 = 3 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_IntArithmetic_127(a6, i8, iconst_3, iconst_1, i5, env, static) -{1,1}> main_EQ_131(a6, i10, i8, iconst_1, i5, env, static) :|: 0 <= i10 && iconst_3 = 3 && iconst_1 = 1 && i10 < iconst_3 && 0 < a6 && 0 <= i8 && i10 <= 2 && 1 <= i5
main_EQ_131(a6, i13, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 1 <= i5 && 0 <= i13
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, iconst_0, i8, iconst_1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) -{1,1}> main_Inc_140(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 0 < i13 && 1 <= i5
main_Inc_140(a6, i8, iconst_1, i5, env, static) -{1,1}> main_JMP_154(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && i8 + 1 = i16 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_JMP_154(a6, i16, iconst_1, i5, env, static) -{1,1}> main_Load_157(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_Load_157(a6, i16, iconst_1, i5, env, static) -{1,1}> main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) -{1,1}> main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) :|: iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) -{1,1}> main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && 0 < a6 && 0 <= i19 && 1 <= i5 && i19 < iconst_3
main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) -{0,0}> main_EQ_131(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && 1 <= i16 && iconst_1 = 1 && 0 <= i16 && 0 < a6 && 0 <= i19 && 1 <= i5
(7) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
obtained
main_Load_2(
o1,
env,
static) -{23,23}>
random_ArrayAccess_70(
o1,
0,
i4',
env,
static'3) :|:
static'1 <=
static''' +
1 &&
i4' <
o1 &&
0 <=
2 &&
0 <
o1 &&
0 <=
static'2 &&
0 <=
i4' &&
static'2 <=
static'1 +
0 &&
0 <=
o1 &&
o1 <=
static'3 &&
static''' <=
static +
2 &&
0 <=
static'1 &&
static'3 <=
static'2 +
o1 &&
0 <=
static &&
-1 *
static'3 <=
0 &&
0 <=
static''' &&
0 <
2 &&
0 <=
static'3 &&
0 <
1 &&
0 <=
1by chaining
main_Load_2(
o1,
env,
static) -{0,0}>
main_Load_4(
o1,
env,
static) :|:
0 <
o1main_Load_4(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_5(
o1,
env,
static) :|:
0 <
o1langle_clinit_rangle_ConstantStackPush_5(
o1,
env,
static) -{1,1}>
langle_clinit_rangle_ArrayCreate_10(
iconst_0,
o1,
env,
static) :|:
iconst_0 =
0 &&
0 <
o1langle_clinit_rangle_ArrayCreate_10(
iconst_0,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_11(
a2,
o1,
iconst_0,
env,
static) :|:
a2 =
2 &&
iconst_0 =
0 &&
0 <
a2 &&
0 <
o1langle_clinit_rangle_FieldAccess_11(
a2,
o1,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_New_12(
o1,
env,
static') :|:
0 <=
a2 &&
iconst_0 =
0 &&
static' <=
static +
a2 &&
0 <=
static &&
0 <
a2 &&
0 <
o1langle_clinit_rangle_New_12(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_New_13(
o1,
env,
static) :|:
0 <
o1langle_clinit_rangle_New_13(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_New_15(
o1,
env,
static) :|:
0 <=
static &&
0 <
o1langle_clinit_rangle_New_15(
o1,
env,
static) -{1,1}>
langle_clinit_rangle_Duplicate_17(
o3,
o1,
env,
static) :|:
o3 =
1 &&
0 <
o3 &&
0 <
o1langle_clinit_rangle_Duplicate_17(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_ConstantStackPush_19(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_clinit_rangle_ConstantStackPush_19(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_InvokeMethod_22(
o3,
NULL,
o1,
env,
static) :|:
NULL =
0 &&
0 <
o3 &&
0 <
o1langle_clinit_rangle_InvokeMethod_22(
o3,
NULL,
o1,
env,
static) -{1,1}>
langle_init_rangle_Load_23(
o3,
o1,
env,
static) :|:
NULL =
0 &&
0 <
o3 &&
0 <
o1langle_init_rangle_Load_23(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_26(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_InvokeMethod_26(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_Load_28(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_Load_28(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_30(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_InvokeMethod_30(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_Return_32(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_Return_32(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_Return_35(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_Return_35(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_37(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_clinit_rangle_FieldAccess_37(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_Return_40(
o1,
env,
static') :|:
0 <
o3 &&
0 <=
o3 &&
0 <=
static &&
0 <
o1 &&
static' <=
static +
o3langle_clinit_rangle_Return_40(
o1,
env,
static) -{1,1}>
main_Load_41(
o1,
env,
static) :|:
0 <
o1main_Load_41(
o1,
env,
static) -{0,0}>
main_Load_42(
o1,
env,
static) :|:
0 <
o1main_Load_42(
o1,
env,
static) -{0,0}>
main_Load_44(
o1,
env,
static) :|:
0 <=
static &&
0 <
o1main_Load_44(
o1,
env,
static) -{0,0}>
main_Load_46(
o1,
env,
static) :|:
0 <
o1main_Load_46(
o1,
env,
static) -{0,0}>
main_Load_48(
o1,
env,
static) :|:
0 <
o1main_Load_48(
o1,
env,
static) -{1,1}>
main_FieldAccess_51(
o1,
env,
static) :|:
0 <
o1main_FieldAccess_51(
o1,
env,
static) -{0,0}>
main_FieldAccess_53(
o1,
env,
static) :|:
0 <
o1main_FieldAccess_53(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_55(
o1,
NULL,
iconst_0,
env,
static) :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <
o1langle_clinit_rangle_ConstantStackPush_55(
o1,
NULL,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_58(
iconst_0,
o1,
NULL,
env,
static) :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <
o1langle_clinit_rangle_FieldAccess_58(
iconst_0,
o1,
NULL,
env,
static) -{1,1}>
langle_clinit_rangle_Return_60(
o1,
NULL,
iconst_0,
env,
static') :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <=
static &&
static' <=
static +
iconst_0 &&
0 <
o1langle_clinit_rangle_Return_60(
o1,
NULL,
iconst_0,
env,
static) -{1,1}>
main_FieldAccess_62(
o1,
NULL,
iconst_0,
env,
static) :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <
o1main_FieldAccess_62(
o1,
NULL,
iconst_0,
env,
static) -{1,1}>
main_InvokeMethod_64(
o1,
iconst_0,
env,
static') :|:
static' <=
static +
o1 &&
NULL =
0 &&
0 <=
o1 &&
iconst_0 =
0 &&
0 <=
static &&
0 <
o1main_InvokeMethod_64(
o1,
iconst_0,
env,
static) -{1,1}>
random_FieldAccess_66(
o1,
iconst_0,
env,
static) :|:
iconst_0 =
0 &&
0 <
o1random_FieldAccess_66(
o1,
iconst_0,
env,
static) -{1,1}>
random_FieldAccess_67(
o1,
iconst_0,
env,
static) :|:
0 <=
o1 &&
o1 <=
static &&
iconst_0 =
0 &&
0 <=
static &&
0 <
o1random_FieldAccess_67(
o1,
iconst_0,
env,
static) -{1,1}>
random_ArrayAccess_69(
o1,
iconst_0,
env,
static) :|:
-1 *
static <=
iconst_0 &&
iconst_0 =
0 &&
0 <=
static &&
iconst_0 <=
static &&
0 <
o1random_ArrayAccess_69(
a6,
iconst_0,
env,
static) -{0,0}>
random_ArrayAccess_70(
a6,
iconst_0,
i4,
env,
static) :|:
0 <=
i4 &&
iconst_0 =
0 &&
0 <
a6 &&
i4 <
a6obtained
random_ArrayAccess_70(a6, 0, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0
by chaining
random_ArrayAccess_70(a6, iconst_0, i5, env, static) -{0,0}> random_ArrayAccess_74(a6, iconst_0, i5, env, static) :|: iconst_0 = 0 && 0 < a6 && 0 <= i5 && 1 <= i5
random_ArrayAccess_74(a6, iconst_0, i5, env, static) -{1,1}> random_Store_78(o7, a6, iconst_0, i5, env, static) :|: o7 < a6 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_Store_78(o7, a6, iconst_0, i5, env, static) -{1,1}> random_FieldAccess_80(o7, a6, iconst_0, i5, env, static) :|: iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_FieldAccess_80(o7, a6, iconst_0, i5, env, static) -{1,1}> random_ConstantStackPush_85(iconst_0, o7, a6, i5, env, static) :|: -1 * static <= iconst_0 && iconst_0 = 0 && 0 <= o7 && 0 <= static && 0 < a6 && iconst_0 <= static && 1 <= i5
random_ConstantStackPush_85(iconst_0, o7, a6, i5, env, static) -{1,1}> random_IntArithmetic_88(iconst_0, iconst_1, o7, a6, i5, env, static) :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_IntArithmetic_88(iconst_0, iconst_1, o7, a6, i5, env, static) -{1,1}> random_FieldAccess_90(iconst_1, o7, a6, iconst_0, i5, env, static) :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_FieldAccess_90(iconst_1, o7, a6, iconst_0, i5, env, static) -{1,1}> random_Load_94(o7, a6, iconst_1, i5, env, static') :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 <= static && 0 < a6 && static' <= static + iconst_1 && 1 <= i5
random_Load_94(o7, a6, iconst_1, i5, env, static) -{1,1}> random_InvokeMethod_100(o7, a6, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 <= o7 && 0 < a6 && 1 <= i5
obtained
random_InvokeMethod_100(o12, a6, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && i10' < 3 && 0 <= i10'
by chaining
random_InvokeMethod_100(o12, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_102(o12, a6, iconst_1, i5, env, static) :|: 0 <= o12 && 0 < o12 && iconst_1 = 1 && 0 < a6 && 1 <= i5
random_InvokeMethod_102(o12, a6, iconst_1, i5, env, static) -{1,1}> random_Return_106(i8, a6, iconst_1, i5, env, static) :|: i8 <= o12 && 0 < o12 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
random_Return_106(i8, a6, iconst_1, i5, env, static) -{1,1}> main_Store_112(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_Store_112(a6, i8, iconst_1, i5, env, static) -{1,1}> main_Load_116(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_Load_116(a6, i8, iconst_1, i5, env, static) -{1,1}> main_ConstantStackPush_121(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_ConstantStackPush_121(a6, i8, iconst_1, i5, env, static) -{1,1}> main_IntArithmetic_127(a6, i8, iconst_3, iconst_1, i5, env, static) :|: iconst_3 = 3 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_IntArithmetic_127(a6, i8, iconst_3, iconst_1, i5, env, static) -{1,1}> main_EQ_131(a6, i10, i8, iconst_1, i5, env, static) :|: 0 <= i10 && iconst_3 = 3 && iconst_1 = 1 && i10 < iconst_3 && 0 < a6 && 0 <= i8 && i10 <= 2 && 1 <= i5
obtained
main_EQ_131(a6, i13, i8, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3
by chaining
main_EQ_131(a6, i13, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 1 <= i5 && 0 <= i13
main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) -{1,1}> main_Inc_140(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 0 < i13 && 1 <= i5
main_Inc_140(a6, i8, iconst_1, i5, env, static) -{1,1}> main_JMP_154(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && i8 + 1 = i16 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_JMP_154(a6, i16, iconst_1, i5, env, static) -{1,1}> main_Load_157(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_Load_157(a6, i16, iconst_1, i5, env, static) -{1,1}> main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) -{1,1}> main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) :|: iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) -{1,1}> main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && 0 < a6 && 0 <= i19 && 1 <= i5 && i19 < iconst_3
main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) -{0,0}> main_EQ_131(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && 1 <= i16 && iconst_1 = 1 && 0 <= i16 && 0 < a6 && 0 <= i19 && 1 <= i5
(8) Obligation:
IntTrs with 7 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 <= 2 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 + 0 && 0 <= o1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 < 2 && 0 <= static'3 && 0 < 1 && 0 <= 1
random_ArrayAccess_70(a6, iconst_0, iconst_0, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6
random_ArrayAccess_70(a6, 0, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(NULL, a6, iconst_1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
random_InvokeMethod_100(o12, a6, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && i10' < 3 && 0 <= i10'
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, iconst_0, i8, iconst_1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
main_EQ_131(a6, i13, i8, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3
(9) MovedArithmeticToConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from lhss to constraints.
random_ArrayAccess_70(a6, 0, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0
was transformed to
random_ArrayAccess_70(a6, x, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0 && x = 0
main_EQ_131(a6, i13, i8, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3
was transformed to
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3 && x = 1
random_InvokeMethod_100(o12, a6, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && i10' < 3 && 0 <= i10'
was transformed to
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && i10' < 3 && 0 <= i10' && x = 1
(10) Obligation:
IntTrs with 7 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
random_ArrayAccess_70(a6, x, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0 && x = 0
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3 && x = 1
random_ArrayAccess_70(a6, iconst_0, iconst_0, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && i10' < 3 && 0 <= i10' && x = 1
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, iconst_0, i8, iconst_1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(NULL, a6, iconst_1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 <= 2 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 + 0 && 0 <= o1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 < 2 && 0 <= static'3 && 0 < 1 && 0 <= 1
(11) LinearizedLhssProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Linearized lhss.
random_ArrayAccess_70(a6, iconst_0, iconst_0, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6
was transformed to
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
(12) Obligation:
IntTrs with 7 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && i10' < 3 && 0 <= i10' && x = 1
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
random_ArrayAccess_70(a6, x, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0 && x = 0
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, iconst_0, i8, iconst_1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(NULL, a6, iconst_1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 <= 2 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 + 0 && 0 <= o1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 < 2 && 0 <= static'3 && 0 < 1 && 0 <= 1
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3 && x = 1
(13) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from constraints to rhss.
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, iconst_0, i8, iconst_1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
was transformed to
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, 0, i8, 1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
was transformed to
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, 0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(NULL, a6, iconst_1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
was transformed to
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(0, a6, 1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3 && x = 1
was transformed to
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i8 + 1, 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3 && x = 1
(14) Obligation:
IntTrs with 7 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && i10' < 3 && 0 <= i10' && x = 1
random_ArrayAccess_70(a6, x, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0 && x = 0
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, 0, i8, 1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, 0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(0, a6, 1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 <= 2 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 + 0 && 0 <= o1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 < 2 && 0 <= static'3 && 0 < 1 && 0 <= 1
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i8 + 1, 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3 && x = 1
(15) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Simplified expressions.
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i8 + 1, 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3 && x = 1
was transformed to
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i8 + 1, 1, i5, env, static) :|: 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3 && x = 1
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && i10' < 3 && 0 <= i10' && x = 1
was transformed to
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && i10' < 3 && 0 <= i10' && x = 1
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 <= 2 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 + 0 && 0 <= o1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 < 2 && 0 <= static'3 && 0 < 1 && 0 <= 1
was transformed to
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 <= static'3
(16) Obligation:
IntTrs with 7 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(0, a6, 1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, 0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && i10' < 3 && 0 <= i10' && x = 1
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 <= static'3
random_ArrayAccess_70(a6, x, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0 && x = 0
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, 0, i8, 1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i8 + 1, 1, i5, env, static) :|: 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3 && x = 1
(17) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)
Transformed 60 jbc graph edges to a weighted ITS with 60 rules.
Filtered conditions with variables that do not depend on the variables on the lhs or rhs without taking transitive dependencies into account.
Did no encode lower bounds for putfield and astore.
(18) Obligation:
IntTrs with 60 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_Load_2(o1, env, static) -{0,0}> main_Load_4(o1, env, static) :|: 0 < o1
main_Load_4(o1, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_5(o1, env, static) :|: 0 < o1
langle_clinit_rangle_ConstantStackPush_5(o1, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_10(iconst_0, o1, env, static) :|: iconst_0 = 0 && 0 < o1
langle_clinit_rangle_ArrayCreate_10(iconst_0, o1, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_11(a2, o1, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2 && 0 < o1
langle_clinit_rangle_FieldAccess_11(a2, o1, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_12(o1, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2 && 0 < o1
langle_clinit_rangle_New_12(o1, env, static) -{0,0}> langle_clinit_rangle_New_13(o1, env, static) :|: 0 < o1
langle_clinit_rangle_New_13(o1, env, static) -{0,0}> langle_clinit_rangle_New_15(o1, env, static) :|: 0 <= static && 0 < o1
langle_clinit_rangle_New_15(o1, env, static) -{1,1}> langle_clinit_rangle_Duplicate_17(o3, o1, env, static) :|: o3 = 1 && 0 < o3 && 0 < o1
langle_clinit_rangle_Duplicate_17(o3, o1, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_19(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_clinit_rangle_ConstantStackPush_19(o3, o1, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_22(o3, NULL, o1, env, static) :|: NULL = 0 && 0 < o3 && 0 < o1
langle_clinit_rangle_InvokeMethod_22(o3, NULL, o1, env, static) -{1,1}> langle_init_rangle_Load_23(o3, o1, env, static) :|: NULL = 0 && 0 < o3 && 0 < o1
langle_init_rangle_Load_23(o3, o1, env, static) -{1,1}> langle_init_rangle_InvokeMethod_26(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_InvokeMethod_26(o3, o1, env, static) -{1,1}> langle_init_rangle_Load_28(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_Load_28(o3, o1, env, static) -{1,1}> langle_init_rangle_InvokeMethod_30(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_InvokeMethod_30(o3, o1, env, static) -{1,1}> langle_init_rangle_Return_32(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_Return_32(o3, o1, env, static) -{1,1}> langle_init_rangle_Return_35(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_Return_35(o3, o1, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_37(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_clinit_rangle_FieldAccess_37(o3, o1, env, static) -{1,1}> langle_clinit_rangle_Return_40(o1, env, static') :|: 0 < o3 && 0 <= o3 && 0 <= static && 0 < o1 && static' <= static + o3
langle_clinit_rangle_Return_40(o1, env, static) -{1,1}> main_Load_41(o1, env, static) :|: 0 < o1
main_Load_41(o1, env, static) -{0,0}> main_Load_42(o1, env, static) :|: 0 < o1
main_Load_42(o1, env, static) -{0,0}> main_Load_44(o1, env, static) :|: 0 <= static && 0 < o1
main_Load_44(o1, env, static) -{0,0}> main_Load_46(o1, env, static) :|: 0 < o1
main_Load_46(o1, env, static) -{0,0}> main_Load_48(o1, env, static) :|: 0 < o1
main_Load_48(o1, env, static) -{1,1}> main_FieldAccess_51(o1, env, static) :|: 0 < o1
main_FieldAccess_51(o1, env, static) -{0,0}> main_FieldAccess_53(o1, env, static) :|: 0 < o1
main_FieldAccess_53(o1, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_55(o1, NULL, iconst_0, env, static) :|: NULL = 0 && iconst_0 = 0 && 0 < o1
langle_clinit_rangle_ConstantStackPush_55(o1, NULL, iconst_0, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_58(iconst_0, o1, NULL, env, static) :|: NULL = 0 && iconst_0 = 0 && 0 < o1
langle_clinit_rangle_FieldAccess_58(iconst_0, o1, NULL, env, static) -{1,1}> langle_clinit_rangle_Return_60(o1, NULL, iconst_0, env, static') :|: NULL = 0 && iconst_0 = 0 && 0 <= static && static' <= static + iconst_0 && 0 < o1
langle_clinit_rangle_Return_60(o1, NULL, iconst_0, env, static) -{1,1}> main_FieldAccess_62(o1, NULL, iconst_0, env, static) :|: NULL = 0 && iconst_0 = 0 && 0 < o1
main_FieldAccess_62(o1, NULL, iconst_0, env, static) -{1,1}> main_InvokeMethod_64(o1, iconst_0, env, static') :|: static' <= static + o1 && NULL = 0 && 0 <= o1 && iconst_0 = 0 && 0 <= static && 0 < o1
main_InvokeMethod_64(o1, iconst_0, env, static) -{1,1}> random_FieldAccess_66(o1, iconst_0, env, static) :|: iconst_0 = 0 && 0 < o1
random_FieldAccess_66(o1, iconst_0, env, static) -{1,1}> random_FieldAccess_67(o1, iconst_0, env, static) :|: 0 <= o1 && o1 <= static && iconst_0 = 0 && 0 <= static && 0 < o1
random_FieldAccess_67(o1, iconst_0, env, static) -{1,1}> random_ArrayAccess_69(o1, iconst_0, env, static) :|: -1 * static <= iconst_0 && iconst_0 = 0 && 0 <= static && iconst_0 <= static && 0 < o1
random_ArrayAccess_69(a6, iconst_0, env, static) -{0,0}> random_ArrayAccess_70(a6, iconst_0, i4, env, static) :|: 0 <= i4 && iconst_0 = 0 && 0 < a6 && i4 < a6
random_ArrayAccess_70(a6, iconst_0, iconst_0, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6
random_ArrayAccess_70(a6, iconst_0, i5, env, static) -{0,0}> random_ArrayAccess_74(a6, iconst_0, i5, env, static) :|: iconst_0 = 0 && 0 < a6 && 0 <= i5 && 1 <= i5
random_ArrayAccess_74(a6, iconst_0, i5, env, static) -{1,1}> random_Store_78(o7, a6, iconst_0, i5, env, static) :|: o7 < a6 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_Store_78(o7, a6, iconst_0, i5, env, static) -{1,1}> random_FieldAccess_80(o7, a6, iconst_0, i5, env, static) :|: iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_FieldAccess_80(o7, a6, iconst_0, i5, env, static) -{1,1}> random_ConstantStackPush_85(iconst_0, o7, a6, i5, env, static) :|: -1 * static <= iconst_0 && iconst_0 = 0 && 0 <= o7 && 0 <= static && 0 < a6 && iconst_0 <= static && 1 <= i5
random_ConstantStackPush_85(iconst_0, o7, a6, i5, env, static) -{1,1}> random_IntArithmetic_88(iconst_0, iconst_1, o7, a6, i5, env, static) :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_IntArithmetic_88(iconst_0, iconst_1, o7, a6, i5, env, static) -{1,1}> random_FieldAccess_90(iconst_1, o7, a6, iconst_0, i5, env, static) :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_FieldAccess_90(iconst_1, o7, a6, iconst_0, i5, env, static) -{1,1}> random_Load_94(o7, a6, iconst_1, i5, env, static') :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 <= static && 0 < a6 && static' <= static + iconst_1 && 1 <= i5
random_Load_94(o7, a6, iconst_1, i5, env, static) -{1,1}> random_InvokeMethod_100(o7, a6, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 <= o7 && 0 < a6 && 1 <= i5
random_InvokeMethod_100(o12, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_102(o12, a6, iconst_1, i5, env, static) :|: 0 <= o12 && 0 < o12 && iconst_1 = 1 && 0 < a6 && 1 <= i5
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(NULL, a6, iconst_1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
random_InvokeMethod_102(o12, a6, iconst_1, i5, env, static) -{1,1}> random_Return_106(i8, a6, iconst_1, i5, env, static) :|: i8 <= o12 && 0 < o12 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
random_Return_106(i8, a6, iconst_1, i5, env, static) -{1,1}> main_Store_112(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_Store_112(a6, i8, iconst_1, i5, env, static) -{1,1}> main_Load_116(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_Load_116(a6, i8, iconst_1, i5, env, static) -{1,1}> main_ConstantStackPush_121(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_ConstantStackPush_121(a6, i8, iconst_1, i5, env, static) -{1,1}> main_IntArithmetic_127(a6, i8, iconst_3, iconst_1, i5, env, static) :|: iconst_3 = 3 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_IntArithmetic_127(a6, i8, iconst_3, iconst_1, i5, env, static) -{1,1}> main_EQ_131(a6, i10, i8, iconst_1, i5, env, static) :|: 0 <= i10 && i8 % iconst_3 = i10 && iconst_3 = 3 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && i10 <= 2 && 1 <= i5
main_EQ_131(a6, i13, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 1 <= i5 && 0 <= i13
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, iconst_0, i8, iconst_1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) -{1,1}> main_Inc_140(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 0 < i13 && 1 <= i5
main_Inc_140(a6, i8, iconst_1, i5, env, static) -{1,1}> main_JMP_154(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && i8 + 1 = i16 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_JMP_154(a6, i16, iconst_1, i5, env, static) -{1,1}> main_Load_157(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_Load_157(a6, i16, iconst_1, i5, env, static) -{1,1}> main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) -{1,1}> main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) :|: iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) -{1,1}> main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && i16 % iconst_3 = i19 && 0 < a6 && 0 <= i19 && 1 <= i5
main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) -{0,0}> main_EQ_131(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && 1 <= i16 && iconst_1 = 1 && 0 <= i16 && 0 < a6 && 0 <= i19 && 1 <= i5
(19) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
obtained
main_Load_2(
o1,
env,
static) -{23,23}>
random_ArrayAccess_70(
o1,
0,
i4',
env,
static'3) :|:
static'1 <=
static''' +
1 &&
i4' <
o1 &&
0 <=
2 &&
0 <
o1 &&
0 <=
static'2 &&
0 <=
i4' &&
static'2 <=
static'1 +
0 &&
0 <=
o1 &&
o1 <=
static'3 &&
static''' <=
static +
2 &&
0 <=
static'1 &&
static'3 <=
static'2 +
o1 &&
0 <=
static &&
-1 *
static'3 <=
0 &&
0 <=
static''' &&
0 <
2 &&
0 <=
static'3 &&
0 <
1 &&
0 <=
1by chaining
main_Load_2(
o1,
env,
static) -{0,0}>
main_Load_4(
o1,
env,
static) :|:
0 <
o1main_Load_4(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_5(
o1,
env,
static) :|:
0 <
o1langle_clinit_rangle_ConstantStackPush_5(
o1,
env,
static) -{1,1}>
langle_clinit_rangle_ArrayCreate_10(
iconst_0,
o1,
env,
static) :|:
iconst_0 =
0 &&
0 <
o1langle_clinit_rangle_ArrayCreate_10(
iconst_0,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_11(
a2,
o1,
iconst_0,
env,
static) :|:
a2 =
2 &&
iconst_0 =
0 &&
0 <
a2 &&
0 <
o1langle_clinit_rangle_FieldAccess_11(
a2,
o1,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_New_12(
o1,
env,
static') :|:
0 <=
a2 &&
iconst_0 =
0 &&
static' <=
static +
a2 &&
0 <=
static &&
0 <
a2 &&
0 <
o1langle_clinit_rangle_New_12(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_New_13(
o1,
env,
static) :|:
0 <
o1langle_clinit_rangle_New_13(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_New_15(
o1,
env,
static) :|:
0 <=
static &&
0 <
o1langle_clinit_rangle_New_15(
o1,
env,
static) -{1,1}>
langle_clinit_rangle_Duplicate_17(
o3,
o1,
env,
static) :|:
o3 =
1 &&
0 <
o3 &&
0 <
o1langle_clinit_rangle_Duplicate_17(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_ConstantStackPush_19(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_clinit_rangle_ConstantStackPush_19(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_InvokeMethod_22(
o3,
NULL,
o1,
env,
static) :|:
NULL =
0 &&
0 <
o3 &&
0 <
o1langle_clinit_rangle_InvokeMethod_22(
o3,
NULL,
o1,
env,
static) -{1,1}>
langle_init_rangle_Load_23(
o3,
o1,
env,
static) :|:
NULL =
0 &&
0 <
o3 &&
0 <
o1langle_init_rangle_Load_23(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_26(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_InvokeMethod_26(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_Load_28(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_Load_28(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_30(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_InvokeMethod_30(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_Return_32(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_Return_32(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_Return_35(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_Return_35(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_37(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_clinit_rangle_FieldAccess_37(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_Return_40(
o1,
env,
static') :|:
0 <
o3 &&
0 <=
o3 &&
0 <=
static &&
0 <
o1 &&
static' <=
static +
o3langle_clinit_rangle_Return_40(
o1,
env,
static) -{1,1}>
main_Load_41(
o1,
env,
static) :|:
0 <
o1main_Load_41(
o1,
env,
static) -{0,0}>
main_Load_42(
o1,
env,
static) :|:
0 <
o1main_Load_42(
o1,
env,
static) -{0,0}>
main_Load_44(
o1,
env,
static) :|:
0 <=
static &&
0 <
o1main_Load_44(
o1,
env,
static) -{0,0}>
main_Load_46(
o1,
env,
static) :|:
0 <
o1main_Load_46(
o1,
env,
static) -{0,0}>
main_Load_48(
o1,
env,
static) :|:
0 <
o1main_Load_48(
o1,
env,
static) -{1,1}>
main_FieldAccess_51(
o1,
env,
static) :|:
0 <
o1main_FieldAccess_51(
o1,
env,
static) -{0,0}>
main_FieldAccess_53(
o1,
env,
static) :|:
0 <
o1main_FieldAccess_53(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_55(
o1,
NULL,
iconst_0,
env,
static) :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <
o1langle_clinit_rangle_ConstantStackPush_55(
o1,
NULL,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_58(
iconst_0,
o1,
NULL,
env,
static) :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <
o1langle_clinit_rangle_FieldAccess_58(
iconst_0,
o1,
NULL,
env,
static) -{1,1}>
langle_clinit_rangle_Return_60(
o1,
NULL,
iconst_0,
env,
static') :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <=
static &&
static' <=
static +
iconst_0 &&
0 <
o1langle_clinit_rangle_Return_60(
o1,
NULL,
iconst_0,
env,
static) -{1,1}>
main_FieldAccess_62(
o1,
NULL,
iconst_0,
env,
static) :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <
o1main_FieldAccess_62(
o1,
NULL,
iconst_0,
env,
static) -{1,1}>
main_InvokeMethod_64(
o1,
iconst_0,
env,
static') :|:
static' <=
static +
o1 &&
NULL =
0 &&
0 <=
o1 &&
iconst_0 =
0 &&
0 <=
static &&
0 <
o1main_InvokeMethod_64(
o1,
iconst_0,
env,
static) -{1,1}>
random_FieldAccess_66(
o1,
iconst_0,
env,
static) :|:
iconst_0 =
0 &&
0 <
o1random_FieldAccess_66(
o1,
iconst_0,
env,
static) -{1,1}>
random_FieldAccess_67(
o1,
iconst_0,
env,
static) :|:
0 <=
o1 &&
o1 <=
static &&
iconst_0 =
0 &&
0 <=
static &&
0 <
o1random_FieldAccess_67(
o1,
iconst_0,
env,
static) -{1,1}>
random_ArrayAccess_69(
o1,
iconst_0,
env,
static) :|:
-1 *
static <=
iconst_0 &&
iconst_0 =
0 &&
0 <=
static &&
iconst_0 <=
static &&
0 <
o1random_ArrayAccess_69(
a6,
iconst_0,
env,
static) -{0,0}>
random_ArrayAccess_70(
a6,
iconst_0,
i4,
env,
static) :|:
0 <=
i4 &&
iconst_0 =
0 &&
0 <
a6 &&
i4 <
a6obtained
random_ArrayAccess_70(a6, 0, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0
by chaining
random_ArrayAccess_70(a6, iconst_0, i5, env, static) -{0,0}> random_ArrayAccess_74(a6, iconst_0, i5, env, static) :|: iconst_0 = 0 && 0 < a6 && 0 <= i5 && 1 <= i5
random_ArrayAccess_74(a6, iconst_0, i5, env, static) -{1,1}> random_Store_78(o7, a6, iconst_0, i5, env, static) :|: o7 < a6 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_Store_78(o7, a6, iconst_0, i5, env, static) -{1,1}> random_FieldAccess_80(o7, a6, iconst_0, i5, env, static) :|: iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_FieldAccess_80(o7, a6, iconst_0, i5, env, static) -{1,1}> random_ConstantStackPush_85(iconst_0, o7, a6, i5, env, static) :|: -1 * static <= iconst_0 && iconst_0 = 0 && 0 <= o7 && 0 <= static && 0 < a6 && iconst_0 <= static && 1 <= i5
random_ConstantStackPush_85(iconst_0, o7, a6, i5, env, static) -{1,1}> random_IntArithmetic_88(iconst_0, iconst_1, o7, a6, i5, env, static) :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_IntArithmetic_88(iconst_0, iconst_1, o7, a6, i5, env, static) -{1,1}> random_FieldAccess_90(iconst_1, o7, a6, iconst_0, i5, env, static) :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_FieldAccess_90(iconst_1, o7, a6, iconst_0, i5, env, static) -{1,1}> random_Load_94(o7, a6, iconst_1, i5, env, static') :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 <= static && 0 < a6 && static' <= static + iconst_1 && 1 <= i5
random_Load_94(o7, a6, iconst_1, i5, env, static) -{1,1}> random_InvokeMethod_100(o7, a6, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 <= o7 && 0 < a6 && 1 <= i5
obtained
random_InvokeMethod_100(o12, a6, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' % 3 = i10'
by chaining
random_InvokeMethod_100(o12, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_102(o12, a6, iconst_1, i5, env, static) :|: 0 <= o12 && 0 < o12 && iconst_1 = 1 && 0 < a6 && 1 <= i5
random_InvokeMethod_102(o12, a6, iconst_1, i5, env, static) -{1,1}> random_Return_106(i8, a6, iconst_1, i5, env, static) :|: i8 <= o12 && 0 < o12 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
random_Return_106(i8, a6, iconst_1, i5, env, static) -{1,1}> main_Store_112(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_Store_112(a6, i8, iconst_1, i5, env, static) -{1,1}> main_Load_116(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_Load_116(a6, i8, iconst_1, i5, env, static) -{1,1}> main_ConstantStackPush_121(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_ConstantStackPush_121(a6, i8, iconst_1, i5, env, static) -{1,1}> main_IntArithmetic_127(a6, i8, iconst_3, iconst_1, i5, env, static) :|: iconst_3 = 3 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_IntArithmetic_127(a6, i8, iconst_3, iconst_1, i5, env, static) -{1,1}> main_EQ_131(a6, i10, i8, iconst_1, i5, env, static) :|: 0 <= i10 && i8 % iconst_3 = i10 && iconst_3 = 3 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && i10 <= 2 && 1 <= i5
obtained
main_EQ_131(a6, i13, i8, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' % 3 = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2
by chaining
main_EQ_131(a6, i13, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 1 <= i5 && 0 <= i13
main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) -{1,1}> main_Inc_140(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 0 < i13 && 1 <= i5
main_Inc_140(a6, i8, iconst_1, i5, env, static) -{1,1}> main_JMP_154(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && i8 + 1 = i16 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_JMP_154(a6, i16, iconst_1, i5, env, static) -{1,1}> main_Load_157(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_Load_157(a6, i16, iconst_1, i5, env, static) -{1,1}> main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) -{1,1}> main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) :|: iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) -{1,1}> main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && i16 % iconst_3 = i19 && 0 < a6 && 0 <= i19 && 1 <= i5
main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) -{0,0}> main_EQ_131(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && 1 <= i16 && iconst_1 = 1 && 0 <= i16 && 0 < a6 && 0 <= i19 && 1 <= i5
(20) Obligation:
IntTrs with 7 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 <= 2 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 + 0 && 0 <= o1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 < 2 && 0 <= static'3 && 0 < 1 && 0 <= 1
random_ArrayAccess_70(a6, iconst_0, iconst_0, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6
random_ArrayAccess_70(a6, 0, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(NULL, a6, iconst_1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
random_InvokeMethod_100(o12, a6, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' % 3 = i10'
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, iconst_0, i8, iconst_1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
main_EQ_131(a6, i13, i8, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' % 3 = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2
(21) MovedArithmeticToConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from lhss to constraints.
random_ArrayAccess_70(a6, 0, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0
was transformed to
random_ArrayAccess_70(a6, x, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0 && x = 0
main_EQ_131(a6, i13, i8, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' % 3 = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2
was transformed to
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' % 3 = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
random_InvokeMethod_100(o12, a6, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' % 3 = i10'
was transformed to
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' % 3 = i10' && x = 1
(22) Obligation:
IntTrs with 7 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
random_ArrayAccess_70(a6, x, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0 && x = 0
random_ArrayAccess_70(a6, iconst_0, iconst_0, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' % 3 = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' % 3 = i10' && x = 1
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, iconst_0, i8, iconst_1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(NULL, a6, iconst_1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 <= 2 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 + 0 && 0 <= o1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 < 2 && 0 <= static'3 && 0 < 1 && 0 <= 1
(23) LinearizedLhssProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Linearized lhss.
random_ArrayAccess_70(a6, iconst_0, iconst_0, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6
was transformed to
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
(24) Obligation:
IntTrs with 7 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' % 3 = i10' && x = 1
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
random_ArrayAccess_70(a6, x, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0 && x = 0
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' % 3 = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, iconst_0, i8, iconst_1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(NULL, a6, iconst_1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 <= 2 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 + 0 && 0 <= o1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 < 2 && 0 <= static'3 && 0 < 1 && 0 <= 1
(25) RemoveDivModProof (CONCRETE UPPER BOUND(ID) transformation)
Removed div and mod.
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' % 3 = i10' && x = 1
was transformed to
random_InvokeMethod_100'(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' - 3 * div < 3 && i8' - 3 * div + 3 > 0 && i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> random_InvokeMethod_100'(o12, a6, x, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' % 3 = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
was transformed to
main_EQ_131'(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: i16' - 3 * div < 3 && i16' - 3 * div + 3 > 0 && 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131'(a6, i13, i8, x, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
(26) Obligation:
IntTrs with 9 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
random_InvokeMethod_100'(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' - 3 * div < 3 && i8' - 3 * div + 3 > 0 && i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
main_EQ_131'(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: i16' - 3 * div < 3 && i16' - 3 * div + 3 > 0 && 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
random_ArrayAccess_70(a6, x, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0 && x = 0
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131'(a6, i13, i8, x, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> random_InvokeMethod_100'(o12, a6, x, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, iconst_0, i8, iconst_1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(NULL, a6, iconst_1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 <= 2 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 + 0 && 0 <= o1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 < 2 && 0 <= static'3 && 0 < 1 && 0 <= 1
(27) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from constraints to rhss.
main_EQ_131'(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: i16' - 3 * div < 3 && i16' - 3 * div + 3 > 0 && 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
was transformed to
main_EQ_131'(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i8 + 1 - 3 * div, i8 + 1, 1, i5, env, static) :|: i16' - 3 * div < 3 && i16' - 3 * div + 3 > 0 && 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
random_InvokeMethod_100'(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i10', i8', 1, i5, env, static) :|: i8' - 3 * div < 3 && i8' - 3 * div + 3 > 0 && i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
was transformed to
random_InvokeMethod_100'(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i8' - 3 * div, i8', 1, i5, env, static) :|: i8' - 3 * div < 3 && i8' - 3 * div + 3 > 0 && i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131'(a6, i13, i8, x, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
was transformed to
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131'(a6, i13, i8, 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> random_InvokeMethod_100'(o12, a6, x, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
was transformed to
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> random_InvokeMethod_100'(o12, a6, 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, iconst_0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
was transformed to
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, 0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, iconst_0, i8, iconst_1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
was transformed to
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, 0, i8, 1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(NULL, a6, iconst_1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
was transformed to
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(0, a6, 1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
(28) Obligation:
IntTrs with 9 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_EQ_131'(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i8 + 1 - 3 * div, i8 + 1, 1, i5, env, static) :|: i16' - 3 * div < 3 && i16' - 3 * div + 3 > 0 && 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
random_InvokeMethod_100'(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i8' - 3 * div, i8', 1, i5, env, static) :|: i8' - 3 * div < 3 && i8' - 3 * div + 3 > 0 && i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
random_ArrayAccess_70(a6, x, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0 && x = 0
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131'(a6, i13, i8, 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> random_InvokeMethod_100'(o12, a6, 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, 0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, 0, i8, 1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(0, a6, 1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 <= 2 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 + 0 && 0 <= o1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 < 2 && 0 <= static'3 && 0 < 1 && 0 <= 1
(29) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Simplified expressions.
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> random_InvokeMethod_100'(o12, a6, 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
was transformed to
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> random_InvokeMethod_100'(o12, a6, 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= i10' && i8' + -3 * div = i10' && x = 1
random_InvokeMethod_100'(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i8' - 3 * div, i8', 1, i5, env, static) :|: i8' - 3 * div < 3 && i8' - 3 * div + 3 > 0 && i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= o12 && 0 <= i10' && i8' - 3 * div = i10' && x = 1
was transformed to
random_InvokeMethod_100'(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i8' + -3 * div, i8', 1, i5, env, static) :|: i8' + -3 * div < 3 && 0 < i8' + -3 * div + 3 && i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= i10' && i8' + -3 * div = i10' && x = 1
main_EQ_131'(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i8 + 1 - 3 * div, i8 + 1, 1, i5, env, static) :|: i16' - 3 * div < 3 && i16' - 3 * div + 3 > 0 && 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
was transformed to
main_EQ_131'(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i8 + 1 + -3 * div, i8 + 1, 1, i5, env, static) :|: i16' + -3 * div < 3 && 0 < i16' + -3 * div + 3 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' + -3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 <= 2 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 + 0 && 0 <= o1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 < 2 && 0 <= static'3 && 0 < 1 && 0 <= 1
was transformed to
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 <= static'3
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131'(a6, i13, i8, 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' - 3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
was transformed to
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131'(a6, i13, i8, 1, i5, env, static) :|: 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' + -3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
(30) Obligation:
IntTrs with 9 rules
Start term: main_Load_2(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
random_InvokeMethod_100(NULL, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_103(0, a6, 1, i5, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 1 <= i5
random_ArrayAccess_70(a6, iconst_0, x, env, static) -{0,0}> random_ArrayAccess_72(a6, 0, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && x = iconst_0
main_Load_2(o1, env, static) -{23,23}> random_ArrayAccess_70(o1, 0, i4', env, static'3) :|: static'1 <= static''' + 1 && i4' < o1 && 0 < o1 && 0 <= static'2 && 0 <= i4' && static'2 <= static'1 && o1 <= static'3 && static''' <= static + 2 && 0 <= static'1 && static'3 <= static'2 + o1 && 0 <= static && -1 * static'3 <= 0 && 0 <= static''' && 0 <= static'3
random_InvokeMethod_100(o12, a6, x, i5, env, static) -{6,6}> random_InvokeMethod_100'(o12, a6, 1, i5, env, static) :|: i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= i10' && i8' + -3 * div = i10' && x = 1
random_ArrayAccess_70(a6, x, i5, env, static) -{7,7}> random_InvokeMethod_100(o7', a6, 1, i5, env, static'4) :|: 0 <= i5 && 1 <= i5 && 0 <= static && 0 < a6 && 0 <= o7' && static'4 <= static + 1 && o7' < a6 && -1 * static <= 0 && x = 0
random_InvokeMethod_100'(o12, a6, x, i5, env, static) -{6,6}> main_EQ_131(a6, i8' + -3 * div, i8', 1, i5, env, static) :|: i8' + -3 * div < 3 && 0 < i8' + -3 * div + 3 && i8' <= o12 && 1 <= i5 && 0 < o12 && i10' <= 2 && 0 <= i8' && 0 < a6 && 0 <= i10' && i8' + -3 * div = i10' && x = 1
main_EQ_131'(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131(a6, i8 + 1 + -3 * div, i8 + 1, 1, i5, env, static) :|: i16' + -3 * div < 3 && 0 < i16' + -3 * div + 3 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' + -3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
main_EQ_131(a6, iconst_0, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_134(a6, 0, i8, 1, i5, env, static) :|: 0 <= iconst_0 && iconst_0 <= 2 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 <= i8 && 1 <= i5
main_EQ_131(a6, i13, i8, x, i5, env, static) -{6,6}> main_EQ_131'(a6, i13, i8, 1, i5, env, static) :|: 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && i16' + -3 * div = i19' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && x = 1
(31) koat Proof (EQUIVALENT transformation)
YES(?, 102)
Initial complexity problem:
1: T:
(Comp: ?, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4, ar_5, arityPad)) [ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
(Comp: ?, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad, arityPad, arityPad)) [ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: ?, Cost: 23) main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3, arityPad, arityPad)) [ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
(Comp: ?, Cost: 6) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6) -> Com_1(random_InvokeMethod_100'(ar_0, ar_1, 1, ar_3, ar_4, ar_5, arityPad)) [ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
(Comp: ?, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3, static'4, arityPad)) [ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: ?, Cost: 6) random_InvokeMethod_100'(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6) -> Com_1(main_EQ_131(ar_1, i8' - 3*div, i8', 1, ar_3, ar_4, ar_5)) [ i8' - 3*div < 3 /\ 0 < i8' - 3*div + 3 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
(Comp: ?, Cost: 6) main_EQ_131'(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div + 1, ar_2 + 1, 1, ar_4, ar_5, ar_6)) [ i16' - 3*div < 3 /\ 0 < i16' - 3*div + 3 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: ?, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4, ar_5, ar_6)) [ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: ?, Cost: 6) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6) -> Com_1(main_EQ_131'(ar_0, ar_1, ar_2, 1, ar_4, ar_5, ar_6)) [ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6) -> Com_1(main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4, ar_5, ar_6)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
Slicing away variables that do not contribute to conditions from problem 1 leaves variables [ar_0, ar_1, ar_2, ar_3, ar_4].
We thus obtain the following problem:
2: T:
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]
(Comp: ?, Cost: 6) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131'(ar_0, ar_1, ar_2, 1, ar_4)) [ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: ?, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: ?, Cost: 6) main_EQ_131'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div + 1, ar_2 + 1, 1, ar_4)) [ i16' - 3*div < 3 /\ 0 < i16' - 3*div + 3 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: ?, Cost: 6) random_InvokeMethod_100'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8' - 3*div, i8', 1, ar_3)) [ i8' - 3*div < 3 /\ 0 < i8' - 3*div + 3 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
(Comp: ?, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: ?, Cost: 6) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100'(ar_0, ar_1, 1, ar_3, ar_4)) [ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
(Comp: ?, Cost: 23) main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
(Comp: ?, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: ?, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
start location: koat_start
leaf cost: 0
Repeatedly propagating knowledge in problem 2 produces the following problem:
3: T:
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]
(Comp: ?, Cost: 6) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131'(ar_0, ar_1, ar_2, 1, ar_4)) [ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: ?, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: ?, Cost: 6) main_EQ_131'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div + 1, ar_2 + 1, 1, ar_4)) [ i16' - 3*div < 3 /\ 0 < i16' - 3*div + 3 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: 1, Cost: 6) random_InvokeMethod_100'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8' - 3*div, i8', 1, ar_3)) [ i8' - 3*div < 3 /\ 0 < i8' - 3*div + 3 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 6) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100'(ar_0, ar_1, 1, ar_3, ar_4)) [ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
(Comp: 1, Cost: 23) main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
start location: koat_start
leaf cost: 0
A polynomial rank function with
Pol(koat_start) = 1
Pol(main_Load_2) = 1
Pol(main_EQ_131) = 1
Pol(main_EQ_131') = 1
Pol(main_EQ_134) = 0
Pol(random_InvokeMethod_100') = 1
Pol(random_ArrayAccess_70) = 1
Pol(random_InvokeMethod_100) = 1
Pol(random_ArrayAccess_72) = 0
Pol(random_InvokeMethod_103) = 0
orients all transitions weakly and the transition
main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
strictly and produces the following problem:
4: T:
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]
(Comp: ?, Cost: 6) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131'(ar_0, ar_1, ar_2, 1, ar_4)) [ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: 1, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: ?, Cost: 6) main_EQ_131'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div + 1, ar_2 + 1, 1, ar_4)) [ i16' - 3*div < 3 /\ 0 < i16' - 3*div + 3 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: 1, Cost: 6) random_InvokeMethod_100'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8' - 3*div, i8', 1, ar_3)) [ i8' - 3*div < 3 /\ 0 < i8' - 3*div + 3 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 6) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100'(ar_0, ar_1, 1, ar_3, ar_4)) [ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
(Comp: 1, Cost: 23) main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
start location: koat_start
leaf cost: 0
Applied AI with 'oct' on problem 4 to obtain the following invariants:
For symbol main_EQ_131: X_1 - X_5 - 1 >= 0 /\ X_5 - 1 >= 0 /\ X_4 + X_5 - 2 >= 0 /\ -X_4 + X_5 >= 0 /\ X_3 + X_5 - 1 >= 0 /\ X_1 + X_5 - 3 >= 0 /\ -X_4 + 1 >= 0 /\ X_3 - X_4 + 1 >= 0 /\ X_1 - X_4 - 1 >= 0 /\ X_4 - 1 >= 0 /\ X_3 + X_4 - 1 >= 0 /\ X_1 + X_4 - 3 >= 0 /\ X_3 >= 0 /\ X_1 + X_3 - 2 >= 0 /\ X_1 - 2 >= 0
For symbol main_EQ_131': X_1 - X_5 - 1 >= 0 /\ X_5 - 1 >= 0 /\ X_4 + X_5 - 2 >= 0 /\ -X_4 + X_5 >= 0 /\ X_3 + X_5 - 1 >= 0 /\ X_2 + X_5 - 2 >= 0 /\ -X_2 + X_5 + 1 >= 0 /\ X_1 + X_5 - 3 >= 0 /\ -X_4 + 1 >= 0 /\ X_3 - X_4 + 1 >= 0 /\ X_2 - X_4 >= 0 /\ -X_2 - X_4 + 3 >= 0 /\ X_1 - X_4 - 1 >= 0 /\ X_4 - 1 >= 0 /\ X_3 + X_4 - 1 >= 0 /\ X_2 + X_4 - 2 >= 0 /\ -X_2 + X_4 + 1 >= 0 /\ X_1 + X_4 - 3 >= 0 /\ X_3 >= 0 /\ X_2 + X_3 - 1 >= 0 /\ -X_2 + X_3 + 2 >= 0 /\ X_1 + X_3 - 2 >= 0 /\ -X_2 + 2 >= 0 /\ X_1 - X_2 >= 0 /\ X_2 - 1 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ X_1 - 2 >= 0
For symbol random_ArrayAccess_70: X_5 - 1 >= 0 /\ X_3 + X_5 - 1 >= 0 /\ -X_3 + X_5 - 1 >= 0 /\ X_2 + X_5 - 1 >= 0 /\ -X_2 + X_5 - 1 >= 0 /\ X_1 + X_5 - 2 >= 0 /\ -X_1 + X_5 >= 0 /\ X_1 - X_3 - 1 >= 0 /\ X_3 >= 0 /\ X_2 + X_3 >= 0 /\ -X_2 + X_3 >= 0 /\ X_1 + X_3 - 1 >= 0 /\ -X_2 >= 0 /\ X_1 - X_2 - 1 >= 0 /\ X_2 >= 0 /\ X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0
For symbol random_InvokeMethod_100: X_2 - X_4 - 1 >= 0 /\ X_4 - 1 >= 0 /\ X_3 + X_4 - 2 >= 0 /\ -X_3 + X_4 >= 0 /\ X_2 + X_4 - 3 >= 0 /\ X_1 + X_4 - 1 >= 0 /\ -X_3 + 1 >= 0 /\ X_2 - X_3 - 1 >= 0 /\ X_1 - X_3 + 1 >= 0 /\ X_3 - 1 >= 0 /\ X_2 + X_3 - 3 >= 0 /\ X_1 + X_3 - 1 >= 0 /\ X_2 - 2 >= 0 /\ X_1 + X_2 - 2 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 >= 0
For symbol random_InvokeMethod_100': X_2 - X_4 - 1 >= 0 /\ X_4 - 1 >= 0 /\ X_3 + X_4 - 2 >= 0 /\ -X_3 + X_4 >= 0 /\ X_2 + X_4 - 3 >= 0 /\ X_1 + X_4 - 2 >= 0 /\ -X_3 + 1 >= 0 /\ X_2 - X_3 - 1 >= 0 /\ X_1 - X_3 >= 0 /\ X_3 - 1 >= 0 /\ X_2 + X_3 - 3 >= 0 /\ X_1 + X_3 - 2 >= 0 /\ X_2 - 2 >= 0 /\ X_1 + X_2 - 3 >= 0 /\ -X_1 + X_2 - 1 >= 0 /\ X_1 - 1 >= 0
This yielded the following problem:
5: T:
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 23) main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
(Comp: 1, Cost: 6) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100'(ar_0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 6) random_InvokeMethod_100'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8' - 3*div, i8', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 2 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ i8' - 3*div < 3 /\ 0 < i8' - 3*div + 3 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
(Comp: ?, Cost: 6) main_EQ_131'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_1 - ar_3 >= 0 /\ -ar_1 - ar_3 + 3 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ -ar_1 + ar_3 + 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ ar_0 - 2 >= 0 /\ i16' - 3*div < 3 /\ 0 < i16' - 3*div + 3 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: 1, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: ?, Cost: 6) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131'(ar_0, ar_1, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
By chaining the transition random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100'(ar_0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ] with all transitions in problem 5, the following new transition is obtained:
random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div', i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 ]
We thus obtain the following problem:
6: T:
(Comp: 1, Cost: 12) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div', i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 ]
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 23) main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 6) random_InvokeMethod_100'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8' - 3*div, i8', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 2 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ i8' - 3*div < 3 /\ 0 < i8' - 3*div + 3 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
(Comp: ?, Cost: 6) main_EQ_131'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_1 - ar_3 >= 0 /\ -ar_1 - ar_3 + 3 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ -ar_1 + ar_3 + 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ ar_0 - 2 >= 0 /\ i16' - 3*div < 3 /\ 0 < i16' - 3*div + 3 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: 1, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: ?, Cost: 6) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131'(ar_0, ar_1, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
Testing for reachability in the complexity graph removes the following transition from problem 6:
random_InvokeMethod_100'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8' - 3*div, i8', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 2 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ i8' - 3*div < 3 /\ 0 < i8' - 3*div + 3 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 ]
We thus obtain the following problem:
7: T:
(Comp: ?, Cost: 6) main_EQ_131'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_1 - ar_3 >= 0 /\ -ar_1 - ar_3 + 3 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ -ar_1 + ar_3 + 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ ar_0 - 2 >= 0 /\ i16' - 3*div < 3 /\ 0 < i16' - 3*div + 3 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: ?, Cost: 6) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131'(ar_0, ar_1, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: 1, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: 1, Cost: 12) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div', i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 ]
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 23) main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
By chaining the transition main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131'(ar_0, ar_1, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ] with all transitions in problem 7, the following new transition is obtained:
main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div' + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ 0 >= 0 /\ ar_1 - 1 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i16'' - 3*div' < 3 /\ 0 < i16'' - 3*div' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ ar_2 + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div' = i19'' /\ 1 <= i16'' /\ 1 = 1 ]
We thus obtain the following problem:
8: T:
(Comp: ?, Cost: 12) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div' + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ 0 >= 0 /\ ar_1 - 1 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i16'' - 3*div' < 3 /\ 0 < i16'' - 3*div' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ ar_2 + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div' = i19'' /\ 1 <= i16'' /\ 1 = 1 ]
(Comp: ?, Cost: 6) main_EQ_131'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_1 - ar_3 >= 0 /\ -ar_1 - ar_3 + 3 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ -ar_1 + ar_3 + 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ ar_0 - 2 >= 0 /\ i16' - 3*div < 3 /\ 0 < i16' - 3*div + 3 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
(Comp: 1, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: 1, Cost: 12) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div', i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 ]
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 23) main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
Testing for reachability in the complexity graph removes the following transition from problem 8:
main_EQ_131'(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_1 - ar_3 >= 0 /\ -ar_1 - ar_3 + 3 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_1 + ar_3 - 2 >= 0 /\ -ar_1 + ar_3 + 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_1 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ ar_0 - 2 >= 0 /\ i16' - 3*div < 3 /\ 0 < i16' - 3*div + 3 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 ]
We thus obtain the following problem:
9: T:
(Comp: ?, Cost: 12) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div' + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ 0 >= 0 /\ ar_1 - 1 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i16'' - 3*div' < 3 /\ 0 < i16'' - 3*div' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ ar_2 + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div' = i19'' /\ 1 <= i16'' /\ 1 = 1 ]
(Comp: 1, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: 1, Cost: 12) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div', i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 ]
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 23) main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
By chaining the transition koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4)) [ 0 <= 0 ] with all transitions in problem 9, the following new transition is obtained:
koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ 0 <= 0 /\ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
We thus obtain the following problem:
10: T:
(Comp: 1, Cost: 23) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ 0 <= 0 /\ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
(Comp: ?, Cost: 12) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div' + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ 0 >= 0 /\ ar_1 - 1 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i16'' - 3*div' < 3 /\ 0 < i16'' - 3*div' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ ar_2 + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div' = i19'' /\ 1 <= i16'' /\ 1 = 1 ]
(Comp: 1, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: 1, Cost: 12) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div', i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 ]
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 23) main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
start location: koat_start
leaf cost: 0
Testing for reachability in the complexity graph removes the following transition from problem 10:
main_Load_2(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
We thus obtain the following problem:
11: T:
(Comp: ?, Cost: 12) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div' + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ 0 >= 0 /\ ar_1 - 1 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i16'' - 3*div' < 3 /\ 0 < i16'' - 3*div' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ ar_2 + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div' = i19'' /\ 1 <= i16'' /\ 1 = 1 ]
(Comp: 1, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: 1, Cost: 12) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div', i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 ]
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 23) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ 0 <= 0 /\ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
start location: koat_start
leaf cost: 0
By chaining the transition random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div', i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 ] with all transitions in problem 11, the following new transitions are obtained:
random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div'' + 1, i8'' + 1, 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ i19' <= 2 /\ 0 <= i19' /\ i8'' + 1 = i16' /\ 0 < i8'' - 3*div' /\ 0 <= i16' /\ i16' - 3*div''' = i19' /\ 1 <= i16' /\ 1 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' + ar_3 - 2 >= 0 /\ -i8'' + 3*div' + ar_3 + 1 >= 0 /\ i8'' - 3*div' - 1 >= 0 /\ -i8'' + 3*div' + 2 >= 0 /\ 2*i8'' - 3*div' - 1 >= 0 /\ 3*div' + 2 >= 0 /\ ar_1 - i8'' + 3*div' >= 0 /\ ar_1 + i8'' - 3*div' - 3 >= 0 /\ i16'' - 3*div'' < 3 /\ 0 < i16'' - 3*div'' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ i8'' + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div'' = i19'' /\ 1 <= i16'' ]
random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_1, 0, i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ 0 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' = 0 ]
We thus obtain the following problem:
12: T:
(Comp: 1, Cost: 24) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div'' + 1, i8'' + 1, 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ i19' <= 2 /\ 0 <= i19' /\ i8'' + 1 = i16' /\ 0 < i8'' - 3*div' /\ 0 <= i16' /\ i16' - 3*div''' = i19' /\ 1 <= i16' /\ 1 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' + ar_3 - 2 >= 0 /\ -i8'' + 3*div' + ar_3 + 1 >= 0 /\ i8'' - 3*div' - 1 >= 0 /\ -i8'' + 3*div' + 2 >= 0 /\ 2*i8'' - 3*div' - 1 >= 0 /\ 3*div' + 2 >= 0 /\ ar_1 - i8'' + 3*div' >= 0 /\ ar_1 + i8'' - 3*div' - 3 >= 0 /\ i16'' - 3*div'' < 3 /\ 0 < i16'' - 3*div'' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ i8'' + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div'' = i19'' /\ 1 <= i16'' ]
(Comp: 1, Cost: 12) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_1, 0, i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ 0 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' = 0 ]
(Comp: ?, Cost: 12) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div' + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ 0 >= 0 /\ ar_1 - 1 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i16'' - 3*div' < 3 /\ 0 < i16'' - 3*div' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ ar_2 + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div' = i19'' /\ 1 <= i16'' /\ 1 = 1 ]
(Comp: 1, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 23) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ 0 <= 0 /\ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
start location: koat_start
leaf cost: 0
By chaining the transition random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div'' + 1, i8'' + 1, 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ i19' <= 2 /\ 0 <= i19' /\ i8'' + 1 = i16' /\ 0 < i8'' - 3*div' /\ 0 <= i16' /\ i16' - 3*div''' = i19' /\ 1 <= i16' /\ 1 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' + ar_3 - 2 >= 0 /\ -i8'' + 3*div' + ar_3 + 1 >= 0 /\ i8'' - 3*div' - 1 >= 0 /\ -i8'' + 3*div' + 2 >= 0 /\ 2*i8'' - 3*div' - 1 >= 0 /\ 3*div' + 2 >= 0 /\ ar_1 - i8'' + 3*div' >= 0 /\ ar_1 + i8'' - 3*div' - 3 >= 0 /\ i16'' - 3*div'' < 3 /\ 0 < i16'' - 3*div'' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ i8'' + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div'' = i19'' /\ 1 <= i16'' ] with all transitions in problem 12, the following new transitions are obtained:
random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div'''' + 2, i8'' + 2, 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ i19' <= 2 /\ 0 <= i19' /\ i8'' + 1 = i16' /\ 0 < i8'' - 3*div' /\ 0 <= i16' /\ i16' - 3*div''' = i19' /\ 1 <= i16' /\ 1 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' + ar_3 - 2 >= 0 /\ -i8'' + 3*div' + ar_3 + 1 >= 0 /\ i8'' - 3*div' - 1 >= 0 /\ -i8'' + 3*div' + 2 >= 0 /\ 2*i8'' - 3*div' - 1 >= 0 /\ 3*div' + 2 >= 0 /\ ar_1 - i8'' + 3*div' >= 0 /\ ar_1 + i8'' - 3*div' - 3 >= 0 /\ i16'' - 3*div'' < 3 /\ 0 < i16'' - 3*div'' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ i8'' + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div'' = i19'' /\ 1 <= i16'' /\ i8'' + ar_3 >= 0 /\ i8'' + 1 >= 0 /\ ar_1 + i8'' - 1 >= 0 /\ i19'''' <= 2 /\ 0 <= i19'''' /\ i8'' + 2 = i16'''' /\ 0 < i8'' - 3*div'' + 1 /\ 0 <= i16'''' /\ i16'''' - 3*div''''' = i19'''' /\ 1 <= i16'''' /\ 1 <= i8'' - 3*div'' + 1 /\ 0 <= i8'' + 1 /\ i8'' - 3*div'' + 1 <= 2 /\ i8'' - 3*div'' + ar_3 - 1 >= 0 /\ -i8'' + 3*div'' + ar_3 >= 0 /\ i8'' - 3*div'' >= 0 /\ -i8'' + 3*div'' + 1 >= 0 /\ 2*i8'' - 3*div'' + 1 >= 0 /\ 3*div'' + 2 >= 0 /\ ar_1 - i8'' + 3*div'' - 1 >= 0 /\ ar_1 + i8'' - 3*div'' - 2 >= 0 /\ i16''' - 3*div'''' < 3 /\ 0 < i16''' - 3*div'''' + 3 /\ i19''' <= 2 /\ 0 <= i19''' /\ i8'' + 2 = i16''' /\ 0 <= i16''' /\ i16''' - 3*div'''' = i19''' /\ 1 <= i16''' ]
random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_1, 0, i8'' + 1, 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ i19' <= 2 /\ 0 <= i19' /\ i8'' + 1 = i16' /\ 0 < i8'' - 3*div' /\ 0 <= i16' /\ i16' - 3*div''' = i19' /\ 1 <= i16' /\ 1 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' + ar_3 - 2 >= 0 /\ -i8'' + 3*div' + ar_3 + 1 >= 0 /\ i8'' - 3*div' - 1 >= 0 /\ -i8'' + 3*div' + 2 >= 0 /\ 2*i8'' - 3*div' - 1 >= 0 /\ 3*div' + 2 >= 0 /\ ar_1 - i8'' + 3*div' >= 0 /\ ar_1 + i8'' - 3*div' - 3 >= 0 /\ i16'' - 3*div'' < 3 /\ 0 < i16'' - 3*div'' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ i8'' + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div'' = i19'' /\ 1 <= i16'' /\ i8'' + ar_3 >= 0 /\ i8'' + 1 >= 0 /\ ar_1 + i8'' - 1 >= 0 /\ 0 <= i8'' - 3*div'' + 1 /\ i8'' - 3*div'' + 1 <= 2 /\ i8'' - 3*div'' + 1 = 0 /\ 0 <= i8'' + 1 ]
We thus obtain the following problem:
13: T:
(Comp: 1, Cost: 36) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div'''' + 2, i8'' + 2, 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ i19' <= 2 /\ 0 <= i19' /\ i8'' + 1 = i16' /\ 0 < i8'' - 3*div' /\ 0 <= i16' /\ i16' - 3*div''' = i19' /\ 1 <= i16' /\ 1 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' + ar_3 - 2 >= 0 /\ -i8'' + 3*div' + ar_3 + 1 >= 0 /\ i8'' - 3*div' - 1 >= 0 /\ -i8'' + 3*div' + 2 >= 0 /\ 2*i8'' - 3*div' - 1 >= 0 /\ 3*div' + 2 >= 0 /\ ar_1 - i8'' + 3*div' >= 0 /\ ar_1 + i8'' - 3*div' - 3 >= 0 /\ i16'' - 3*div'' < 3 /\ 0 < i16'' - 3*div'' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ i8'' + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div'' = i19'' /\ 1 <= i16'' /\ i8'' + ar_3 >= 0 /\ i8'' + 1 >= 0 /\ ar_1 + i8'' - 1 >= 0 /\ i19'''' <= 2 /\ 0 <= i19'''' /\ i8'' + 2 = i16'''' /\ 0 < i8'' - 3*div'' + 1 /\ 0 <= i16'''' /\ i16'''' - 3*div''''' = i19'''' /\ 1 <= i16'''' /\ 1 <= i8'' - 3*div'' + 1 /\ 0 <= i8'' + 1 /\ i8'' - 3*div'' + 1 <= 2 /\ i8'' - 3*div'' + ar_3 - 1 >= 0 /\ -i8'' + 3*div'' + ar_3 >= 0 /\ i8'' - 3*div'' >= 0 /\ -i8'' + 3*div'' + 1 >= 0 /\ 2*i8'' - 3*div'' + 1 >= 0 /\ 3*div'' + 2 >= 0 /\ ar_1 - i8'' + 3*div'' - 1 >= 0 /\ ar_1 + i8'' - 3*div'' - 2 >= 0 /\ i16''' - 3*div'''' < 3 /\ 0 < i16''' - 3*div'''' + 3 /\ i19''' <= 2 /\ 0 <= i19''' /\ i8'' + 2 = i16''' /\ 0 <= i16''' /\ i16''' - 3*div'''' = i19''' /\ 1 <= i16''' ]
(Comp: 1, Cost: 24) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_1, 0, i8'' + 1, 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ i19' <= 2 /\ 0 <= i19' /\ i8'' + 1 = i16' /\ 0 < i8'' - 3*div' /\ 0 <= i16' /\ i16' - 3*div''' = i19' /\ 1 <= i16' /\ 1 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' + ar_3 - 2 >= 0 /\ -i8'' + 3*div' + ar_3 + 1 >= 0 /\ i8'' - 3*div' - 1 >= 0 /\ -i8'' + 3*div' + 2 >= 0 /\ 2*i8'' - 3*div' - 1 >= 0 /\ 3*div' + 2 >= 0 /\ ar_1 - i8'' + 3*div' >= 0 /\ ar_1 + i8'' - 3*div' - 3 >= 0 /\ i16'' - 3*div'' < 3 /\ 0 < i16'' - 3*div'' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ i8'' + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div'' = i19'' /\ 1 <= i16'' /\ i8'' + ar_3 >= 0 /\ i8'' + 1 >= 0 /\ ar_1 + i8'' - 1 >= 0 /\ 0 <= i8'' - 3*div'' + 1 /\ i8'' - 3*div'' + 1 <= 2 /\ i8'' - 3*div'' + 1 = 0 /\ 0 <= i8'' + 1 ]
(Comp: 1, Cost: 12) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_1, 0, i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ 0 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' = 0 ]
(Comp: ?, Cost: 12) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div' + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ 0 >= 0 /\ ar_1 - 1 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i16'' - 3*div' < 3 /\ 0 < i16'' - 3*div' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ ar_2 + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div' = i19'' /\ 1 <= i16'' /\ 1 = 1 ]
(Comp: 1, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 23) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ 0 <= 0 /\ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
start location: koat_start
leaf cost: 0
Testing for reachability in the complexity graph removes the following transition from problem 13:
main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_0, ar_2 - 3*div' + 1, ar_2 + 1, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 1 <= ar_4 /\ i19' <= 2 /\ 0 <= i19' /\ ar_2 + 1 = i16' /\ 0 < ar_0 /\ 0 < ar_1 /\ 0 <= i16' /\ i16' - 3*div = i19' /\ 1 <= i16' /\ 1 <= ar_1 /\ 0 <= ar_2 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 + ar_4 - 2 >= 0 /\ -ar_1 + ar_4 + 1 >= 0 /\ 0 >= 0 /\ ar_1 - 1 >= 0 /\ -ar_1 + 2 >= 0 /\ ar_1 + ar_2 - 1 >= 0 /\ -ar_1 + ar_2 + 2 >= 0 /\ ar_0 - ar_1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i16'' - 3*div' < 3 /\ 0 < i16'' - 3*div' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ ar_2 + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div' = i19'' /\ 1 <= i16'' /\ 1 = 1 ]
We thus obtain the following problem:
14: T:
(Comp: 1, Cost: 0) main_EQ_131(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_0, 0, ar_2, 1, ar_4)) [ ar_0 - ar_4 - 1 >= 0 /\ ar_4 - 1 >= 0 /\ ar_3 + ar_4 - 2 >= 0 /\ -ar_3 + ar_4 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 3 >= 0 /\ -ar_3 + 1 >= 0 /\ ar_2 - ar_3 + 1 >= 0 /\ ar_0 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 1 >= 0 /\ ar_0 + ar_3 - 3 >= 0 /\ ar_2 >= 0 /\ ar_0 + ar_2 - 2 >= 0 /\ ar_0 - 2 >= 0 /\ 0 <= ar_1 /\ ar_1 <= 2 /\ ar_3 = 1 /\ ar_1 = 0 /\ 0 < ar_0 /\ 0 <= ar_2 /\ 1 <= ar_4 ]
(Comp: 1, Cost: 24) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_1, 0, i8'' + 1, 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ i19' <= 2 /\ 0 <= i19' /\ i8'' + 1 = i16' /\ 0 < i8'' - 3*div' /\ 0 <= i16' /\ i16' - 3*div''' = i19' /\ 1 <= i16' /\ 1 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' + ar_3 - 2 >= 0 /\ -i8'' + 3*div' + ar_3 + 1 >= 0 /\ i8'' - 3*div' - 1 >= 0 /\ -i8'' + 3*div' + 2 >= 0 /\ 2*i8'' - 3*div' - 1 >= 0 /\ 3*div' + 2 >= 0 /\ ar_1 - i8'' + 3*div' >= 0 /\ ar_1 + i8'' - 3*div' - 3 >= 0 /\ i16'' - 3*div'' < 3 /\ 0 < i16'' - 3*div'' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ i8'' + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div'' = i19'' /\ 1 <= i16'' /\ i8'' + ar_3 >= 0 /\ i8'' + 1 >= 0 /\ ar_1 + i8'' - 1 >= 0 /\ 0 <= i8'' - 3*div'' + 1 /\ i8'' - 3*div'' + 1 <= 2 /\ i8'' - 3*div'' + 1 = 0 /\ 0 <= i8'' + 1 ]
(Comp: 1, Cost: 36) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_131(ar_1, i8'' - 3*div'''' + 2, i8'' + 2, 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ i19' <= 2 /\ 0 <= i19' /\ i8'' + 1 = i16' /\ 0 < i8'' - 3*div' /\ 0 <= i16' /\ i16' - 3*div''' = i19' /\ 1 <= i16' /\ 1 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' + ar_3 - 2 >= 0 /\ -i8'' + 3*div' + ar_3 + 1 >= 0 /\ i8'' - 3*div' - 1 >= 0 /\ -i8'' + 3*div' + 2 >= 0 /\ 2*i8'' - 3*div' - 1 >= 0 /\ 3*div' + 2 >= 0 /\ ar_1 - i8'' + 3*div' >= 0 /\ ar_1 + i8'' - 3*div' - 3 >= 0 /\ i16'' - 3*div'' < 3 /\ 0 < i16'' - 3*div'' + 3 /\ i19'' <= 2 /\ 0 <= i19'' /\ i8'' + 1 = i16'' /\ 0 <= i16'' /\ i16'' - 3*div'' = i19'' /\ 1 <= i16'' /\ i8'' + ar_3 >= 0 /\ i8'' + 1 >= 0 /\ ar_1 + i8'' - 1 >= 0 /\ i19'''' <= 2 /\ 0 <= i19'''' /\ i8'' + 2 = i16'''' /\ 0 < i8'' - 3*div'' + 1 /\ 0 <= i16'''' /\ i16'''' - 3*div''''' = i19'''' /\ 1 <= i16'''' /\ 1 <= i8'' - 3*div'' + 1 /\ 0 <= i8'' + 1 /\ i8'' - 3*div'' + 1 <= 2 /\ i8'' - 3*div'' + ar_3 - 1 >= 0 /\ -i8'' + 3*div'' + ar_3 >= 0 /\ i8'' - 3*div'' >= 0 /\ -i8'' + 3*div'' + 1 >= 0 /\ 2*i8'' - 3*div'' + 1 >= 0 /\ 3*div'' + 2 >= 0 /\ ar_1 - i8'' + 3*div'' - 1 >= 0 /\ ar_1 + i8'' - 3*div'' - 2 >= 0 /\ i16''' - 3*div'''' < 3 /\ 0 < i16''' - 3*div'''' + 3 /\ i19''' <= 2 /\ 0 <= i19''' /\ i8'' + 2 = i16''' /\ 0 <= i16''' /\ i16''' - 3*div'''' = i19''' /\ 1 <= i16''' ]
(Comp: 1, Cost: 12) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(main_EQ_134(ar_1, 0, i8'', 1, ar_3)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ i8' <= ar_0 /\ 1 <= ar_3 /\ 0 < ar_0 /\ i10' <= 2 /\ 0 <= i8' /\ 0 < ar_1 /\ 0 <= i10' /\ i8' - 3*div = i10' /\ ar_2 = 1 /\ ar_0 + ar_3 - 2 >= 0 /\ 0 >= 0 /\ ar_0 - 1 >= 0 /\ ar_0 + ar_1 - 3 >= 0 /\ i8'' - 3*div' < 3 /\ 0 < i8'' - 3*div' + 3 /\ i8'' <= ar_0 /\ i10'' <= 2 /\ 0 <= i8'' /\ 0 <= i10'' /\ i8'' - 3*div' = i10'' /\ 1 = 1 /\ i8'' + ar_3 - 1 >= 0 /\ i8'' >= 0 /\ ar_1 + i8'' - 2 >= 0 /\ 0 <= i8'' - 3*div' /\ i8'' - 3*div' <= 2 /\ i8'' - 3*div' = 0 ]
(Comp: 1, Cost: 0) random_InvokeMethod_100(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_103(0, ar_1, 1, ar_3, ar_4)) [ ar_1 - ar_3 - 1 >= 0 /\ ar_3 - 1 >= 0 /\ ar_2 + ar_3 - 2 >= 0 /\ -ar_2 + ar_3 >= 0 /\ ar_1 + ar_3 - 3 >= 0 /\ ar_0 + ar_3 - 1 >= 0 /\ -ar_2 + 1 >= 0 /\ ar_1 - ar_2 - 1 >= 0 /\ ar_0 - ar_2 + 1 >= 0 /\ ar_2 - 1 >= 0 /\ ar_1 + ar_2 - 3 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ ar_1 - 2 >= 0 /\ ar_0 + ar_1 - 2 >= 0 /\ -ar_0 + ar_1 - 1 >= 0 /\ ar_0 >= 0 /\ ar_0 = 0 /\ ar_2 = 1 /\ 0 <= ar_0 /\ 0 < ar_1 /\ 1 <= ar_3 ]
(Comp: 1, Cost: 7) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_InvokeMethod_100(o7', ar_0, 1, ar_2, ar_3)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_2 /\ 1 <= ar_2 /\ 0 <= ar_4 /\ 0 < ar_0 /\ 0 <= o7' /\ static'4 <= ar_4 + 1 /\ o7' < ar_0 /\ -ar_4 <= 0 /\ ar_1 = 0 ]
(Comp: 1, Cost: 0) random_ArrayAccess_70(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_72(ar_0, 0, ar_3, ar_4, arityPad)) [ ar_4 - 1 >= 0 /\ ar_2 + ar_4 - 1 >= 0 /\ -ar_2 + ar_4 - 1 >= 0 /\ ar_1 + ar_4 - 1 >= 0 /\ -ar_1 + ar_4 - 1 >= 0 /\ ar_0 + ar_4 - 2 >= 0 /\ -ar_0 + ar_4 >= 0 /\ ar_0 - ar_2 - 1 >= 0 /\ ar_2 >= 0 /\ ar_1 + ar_2 >= 0 /\ -ar_1 + ar_2 >= 0 /\ ar_0 + ar_2 - 1 >= 0 /\ -ar_1 >= 0 /\ ar_0 - ar_1 - 1 >= 0 /\ ar_1 >= 0 /\ ar_0 + ar_1 - 1 >= 0 /\ ar_0 - 1 >= 0 /\ 0 <= ar_1 /\ ar_1 = 0 /\ 0 < ar_0 /\ ar_2 = ar_1 ]
(Comp: 1, Cost: 23) koat_start(ar_0, ar_1, ar_2, ar_3, ar_4) -> Com_1(random_ArrayAccess_70(ar_0, 0, i4', ar_1, static'3)) [ 0 <= 0 /\ static'1 <= static''' + 1 /\ i4' < ar_0 /\ 0 < ar_0 /\ 0 <= static'2 /\ 0 <= i4' /\ static'2 <= static'1 /\ ar_0 <= static'3 /\ static''' <= ar_2 + 2 /\ 0 <= static'1 /\ static'3 <= static'2 + ar_0 /\ 0 <= ar_2 /\ -static'3 <= 0 /\ 0 <= static''' /\ 0 <= static'3 ]
start location: koat_start
leaf cost: 0
Complexity upper bound 102
Time: 2.168 sec (SMT: 1.628 sec)
(32) BOUNDS(CONSTANT, 102)
(33) TerminationGraphToComplexityProof (BOTH CONCRETE BOUNDS(ID, ADD(47)) transformation)
Extracted set of 57 edges for the analysis of TIME complexity. Dropped leaves.
(34) Obligation:
Set of 57 edges based on JBC Program.
Performed SCC analyses:
- Used field analysis yielded the following read fields:
Considered paths: all paths from start
(35) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)
Transformed 57 jbc graph edges to a weighted ITS with 57 rules.
Used simplified encoding of division and modulo.
Filtered conditions with variables that do not depend on the variables on the lhs or rhs without taking transitive dependencies into account.
Filtered fields of type java.lang.Object.
Did no encode lower bounds for putfield and astore.
(36) Obligation:
IntTrs with 57 rules
Start term: main_Load_2(args, env, static)
Considered paths: all paths from start
Rules:
main_Load_2(o1, env, static) -{0,0}> main_Load_4(o1, env, static) :|: 0 < o1
main_Load_4(o1, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_5(o1, env, static) :|: 0 < o1
langle_clinit_rangle_ConstantStackPush_5(o1, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_10(iconst_0, o1, env, static) :|: iconst_0 = 0 && 0 < o1
langle_clinit_rangle_ArrayCreate_10(iconst_0, o1, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_11(a2, o1, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2 && 0 < o1
langle_clinit_rangle_FieldAccess_11(a2, o1, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_12(o1, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2 && 0 < o1
langle_clinit_rangle_New_12(o1, env, static) -{0,0}> langle_clinit_rangle_New_13(o1, env, static) :|: 0 < o1
langle_clinit_rangle_New_13(o1, env, static) -{0,0}> langle_clinit_rangle_New_15(o1, env, static) :|: 0 <= static && 0 < o1
langle_clinit_rangle_New_15(o1, env, static) -{1,1}> langle_clinit_rangle_Duplicate_17(o3, o1, env, static) :|: o3 = 1 && 0 < o3 && 0 < o1
langle_clinit_rangle_Duplicate_17(o3, o1, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_19(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_clinit_rangle_ConstantStackPush_19(o3, o1, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_22(o3, NULL, o1, env, static) :|: NULL = 0 && 0 < o3 && 0 < o1
langle_clinit_rangle_InvokeMethod_22(o3, NULL, o1, env, static) -{1,1}> langle_init_rangle_Load_23(o3, o1, env, static) :|: NULL = 0 && 0 < o3 && 0 < o1
langle_init_rangle_Load_23(o3, o1, env, static) -{1,1}> langle_init_rangle_InvokeMethod_26(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_InvokeMethod_26(o3, o1, env, static) -{1,1}> langle_init_rangle_Load_28(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_Load_28(o3, o1, env, static) -{1,1}> langle_init_rangle_InvokeMethod_30(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_InvokeMethod_30(o3, o1, env, static) -{1,1}> langle_init_rangle_Return_32(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_Return_32(o3, o1, env, static) -{1,1}> langle_init_rangle_Return_35(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_init_rangle_Return_35(o3, o1, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_37(o3, o1, env, static) :|: 0 < o3 && 0 < o1
langle_clinit_rangle_FieldAccess_37(o3, o1, env, static) -{1,1}> langle_clinit_rangle_Return_40(o1, env, static') :|: 0 < o3 && 0 <= o3 && 0 <= static && 0 < o1 && static' <= static + o3
langle_clinit_rangle_Return_40(o1, env, static) -{1,1}> main_Load_41(o1, env, static) :|: 0 < o1
main_Load_41(o1, env, static) -{0,0}> main_Load_42(o1, env, static) :|: 0 < o1
main_Load_42(o1, env, static) -{0,0}> main_Load_44(o1, env, static) :|: 0 <= static && 0 < o1
main_Load_44(o1, env, static) -{0,0}> main_Load_46(o1, env, static) :|: 0 < o1
main_Load_46(o1, env, static) -{0,0}> main_Load_48(o1, env, static) :|: 0 < o1
main_Load_48(o1, env, static) -{1,1}> main_FieldAccess_51(o1, env, static) :|: 0 < o1
main_FieldAccess_51(o1, env, static) -{0,0}> main_FieldAccess_53(o1, env, static) :|: 0 < o1
main_FieldAccess_53(o1, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_55(o1, NULL, iconst_0, env, static) :|: NULL = 0 && iconst_0 = 0 && 0 < o1
langle_clinit_rangle_ConstantStackPush_55(o1, NULL, iconst_0, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_58(iconst_0, o1, NULL, env, static) :|: NULL = 0 && iconst_0 = 0 && 0 < o1
langle_clinit_rangle_FieldAccess_58(iconst_0, o1, NULL, env, static) -{1,1}> langle_clinit_rangle_Return_60(o1, NULL, iconst_0, env, static') :|: NULL = 0 && iconst_0 = 0 && 0 <= static && static' <= static + iconst_0 && 0 < o1
langle_clinit_rangle_Return_60(o1, NULL, iconst_0, env, static) -{1,1}> main_FieldAccess_62(o1, NULL, iconst_0, env, static) :|: NULL = 0 && iconst_0 = 0 && 0 < o1
main_FieldAccess_62(o1, NULL, iconst_0, env, static) -{1,1}> main_InvokeMethod_64(o1, iconst_0, env, static') :|: static' <= static + o1 && NULL = 0 && 0 <= o1 && iconst_0 = 0 && 0 <= static && 0 < o1
main_InvokeMethod_64(o1, iconst_0, env, static) -{1,1}> random_FieldAccess_66(o1, iconst_0, env, static) :|: iconst_0 = 0 && 0 < o1
random_FieldAccess_66(o1, iconst_0, env, static) -{1,1}> random_FieldAccess_67(o1, iconst_0, env, static) :|: 0 <= o1 && o1 <= static && iconst_0 = 0 && 0 <= static && 0 < o1
random_FieldAccess_67(o1, iconst_0, env, static) -{1,1}> random_ArrayAccess_69(o1, iconst_0, env, static) :|: -1 * static <= iconst_0 && iconst_0 = 0 && 0 <= static && iconst_0 <= static && 0 < o1
random_ArrayAccess_69(a6, iconst_0, env, static) -{0,0}> random_ArrayAccess_70(a6, iconst_0, i4, env, static) :|: 0 <= i4 && iconst_0 = 0 && 0 < a6 && i4 < a6
random_ArrayAccess_70(a6, iconst_0, i5, env, static) -{0,0}> random_ArrayAccess_74(a6, iconst_0, i5, env, static) :|: iconst_0 = 0 && 0 < a6 && 0 <= i5 && 1 <= i5
random_ArrayAccess_74(a6, iconst_0, i5, env, static) -{1,1}> random_Store_78(o7, a6, iconst_0, i5, env, static) :|: o7 < a6 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_Store_78(o7, a6, iconst_0, i5, env, static) -{1,1}> random_FieldAccess_80(o7, a6, iconst_0, i5, env, static) :|: iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_FieldAccess_80(o7, a6, iconst_0, i5, env, static) -{1,1}> random_ConstantStackPush_85(iconst_0, o7, a6, i5, env, static) :|: -1 * static <= iconst_0 && iconst_0 = 0 && 0 <= o7 && 0 <= static && 0 < a6 && iconst_0 <= static && 1 <= i5
random_ConstantStackPush_85(iconst_0, o7, a6, i5, env, static) -{1,1}> random_IntArithmetic_88(iconst_0, iconst_1, o7, a6, i5, env, static) :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_IntArithmetic_88(iconst_0, iconst_1, o7, a6, i5, env, static) -{1,1}> random_FieldAccess_90(iconst_1, o7, a6, iconst_0, i5, env, static) :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 < a6 && 1 <= i5
random_FieldAccess_90(iconst_1, o7, a6, iconst_0, i5, env, static) -{1,1}> random_Load_94(o7, a6, iconst_1, i5, env, static') :|: iconst_1 = 1 && iconst_0 = 0 && 0 <= o7 && 0 <= static && 0 < a6 && static' <= static + iconst_1 && 1 <= i5
random_Load_94(o7, a6, iconst_1, i5, env, static) -{1,1}> random_InvokeMethod_100(o7, a6, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 <= o7 && 0 < a6 && 1 <= i5
random_InvokeMethod_100(o12, a6, iconst_1, i5, env, static) -{0,0}> random_InvokeMethod_102(o12, a6, iconst_1, i5, env, static) :|: 0 <= o12 && 0 < o12 && iconst_1 = 1 && 0 < a6 && 1 <= i5
random_InvokeMethod_102(o12, a6, iconst_1, i5, env, static) -{1,1}> random_Return_106(i8, a6, iconst_1, i5, env, static) :|: i8 <= o12 && 0 < o12 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
random_Return_106(i8, a6, iconst_1, i5, env, static) -{1,1}> main_Store_112(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_Store_112(a6, i8, iconst_1, i5, env, static) -{1,1}> main_Load_116(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_Load_116(a6, i8, iconst_1, i5, env, static) -{1,1}> main_ConstantStackPush_121(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_ConstantStackPush_121(a6, i8, iconst_1, i5, env, static) -{1,1}> main_IntArithmetic_127(a6, i8, iconst_3, iconst_1, i5, env, static) :|: iconst_3 = 3 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_IntArithmetic_127(a6, i8, iconst_3, iconst_1, i5, env, static) -{1,1}> main_EQ_131(a6, i10, i8, iconst_1, i5, env, static) :|: 0 <= i10 && iconst_3 = 3 && iconst_1 = 1 && i10 < iconst_3 && 0 < a6 && 0 <= i8 && i10 <= 2 && 1 <= i5
main_EQ_131(a6, i13, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 1 <= i5 && 0 <= i13
main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) -{1,1}> main_Inc_140(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 0 < i13 && 1 <= i5
main_Inc_140(a6, i8, iconst_1, i5, env, static) -{1,1}> main_JMP_154(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && i8 + 1 = i16 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_JMP_154(a6, i16, iconst_1, i5, env, static) -{1,1}> main_Load_157(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_Load_157(a6, i16, iconst_1, i5, env, static) -{1,1}> main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) -{1,1}> main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) :|: iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) -{1,1}> main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && 0 < a6 && 0 <= i19 && 1 <= i5 && i19 < iconst_3
main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) -{0,0}> main_EQ_131(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && 1 <= i16 && iconst_1 = 1 && 0 <= i16 && 0 < a6 && 0 <= i19 && 1 <= i5
(37) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
obtained
main_Load_2(
o1,
env,
static) -{36,36}>
main_EQ_131(
o1,
i10',
i8',
1,
i4',
env,
static'4) :|:
0 <=
1 &&
1 <=
i4' &&
0 <
1 &&
i10' <=
2 &&
static'4 <=
static'3 +
1 &&
0 <=
i8' &&
0 <=
i4' &&
0 <
o1 &&
0 <=
o7' &&
i10' <
3 &&
0 <
2 &&
0 <=
static'3 &&
0 <=
i10' &&
0 <=
static''' &&
0 <=
static &&
static'3 <=
static'2 +
o1 &&
0 <=
static'1 &&
static''' <=
static +
2 &&
o1 <=
static'3 &&
0 <=
o1 &&
-1 *
static'3 <=
0 &&
static'2 <=
static'1 +
0 &&
0 <
o7' &&
i8' <=
o7' &&
o7' <
o1 &&
0 <=
static'2 &&
0 <=
2 &&
static'1 <=
static''' +
1 &&
i4' <
o1by chaining
main_Load_2(
o1,
env,
static) -{0,0}>
main_Load_4(
o1,
env,
static) :|:
0 <
o1main_Load_4(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_5(
o1,
env,
static) :|:
0 <
o1langle_clinit_rangle_ConstantStackPush_5(
o1,
env,
static) -{1,1}>
langle_clinit_rangle_ArrayCreate_10(
iconst_0,
o1,
env,
static) :|:
iconst_0 =
0 &&
0 <
o1langle_clinit_rangle_ArrayCreate_10(
iconst_0,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_11(
a2,
o1,
iconst_0,
env,
static) :|:
a2 =
2 &&
iconst_0 =
0 &&
0 <
a2 &&
0 <
o1langle_clinit_rangle_FieldAccess_11(
a2,
o1,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_New_12(
o1,
env,
static') :|:
0 <=
a2 &&
iconst_0 =
0 &&
static' <=
static +
a2 &&
0 <=
static &&
0 <
a2 &&
0 <
o1langle_clinit_rangle_New_12(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_New_13(
o1,
env,
static) :|:
0 <
o1langle_clinit_rangle_New_13(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_New_15(
o1,
env,
static) :|:
0 <=
static &&
0 <
o1langle_clinit_rangle_New_15(
o1,
env,
static) -{1,1}>
langle_clinit_rangle_Duplicate_17(
o3,
o1,
env,
static) :|:
o3 =
1 &&
0 <
o3 &&
0 <
o1langle_clinit_rangle_Duplicate_17(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_ConstantStackPush_19(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_clinit_rangle_ConstantStackPush_19(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_InvokeMethod_22(
o3,
NULL,
o1,
env,
static) :|:
NULL =
0 &&
0 <
o3 &&
0 <
o1langle_clinit_rangle_InvokeMethod_22(
o3,
NULL,
o1,
env,
static) -{1,1}>
langle_init_rangle_Load_23(
o3,
o1,
env,
static) :|:
NULL =
0 &&
0 <
o3 &&
0 <
o1langle_init_rangle_Load_23(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_26(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_InvokeMethod_26(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_Load_28(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_Load_28(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_30(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_InvokeMethod_30(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_Return_32(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_Return_32(
o3,
o1,
env,
static) -{1,1}>
langle_init_rangle_Return_35(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_init_rangle_Return_35(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_37(
o3,
o1,
env,
static) :|:
0 <
o3 &&
0 <
o1langle_clinit_rangle_FieldAccess_37(
o3,
o1,
env,
static) -{1,1}>
langle_clinit_rangle_Return_40(
o1,
env,
static') :|:
0 <
o3 &&
0 <=
o3 &&
0 <=
static &&
0 <
o1 &&
static' <=
static +
o3langle_clinit_rangle_Return_40(
o1,
env,
static) -{1,1}>
main_Load_41(
o1,
env,
static) :|:
0 <
o1main_Load_41(
o1,
env,
static) -{0,0}>
main_Load_42(
o1,
env,
static) :|:
0 <
o1main_Load_42(
o1,
env,
static) -{0,0}>
main_Load_44(
o1,
env,
static) :|:
0 <=
static &&
0 <
o1main_Load_44(
o1,
env,
static) -{0,0}>
main_Load_46(
o1,
env,
static) :|:
0 <
o1main_Load_46(
o1,
env,
static) -{0,0}>
main_Load_48(
o1,
env,
static) :|:
0 <
o1main_Load_48(
o1,
env,
static) -{1,1}>
main_FieldAccess_51(
o1,
env,
static) :|:
0 <
o1main_FieldAccess_51(
o1,
env,
static) -{0,0}>
main_FieldAccess_53(
o1,
env,
static) :|:
0 <
o1main_FieldAccess_53(
o1,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_55(
o1,
NULL,
iconst_0,
env,
static) :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <
o1langle_clinit_rangle_ConstantStackPush_55(
o1,
NULL,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_58(
iconst_0,
o1,
NULL,
env,
static) :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <
o1langle_clinit_rangle_FieldAccess_58(
iconst_0,
o1,
NULL,
env,
static) -{1,1}>
langle_clinit_rangle_Return_60(
o1,
NULL,
iconst_0,
env,
static') :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <=
static &&
static' <=
static +
iconst_0 &&
0 <
o1langle_clinit_rangle_Return_60(
o1,
NULL,
iconst_0,
env,
static) -{1,1}>
main_FieldAccess_62(
o1,
NULL,
iconst_0,
env,
static) :|:
NULL =
0 &&
iconst_0 =
0 &&
0 <
o1main_FieldAccess_62(
o1,
NULL,
iconst_0,
env,
static) -{1,1}>
main_InvokeMethod_64(
o1,
iconst_0,
env,
static') :|:
static' <=
static +
o1 &&
NULL =
0 &&
0 <=
o1 &&
iconst_0 =
0 &&
0 <=
static &&
0 <
o1main_InvokeMethod_64(
o1,
iconst_0,
env,
static) -{1,1}>
random_FieldAccess_66(
o1,
iconst_0,
env,
static) :|:
iconst_0 =
0 &&
0 <
o1random_FieldAccess_66(
o1,
iconst_0,
env,
static) -{1,1}>
random_FieldAccess_67(
o1,
iconst_0,
env,
static) :|:
0 <=
o1 &&
o1 <=
static &&
iconst_0 =
0 &&
0 <=
static &&
0 <
o1random_FieldAccess_67(
o1,
iconst_0,
env,
static) -{1,1}>
random_ArrayAccess_69(
o1,
iconst_0,
env,
static) :|:
-1 *
static <=
iconst_0 &&
iconst_0 =
0 &&
0 <=
static &&
iconst_0 <=
static &&
0 <
o1random_ArrayAccess_69(
a6,
iconst_0,
env,
static) -{0,0}>
random_ArrayAccess_70(
a6,
iconst_0,
i4,
env,
static) :|:
0 <=
i4 &&
iconst_0 =
0 &&
0 <
a6 &&
i4 <
a6random_ArrayAccess_70(
a6,
iconst_0,
i5,
env,
static) -{0,0}>
random_ArrayAccess_74(
a6,
iconst_0,
i5,
env,
static) :|:
iconst_0 =
0 &&
0 <
a6 &&
0 <=
i5 &&
1 <=
i5random_ArrayAccess_74(
a6,
iconst_0,
i5,
env,
static) -{1,1}>
random_Store_78(
o7,
a6,
iconst_0,
i5,
env,
static) :|:
o7 <
a6 &&
iconst_0 =
0 &&
0 <=
o7 &&
0 <
a6 &&
1 <=
i5random_Store_78(
o7,
a6,
iconst_0,
i5,
env,
static) -{1,1}>
random_FieldAccess_80(
o7,
a6,
iconst_0,
i5,
env,
static) :|:
iconst_0 =
0 &&
0 <=
o7 &&
0 <
a6 &&
1 <=
i5random_FieldAccess_80(
o7,
a6,
iconst_0,
i5,
env,
static) -{1,1}>
random_ConstantStackPush_85(
iconst_0,
o7,
a6,
i5,
env,
static) :|:
-1 *
static <=
iconst_0 &&
iconst_0 =
0 &&
0 <=
o7 &&
0 <=
static &&
0 <
a6 &&
iconst_0 <=
static &&
1 <=
i5random_ConstantStackPush_85(
iconst_0,
o7,
a6,
i5,
env,
static) -{1,1}>
random_IntArithmetic_88(
iconst_0,
iconst_1,
o7,
a6,
i5,
env,
static) :|:
iconst_1 =
1 &&
iconst_0 =
0 &&
0 <=
o7 &&
0 <
a6 &&
1 <=
i5random_IntArithmetic_88(
iconst_0,
iconst_1,
o7,
a6,
i5,
env,
static) -{1,1}>
random_FieldAccess_90(
iconst_1,
o7,
a6,
iconst_0,
i5,
env,
static) :|:
iconst_1 =
1 &&
iconst_0 =
0 &&
0 <=
o7 &&
0 <
a6 &&
1 <=
i5random_FieldAccess_90(
iconst_1,
o7,
a6,
iconst_0,
i5,
env,
static) -{1,1}>
random_Load_94(
o7,
a6,
iconst_1,
i5,
env,
static') :|:
iconst_1 =
1 &&
iconst_0 =
0 &&
0 <=
o7 &&
0 <=
static &&
0 <
a6 &&
static' <=
static +
iconst_1 &&
1 <=
i5random_Load_94(
o7,
a6,
iconst_1,
i5,
env,
static) -{1,1}>
random_InvokeMethod_100(
o7,
a6,
iconst_1,
i5,
env,
static) :|:
iconst_1 =
1 &&
0 <=
o7 &&
0 <
a6 &&
1 <=
i5random_InvokeMethod_100(
o12,
a6,
iconst_1,
i5,
env,
static) -{0,0}>
random_InvokeMethod_102(
o12,
a6,
iconst_1,
i5,
env,
static) :|:
0 <=
o12 &&
0 <
o12 &&
iconst_1 =
1 &&
0 <
a6 &&
1 <=
i5random_InvokeMethod_102(
o12,
a6,
iconst_1,
i5,
env,
static) -{1,1}>
random_Return_106(
i8,
a6,
iconst_1,
i5,
env,
static) :|:
i8 <=
o12 &&
0 <
o12 &&
iconst_1 =
1 &&
0 <
a6 &&
0 <=
i8 &&
1 <=
i5random_Return_106(
i8,
a6,
iconst_1,
i5,
env,
static) -{1,1}>
main_Store_112(
a6,
i8,
iconst_1,
i5,
env,
static) :|:
iconst_1 =
1 &&
0 <
a6 &&
0 <=
i8 &&
1 <=
i5main_Store_112(
a6,
i8,
iconst_1,
i5,
env,
static) -{1,1}>
main_Load_116(
a6,
i8,
iconst_1,
i5,
env,
static) :|:
iconst_1 =
1 &&
0 <
a6 &&
0 <=
i8 &&
1 <=
i5main_Load_116(
a6,
i8,
iconst_1,
i5,
env,
static) -{1,1}>
main_ConstantStackPush_121(
a6,
i8,
iconst_1,
i5,
env,
static) :|:
iconst_1 =
1 &&
0 <
a6 &&
0 <=
i8 &&
1 <=
i5main_ConstantStackPush_121(
a6,
i8,
iconst_1,
i5,
env,
static) -{1,1}>
main_IntArithmetic_127(
a6,
i8,
iconst_3,
iconst_1,
i5,
env,
static) :|:
iconst_3 =
3 &&
iconst_1 =
1 &&
0 <
a6 &&
0 <=
i8 &&
1 <=
i5main_IntArithmetic_127(
a6,
i8,
iconst_3,
iconst_1,
i5,
env,
static) -{1,1}>
main_EQ_131(
a6,
i10,
i8,
iconst_1,
i5,
env,
static) :|:
0 <=
i10 &&
iconst_3 =
3 &&
iconst_1 =
1 &&
i10 <
iconst_3 &&
0 <
a6 &&
0 <=
i8 &&
i10 <=
2 &&
1 <=
i5obtained
main_EQ_131(a6, i13, i8, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3
by chaining
main_EQ_131(a6, i13, i8, iconst_1, i5, env, static) -{0,0}> main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 1 <= i5 && 0 <= i13
main_EQ_133(a6, i13, i8, iconst_1, i5, env, static) -{1,1}> main_Inc_140(a6, i8, iconst_1, i5, env, static) :|: iconst_1 = 1 && i13 <= 2 && 0 < a6 && 1 <= i13 && 0 <= i8 && 0 < i13 && 1 <= i5
main_Inc_140(a6, i8, iconst_1, i5, env, static) -{1,1}> main_JMP_154(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && i8 + 1 = i16 && iconst_1 = 1 && 0 < a6 && 0 <= i8 && 1 <= i5
main_JMP_154(a6, i16, iconst_1, i5, env, static) -{1,1}> main_Load_157(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_Load_157(a6, i16, iconst_1, i5, env, static) -{1,1}> main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) :|: 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_ConstantStackPush_163(a6, i16, iconst_1, i5, env, static) -{1,1}> main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) :|: iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && 0 < a6 && 1 <= i5
main_IntArithmetic_170(a6, i16, iconst_3, iconst_1, i5, env, static) -{1,1}> main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && iconst_3 = 3 && 1 <= i16 && iconst_1 = 1 && 0 < a6 && 0 <= i19 && 1 <= i5 && i19 < iconst_3
main_EQ_187(a6, i19, i16, iconst_1, i5, env, static) -{0,0}> main_EQ_131(a6, i19, i16, iconst_1, i5, env, static) :|: i19 <= 2 && 1 <= i16 && iconst_1 = 1 && 0 <= i16 && 0 < a6 && 0 <= i19 && 1 <= i5
(38) Obligation:
IntTrs with 2 rules
Start term: main_Load_2(args, env, static)
Considered paths: all paths from start
Rules:
main_Load_2(o1, env, static) -{36,36}> main_EQ_131(o1, i10', i8', 1, i4', env, static'4) :|: 0 <= 1 && 1 <= i4' && 0 < 1 && i10' <= 2 && static'4 <= static'3 + 1 && 0 <= i8' && 0 <= i4' && 0 < o1 && 0 <= o7' && i10' < 3 && 0 < 2 && 0 <= static'3 && 0 <= i10' && 0 <= static''' && 0 <= static && static'3 <= static'2 + o1 && 0 <= static'1 && static''' <= static + 2 && o1 <= static'3 && 0 <= o1 && -1 * static'3 <= 0 && static'2 <= static'1 + 0 && 0 < o7' && i8' <= o7' && o7' < o1 && 0 <= static'2 && 0 <= 2 && static'1 <= static''' + 1 && i4' < o1
main_EQ_131(a6, i13, i8, 1, i5, env, static) -{6,6}> main_EQ_131(a6, i19', i16', 1, i5, env, static) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3
(39) WeightedIntTrsUnneededArgumentFilterProof (CONCRETE UPPER BOUND(ID) transformation)
Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements:
main_Load_2(x1, x2, x3) → main_Load_2(x1, x3)
main_EQ_131(x1, x2, x3, x4, x5, x6, x7) → main_EQ_131(x1, x2, x3, x5)
(40) Obligation:
IntTrs with 2 rules
Start term: main_Load_2(args, static)
Considered paths: all paths from start
Rules:
main_Load_2(o1, static) -{36,36}> main_EQ_131(o1, i10', i8', i4') :|: 0 <= 1 && 1 <= i4' && 0 < 1 && i10' <= 2 && static'4 <= static'3 + 1 && 0 <= i8' && 0 <= i4' && 0 < o1 && 0 <= o7' && i10' < 3 && 0 < 2 && 0 <= static'3 && 0 <= i10' && 0 <= static''' && 0 <= static && static'3 <= static'2 + o1 && 0 <= static'1 && static''' <= static + 2 && o1 <= static'3 && 0 <= o1 && -1 * static'3 <= 0 && static'2 <= static'1 + 0 && 0 < o7' && i8' <= o7' && o7' < o1 && 0 <= static'2 && 0 <= 2 && static'1 <= static''' + 1 && i4' < o1
main_EQ_131(a6, i13, i8, i5) -{6,6}> main_EQ_131(a6, i19', i16', i5) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3
(41) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from constraints to rhss.
main_EQ_131(a6, i13, i8, i5) -{6,6}> main_EQ_131(a6, i19', i16', i5) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3
was transformed to
main_EQ_131(a6, i13, i8, i5) -{6,6}> main_EQ_131(a6, i19', i8 + 1, i5) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3
(42) Obligation:
IntTrs with 2 rules
Start term: main_Load_2(args, static)
Considered paths: all paths from start
Rules:
main_Load_2(o1, static) -{36,36}> main_EQ_131(o1, i10', i8', i4') :|: 0 <= 1 && 1 <= i4' && 0 < 1 && i10' <= 2 && static'4 <= static'3 + 1 && 0 <= i8' && 0 <= i4' && 0 < o1 && 0 <= o7' && i10' < 3 && 0 < 2 && 0 <= static'3 && 0 <= i10' && 0 <= static''' && 0 <= static && static'3 <= static'2 + o1 && 0 <= static'1 && static''' <= static + 2 && o1 <= static'3 && 0 <= o1 && -1 * static'3 <= 0 && static'2 <= static'1 + 0 && 0 < o7' && i8' <= o7' && o7' < o1 && 0 <= static'2 && 0 <= 2 && static'1 <= static''' + 1 && i4' < o1
main_EQ_131(a6, i13, i8, i5) -{6,6}> main_EQ_131(a6, i19', i8 + 1, i5) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3
(43) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Simplified expressions.
main_Load_2(o1, static) -{36,36}> main_EQ_131(o1, i10', i8', i4') :|: 0 <= 1 && 1 <= i4' && 0 < 1 && i10' <= 2 && static'4 <= static'3 + 1 && 0 <= i8' && 0 <= i4' && 0 < o1 && 0 <= o7' && i10' < 3 && 0 < 2 && 0 <= static'3 && 0 <= i10' && 0 <= static''' && 0 <= static && static'3 <= static'2 + o1 && 0 <= static'1 && static''' <= static + 2 && o1 <= static'3 && 0 <= o1 && -1 * static'3 <= 0 && static'2 <= static'1 + 0 && 0 < o7' && i8' <= o7' && o7' < o1 && 0 <= static'2 && 0 <= 2 && static'1 <= static''' + 1 && i4' < o1
was transformed to
main_Load_2(o1, static) -{36,36}> main_EQ_131(o1, i10', i8', i4') :|: 1 <= i4' && i10' <= 2 && static'4 <= static'3 + 1 && 0 <= i8' && 0 <= i4' && 0 < o1 && i10' < 3 && 0 <= static'3 && 0 <= i10' && 0 <= static''' && 0 <= static && static'3 <= static'2 + o1 && 0 <= static'1 && static''' <= static + 2 && o1 <= static'3 && -1 * static'3 <= 0 && static'2 <= static'1 && 0 < o7' && i8' <= o7' && o7' < o1 && 0 <= static'2 && static'1 <= static''' + 1 && i4' < o1
main_EQ_131(a6, i13, i8, i5) -{6,6}> main_EQ_131(a6, i19', i8 + 1, i5) :|: 0 <= i13 && 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3
was transformed to
main_EQ_131(a6, i13, i8, i5) -{6,6}> main_EQ_131(a6, i19', i8 + 1, i5) :|: 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3
(44) Obligation:
IntTrs with 2 rules
Start term: main_Load_2(args, static)
Considered paths: all paths from start
Rules:
main_Load_2(o1, static) -{36,36}> main_EQ_131(o1, i10', i8', i4') :|: 1 <= i4' && i10' <= 2 && static'4 <= static'3 + 1 && 0 <= i8' && 0 <= i4' && 0 < o1 && i10' < 3 && 0 <= static'3 && 0 <= i10' && 0 <= static''' && 0 <= static && static'3 <= static'2 + o1 && 0 <= static'1 && static''' <= static + 2 && o1 <= static'3 && -1 * static'3 <= 0 && static'2 <= static'1 && 0 < o7' && i8' <= o7' && o7' < o1 && 0 <= static'2 && static'1 <= static''' + 1 && i4' < o1
main_EQ_131(a6, i13, i8, i5) -{6,6}> main_EQ_131(a6, i19', i8 + 1, i5) :|: 1 <= i5 && i19' <= 2 && 0 <= i19' && i8 + 1 = i16' && 0 < a6 && 0 < i13 && 0 <= i16' && 1 <= i16' && 1 <= i13 && 0 <= i8 && i13 <= 2 && i19' < 3