(0) Obligation:
Need to prove time_complexity of the following program:
package ClassAnalysis;
public class ClassAnalysis {
A field;
public static void main(String[] args) {
Random.args = args;
ClassAnalysis t = new ClassAnalysis();
t.field = new A();
t.field = new B();
t.eval();
}
public void eval() {
int x = Random.random() % 100;
this.field.test(x);
}
}
class A {
public boolean test(int x) {
while (x > 0) {
if (x > 10) {
x--;
} else {
x++;
}
}
return true;
}
}
class B extends A {
public boolean test(int x) {
while (x > 0) {
x--;
}
return true;
}
}
package ClassAnalysis;
public class Random {
static String[] args;
static int index = 0;
public static int random() {
final String string = args[index];
index++;
return string.length();
}
}
(1) JBCToGraph (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Constructed TerminationGraph.
(2) Obligation:
Termination Graph based on JBC Program:
ClassAnalysis.ClassAnalysis.main([Ljava/lang/String;)V: Graph of 145 nodes with 1 SCC.
(3) TerminationGraphToComplexityProof (BOTH CONCRETE BOUNDS(ID, ADD(53)) transformation)
Extracted set of 91 edges for the analysis of TIME complexity. Kept leaves.
(4) Obligation:
Set of 91 edges based on JBC Program.
Performed SCC analyses:
- Used field analysis yielded the following read fields:
- ClassAnalysis.ClassAnalysis: [field]
Considered paths: nonterm paths and paths from start to sinks
(5) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)
Transformed 91 jbc graph edges to a weighted ITS with 91 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.
(6) Obligation:
IntTrs with 91 rules
Start term: main_Load_1(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_Load_1(o2, env, static) -{0,0}> main_Load_3(o2, env, static) :|: 0 < o2
main_Load_3(o2, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_6(o2, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_6(o2, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_15(iconst_0, o2, env, static) :|: 0 < o2 && iconst_0 = 0
langle_clinit_rangle_ArrayCreate_15(iconst_0, o2, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_17(a2, o2, iconst_0, env, static) :|: a2 = 2 && 0 < o2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_17(a2, o2, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_18(o2, env, static') :|: 0 <= a2 && 0 < o2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_18(o2, env, static) -{0,0}> langle_clinit_rangle_New_20(o2, env, static) :|: 0 < o2
langle_clinit_rangle_New_20(o2, env, static) -{0,0}> langle_clinit_rangle_New_22(o2, env, static) :|: 0 < o2 && 0 <= static
langle_clinit_rangle_New_22(o2, env, static) -{1,1}> langle_clinit_rangle_Duplicate_30(o4, o2, env, static) :|: o4 = 1 && 0 < o2 && 0 < o4
langle_clinit_rangle_Duplicate_30(o4, o2, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_31(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_clinit_rangle_ConstantStackPush_31(o4, o2, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_33(o4, NULL, o2, env, static) :|: NULL = 0 && 0 < o2 && 0 < o4
langle_clinit_rangle_InvokeMethod_33(o4, NULL, o2, env, static) -{1,1}> langle_init_rangle_Load_35(o4, o2, env, static) :|: NULL = 0 && 0 < o2 && 0 < o4
langle_init_rangle_Load_35(o4, o2, env, static) -{1,1}> langle_init_rangle_InvokeMethod_38(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_InvokeMethod_38(o4, o2, env, static) -{1,1}> langle_init_rangle_Load_41(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_Load_41(o4, o2, env, static) -{1,1}> langle_init_rangle_InvokeMethod_43(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_InvokeMethod_43(o4, o2, env, static) -{1,1}> langle_init_rangle_Return_46(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_Return_46(o4, o2, env, static) -{1,1}> langle_init_rangle_Return_48(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_Return_48(o4, o2, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_49(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_clinit_rangle_FieldAccess_49(o4, o2, env, static) -{1,1}> langle_clinit_rangle_Return_52(o2, env, static') :|: 0 < o2 && 0 <= o4 && 0 < o4 && 0 <= static && static' <= static + o4
langle_clinit_rangle_Return_52(o2, env, static) -{1,1}> main_Load_57(o2, env, static) :|: 0 < o2
main_Load_57(o2, env, static) -{0,0}> main_Load_58(o2, env, static) :|: 0 < o2
main_Load_58(o2, env, static) -{0,0}> main_Load_61(o2, env, static) :|: 0 < o2 && 0 <= static
main_Load_61(o2, env, static) -{0,0}> main_Load_62(o2, env, static) :|: 0 < o2
main_Load_62(o2, env, static) -{0,0}> main_Load_63(o2, env, static) :|: 0 < o2
main_Load_63(o2, env, static) -{1,1}> main_FieldAccess_65(o2, env, static) :|: 0 < o2
main_FieldAccess_65(o2, env, static) -{0,0}> main_FieldAccess_67(o2, env, static) :|: 0 < o2
main_FieldAccess_67(o2, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_69(o2, NULL, iconst_0, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0
langle_clinit_rangle_ConstantStackPush_69(o2, NULL, iconst_0, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_70(iconst_0, o2, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0
langle_clinit_rangle_FieldAccess_70(iconst_0, o2, NULL, env, static) -{1,1}> langle_clinit_rangle_Return_71(o2, NULL, iconst_0, env, static') :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 <= static && static' <= static + iconst_0
langle_clinit_rangle_Return_71(o2, NULL, iconst_0, env, static) -{1,1}> main_FieldAccess_72(o2, NULL, iconst_0, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0
main_FieldAccess_72(o2, NULL, iconst_0, env, static) -{1,1}> main_New_73(o2, iconst_0, env, static') :|: NULL = 0 && 0 < o2 && 0 <= o2 && iconst_0 = 0 && 0 <= static && static' <= static + o2
main_New_73(o2, iconst_0, env, static) -{1,1}> main_Duplicate_74(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && o7 = 1 && iconst_0 = 0 && 0 < o7
main_Duplicate_74(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_InvokeMethod_75(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_InvokeMethod_75(o2, o7, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Load_76(o7, o2, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
langle_init_rangle_Load_76(o7, o2, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_InvokeMethod_78(o7, o2, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
langle_init_rangle_InvokeMethod_78(o7, o2, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Return_80(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
langle_init_rangle_Return_80(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_Store_83(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_Store_83(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_Load_84(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_Load_84(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_New_85(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_New_85(o2, o7, iconst_0, NULL, env, static) -{0,0}> main_New_86(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_New_86(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_Duplicate_87(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && o8 = 1 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_Duplicate_87(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> main_InvokeMethod_88(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_InvokeMethod_88(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Load_89(o8, o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
langle_init_rangle_Load_89(o8, o2, o7, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_InvokeMethod_90(o8, o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
langle_init_rangle_InvokeMethod_90(o8, o2, o7, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Return_91(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
langle_init_rangle_Return_91(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> main_FieldAccess_92(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_FieldAccess_92(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> main_Load_95(o2, o7', iconst_0, o8, env, static) :|: NULL = 0 && 0 < o2 && o7' = o7 + o8 && iconst_0 = 0 && o7' <= o7 + o8 && 0 < o7' && 0 < o7 && 0 < o8
main_Load_95(o2, o7, iconst_0, o8, env, static) -{1,1}> main_New_98(o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_New_98(o2, o7, iconst_0, o8, env, static) -{0,0}> main_New_100(o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_New_100(o2, o7, iconst_0, o8, env, static) -{1,1}> main_Duplicate_103(o2, o7, o10, iconst_0, o8, env, static) :|: o10 = 1 && 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
main_Duplicate_103(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> main_InvokeMethod_105(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
main_InvokeMethod_105(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Load_107(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Load_107(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_InvokeMethod_115(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_InvokeMethod_115(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Load_117(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Load_117(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_InvokeMethod_119(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_InvokeMethod_119(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Return_120(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Return_120(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Return_122(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Return_122(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> main_FieldAccess_123(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
main_FieldAccess_123(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> main_Load_126(o2, o7', iconst_0, o10, env, static) :|: 0 < o2 && o7' = o7 + o10 + -1 * o8 && o7' <= o7 + o10 && iconst_0 = 0 && 0 < o10 && 0 < o7' && 0 < o7 && 0 < o8
main_Load_126(o2, o7, iconst_0, o10, env, static) -{1,1}> main_InvokeMethod_128(o2, o7, iconst_0, o10, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7
main_InvokeMethod_128(o2, o7, iconst_0, o10, env, static) -{1,1}> eval_InvokeMethod_129(o7, o2, iconst_0, o10, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7
eval_InvokeMethod_129(o7, o2, iconst_0, o10, env, static) -{1,1}> random_FieldAccess_130(o7, o2, iconst_0, o10, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7
random_FieldAccess_130(o7, o2, iconst_0, o10, env, static) -{1,1}> random_FieldAccess_131(o2, o7, iconst_0, o10, env, static) :|: 0 < o2 && o2 <= static && 0 <= o2 && iconst_0 = 0 && 0 <= static && 0 < o10 && 0 < o7
random_FieldAccess_131(o2, o7, iconst_0, o10, env, static) -{1,1}> random_ArrayAccess_132(o2, iconst_0, o7, o10, env, static) :|: 0 < o2 && -1 * static <= iconst_0 && iconst_0 = 0 && 0 <= static && 0 < o10 && iconst_0 <= static && 0 < o7
random_ArrayAccess_132(a6, iconst_0, o7, o10, env, static) -{0,0}> random_ArrayAccess_134(a6, iconst_0, o7, i3, o10, env, static) :|: i3 < a6 && 0 <= i3 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7
random_ArrayAccess_134(a6, iconst_0, o7, iconst_0, o10, env, static) -{0,0}> random_ArrayAccess_136(a6, iconst_0, o7, o10, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7
random_ArrayAccess_134(a6, iconst_0, o7, i4, o10, env, static) -{0,0}> random_ArrayAccess_137(a6, iconst_0, o7, i4, o10, env, static) :|: iconst_0 = 0 && 0 <= i4 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_ArrayAccess_137(a6, iconst_0, o7, i4, o10, env, static) -{1,1}> random_Store_141(o18, o7, a6, iconst_0, o10, i4, env, static) :|: iconst_0 < i4 && 0 <= o18 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4 && o18 < a6
random_Store_141(o18, o7, a6, iconst_0, o10, i4, env, static) -{1,1}> random_FieldAccess_143(o18, o7, a6, iconst_0, o10, i4, env, static) :|: 0 <= o18 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_FieldAccess_143(o18, o7, a6, iconst_0, o10, i4, env, static) -{1,1}> random_ConstantStackPush_147(iconst_0, o18, o7, a6, o10, i4, env, static) :|: -1 * static <= iconst_0 && 0 <= o18 && iconst_0 = 0 && 0 <= static && 0 < a6 && 0 < o10 && iconst_0 <= static && 0 < o7 && 1 <= i4
random_ConstantStackPush_147(iconst_0, o18, o7, a6, o10, i4, env, static) -{1,1}> random_IntArithmetic_150(iconst_0, iconst_1, o18, o7, a6, o10, i4, env, static) :|: 0 <= o18 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_IntArithmetic_150(iconst_0, iconst_1, o18, o7, a6, o10, i4, env, static) -{1,1}> random_FieldAccess_152(iconst_1, o18, o7, a6, iconst_0, o10, i4, env, static) :|: 0 <= o18 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_FieldAccess_152(iconst_1, o18, o7, a6, iconst_0, o10, i4, env, static) -{1,1}> random_Load_158(o18, o7, a6, iconst_1, o10, i4, env, static') :|: 0 <= o18 && iconst_1 = 1 && iconst_0 = 0 && 0 <= static && 0 < a6 && 0 < o10 && static' <= static + iconst_1 && 0 < o7 && 1 <= i4
random_Load_158(o18, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> random_InvokeMethod_163(o18, o7, a6, iconst_1, o10, i4, env, static) :|: 0 <= o18 && iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_InvokeMethod_163(o21, o7, a6, iconst_1, o10, i4, env, static) -{0,0}> random_InvokeMethod_169(o21, o7, a6, iconst_1, o10, i4, env, static) :|: 0 <= o21 && iconst_1 = 1 && 0 < o21 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_InvokeMethod_163(NULL, o7, a6, iconst_1, o10, i4, env, static) -{0,0}> random_InvokeMethod_170(NULL, o7, a6, iconst_1, o10, i4, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_InvokeMethod_169(o21, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> random_Return_173(i7, o7, a6, iconst_1, o10, i4, env, static) :|: i7 <= o21 && iconst_1 = 1 && 0 < o21 && 0 < a6 && 0 < o10 && 0 <= i7 && 0 < o7 && 1 <= i4
random_Return_173(i7, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_ConstantStackPush_178(i7, o7, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i7 && 0 < o7 && 1 <= i4
eval_ConstantStackPush_178(i7, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_IntArithmetic_181(i7, iconst_100, o7, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && iconst_100 = 100 && 0 < a6 && 0 < o10 && 0 <= i7 && 0 < o7 && 1 <= i4
eval_IntArithmetic_181(i7, iconst_100, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_Store_185(i8, o7, a6, iconst_1, o10, i4, env, static) :|: i7 % iconst_100 = i8 && iconst_1 = 1 && iconst_100 = 100 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 <= i7 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_Store_185(i8, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_Load_190(o7, i8, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_Load_190(o7, i8, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_FieldAccess_193(o7, i8, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_FieldAccess_193(o7, i8, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_Load_196(o10, i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_Load_196(o10, i8, a6, iconst_1, i4, env, static) -{1,1}> eval_InvokeMethod_205(o10, i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && i8 <= 99 && 1 <= i4
eval_InvokeMethod_205(o10, i8, a6, iconst_1, i4, env, static) -{1,1}> test_Load_208(i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && i8 <= 99 && 1 <= i4
test_Load_208(i8, a6, iconst_1, i4, env, static) -{1,1}> test_LE_212(i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && i8 <= 99 && 1 <= i4
test_LE_212(iconst_0, a6, iconst_1, i4, env, static) -{0,0}> test_LE_221(iconst_0, a6, iconst_1, i4, env, static) :|: iconst_0 <= 99 && 0 <= iconst_0 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 1 <= i4
test_LE_212(i10, a6, iconst_1, i4, env, static) -{0,0}> test_LE_222(i10, a6, iconst_1, i4, env, static) :|: 0 <= i10 && 1 <= i10 && i10 <= 99 && iconst_1 = 1 && 0 < a6 && 1 <= i4
test_LE_222(i10, a6, iconst_1, i4, env, static) -{1,1}> test_Inc_230(i10, a6, iconst_1, i4, env, static) :|: 1 <= i10 && 0 < i10 && i10 <= 99 && iconst_1 = 1 && 0 < a6 && 1 <= i4
test_Inc_230(i10, a6, iconst_1, i4, env, static) -{1,1}> test_JMP_250(i13, a6, iconst_1, i4, env, static) :|: 1 <= i10 && i13 <= 98 && i10 <= 99 && iconst_1 = 1 && 0 < a6 && i10 + -1 = i13 && 1 <= i4 && 0 <= i13
test_JMP_250(i13, a6, iconst_1, i4, env, static) -{1,1}> test_Load_278(i13, a6, iconst_1, i4, env, static) :|: i13 <= 98 && iconst_1 = 1 && 0 < a6 && 1 <= i4 && 0 <= i13
test_Load_278(i13, a6, iconst_1, i4, env, static) -{0,0}> test_Load_208(i13, a6, iconst_1, i4, env, static) :|: i13 <= 98 && iconst_1 = 1 && i13 <= 99 && 0 < a6 && 1 <= i4 && 0 <= i13
(7) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)
Transformed 91 jbc graph edges to a weighted ITS with 91 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.
(8) Obligation:
IntTrs with 91 rules
Start term: main_Load_1(args, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_Load_1(o2, env, static) -{0,0}> main_Load_3(o2, env, static) :|: 0 < o2
main_Load_3(o2, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_6(o2, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_6(o2, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_15(iconst_0, o2, env, static) :|: 0 < o2 && iconst_0 = 0
langle_clinit_rangle_ArrayCreate_15(iconst_0, o2, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_17(a2, o2, iconst_0, env, static) :|: a2 = 2 && 0 < o2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_17(a2, o2, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_18(o2, env, static') :|: 0 <= a2 && 0 < o2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_18(o2, env, static) -{0,0}> langle_clinit_rangle_New_20(o2, env, static) :|: 0 < o2
langle_clinit_rangle_New_20(o2, env, static) -{0,0}> langle_clinit_rangle_New_22(o2, env, static) :|: 0 < o2 && 0 <= static
langle_clinit_rangle_New_22(o2, env, static) -{1,1}> langle_clinit_rangle_Duplicate_30(o4, o2, env, static) :|: o4 = 1 && 0 < o2 && 0 < o4
langle_clinit_rangle_Duplicate_30(o4, o2, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_31(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_clinit_rangle_ConstantStackPush_31(o4, o2, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_33(o4, NULL, o2, env, static) :|: NULL = 0 && 0 < o2 && 0 < o4
langle_clinit_rangle_InvokeMethod_33(o4, NULL, o2, env, static) -{1,1}> langle_init_rangle_Load_35(o4, o2, env, static) :|: NULL = 0 && 0 < o2 && 0 < o4
langle_init_rangle_Load_35(o4, o2, env, static) -{1,1}> langle_init_rangle_InvokeMethod_38(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_InvokeMethod_38(o4, o2, env, static) -{1,1}> langle_init_rangle_Load_41(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_Load_41(o4, o2, env, static) -{1,1}> langle_init_rangle_InvokeMethod_43(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_InvokeMethod_43(o4, o2, env, static) -{1,1}> langle_init_rangle_Return_46(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_Return_46(o4, o2, env, static) -{1,1}> langle_init_rangle_Return_48(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_Return_48(o4, o2, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_49(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_clinit_rangle_FieldAccess_49(o4, o2, env, static) -{1,1}> langle_clinit_rangle_Return_52(o2, env, static') :|: 0 < o2 && 0 <= o4 && 0 < o4 && 0 <= static && static' <= static + o4
langle_clinit_rangle_Return_52(o2, env, static) -{1,1}> main_Load_57(o2, env, static) :|: 0 < o2
main_Load_57(o2, env, static) -{0,0}> main_Load_58(o2, env, static) :|: 0 < o2
main_Load_58(o2, env, static) -{0,0}> main_Load_61(o2, env, static) :|: 0 < o2 && 0 <= static
main_Load_61(o2, env, static) -{0,0}> main_Load_62(o2, env, static) :|: 0 < o2
main_Load_62(o2, env, static) -{0,0}> main_Load_63(o2, env, static) :|: 0 < o2
main_Load_63(o2, env, static) -{1,1}> main_FieldAccess_65(o2, env, static) :|: 0 < o2
main_FieldAccess_65(o2, env, static) -{0,0}> main_FieldAccess_67(o2, env, static) :|: 0 < o2
main_FieldAccess_67(o2, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_69(o2, NULL, iconst_0, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0
langle_clinit_rangle_ConstantStackPush_69(o2, NULL, iconst_0, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_70(iconst_0, o2, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0
langle_clinit_rangle_FieldAccess_70(iconst_0, o2, NULL, env, static) -{1,1}> langle_clinit_rangle_Return_71(o2, NULL, iconst_0, env, static') :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 <= static && static' <= static + iconst_0
langle_clinit_rangle_Return_71(o2, NULL, iconst_0, env, static) -{1,1}> main_FieldAccess_72(o2, NULL, iconst_0, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0
main_FieldAccess_72(o2, NULL, iconst_0, env, static) -{1,1}> main_New_73(o2, iconst_0, env, static') :|: NULL = 0 && 0 < o2 && 0 <= o2 && iconst_0 = 0 && 0 <= static && static' <= static + o2
main_New_73(o2, iconst_0, env, static) -{1,1}> main_Duplicate_74(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && o7 = 1 && iconst_0 = 0 && 0 < o7
main_Duplicate_74(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_InvokeMethod_75(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_InvokeMethod_75(o2, o7, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Load_76(o7, o2, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
langle_init_rangle_Load_76(o7, o2, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_InvokeMethod_78(o7, o2, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
langle_init_rangle_InvokeMethod_78(o7, o2, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Return_80(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
langle_init_rangle_Return_80(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_Store_83(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_Store_83(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_Load_84(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_Load_84(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_New_85(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_New_85(o2, o7, iconst_0, NULL, env, static) -{0,0}> main_New_86(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_New_86(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_Duplicate_87(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && o8 = 1 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_Duplicate_87(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> main_InvokeMethod_88(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_InvokeMethod_88(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Load_89(o8, o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
langle_init_rangle_Load_89(o8, o2, o7, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_InvokeMethod_90(o8, o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
langle_init_rangle_InvokeMethod_90(o8, o2, o7, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Return_91(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
langle_init_rangle_Return_91(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> main_FieldAccess_92(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_FieldAccess_92(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> main_Load_95(o2, o7', iconst_0, o8, env, static) :|: NULL = 0 && 0 < o2 && o7' = o7 + o8 && iconst_0 = 0 && o7' <= o7 + o8 && 0 < o7' && 0 < o7 && 0 < o8
main_Load_95(o2, o7, iconst_0, o8, env, static) -{1,1}> main_New_98(o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_New_98(o2, o7, iconst_0, o8, env, static) -{0,0}> main_New_100(o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_New_100(o2, o7, iconst_0, o8, env, static) -{1,1}> main_Duplicate_103(o2, o7, o10, iconst_0, o8, env, static) :|: o10 = 1 && 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
main_Duplicate_103(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> main_InvokeMethod_105(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
main_InvokeMethod_105(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Load_107(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Load_107(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_InvokeMethod_115(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_InvokeMethod_115(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Load_117(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Load_117(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_InvokeMethod_119(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_InvokeMethod_119(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Return_120(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Return_120(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Return_122(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Return_122(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> main_FieldAccess_123(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
main_FieldAccess_123(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> main_Load_126(o2, o7', iconst_0, o10, env, static) :|: 0 < o2 && o7' = o7 + o10 + -1 * o8 && o7' <= o7 + o10 && iconst_0 = 0 && 0 < o10 && 0 < o7' && 0 < o7 && 0 < o8
main_Load_126(o2, o7, iconst_0, o10, env, static) -{1,1}> main_InvokeMethod_128(o2, o7, iconst_0, o10, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7
main_InvokeMethod_128(o2, o7, iconst_0, o10, env, static) -{1,1}> eval_InvokeMethod_129(o7, o2, iconst_0, o10, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7
eval_InvokeMethod_129(o7, o2, iconst_0, o10, env, static) -{1,1}> random_FieldAccess_130(o7, o2, iconst_0, o10, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7
random_FieldAccess_130(o7, o2, iconst_0, o10, env, static) -{1,1}> random_FieldAccess_131(o2, o7, iconst_0, o10, env, static) :|: 0 < o2 && o2 <= static && 0 <= o2 && iconst_0 = 0 && 0 <= static && 0 < o10 && 0 < o7
random_FieldAccess_131(o2, o7, iconst_0, o10, env, static) -{1,1}> random_ArrayAccess_132(o2, iconst_0, o7, o10, env, static) :|: 0 < o2 && -1 * static <= iconst_0 && iconst_0 = 0 && 0 <= static && 0 < o10 && iconst_0 <= static && 0 < o7
random_ArrayAccess_132(a6, iconst_0, o7, o10, env, static) -{0,0}> random_ArrayAccess_134(a6, iconst_0, o7, i3, o10, env, static) :|: i3 < a6 && 0 <= i3 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7
random_ArrayAccess_134(a6, iconst_0, o7, iconst_0, o10, env, static) -{0,0}> random_ArrayAccess_136(a6, iconst_0, o7, o10, env, static) :|: 0 <= iconst_0 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7
random_ArrayAccess_134(a6, iconst_0, o7, i4, o10, env, static) -{0,0}> random_ArrayAccess_137(a6, iconst_0, o7, i4, o10, env, static) :|: iconst_0 = 0 && 0 <= i4 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_ArrayAccess_137(a6, iconst_0, o7, i4, o10, env, static) -{1,1}> random_Store_141(o18, o7, a6, iconst_0, o10, i4, env, static) :|: iconst_0 < i4 && 0 <= o18 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4 && o18 < a6
random_Store_141(o18, o7, a6, iconst_0, o10, i4, env, static) -{1,1}> random_FieldAccess_143(o18, o7, a6, iconst_0, o10, i4, env, static) :|: 0 <= o18 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_FieldAccess_143(o18, o7, a6, iconst_0, o10, i4, env, static) -{1,1}> random_ConstantStackPush_147(iconst_0, o18, o7, a6, o10, i4, env, static) :|: -1 * static <= iconst_0 && 0 <= o18 && iconst_0 = 0 && 0 <= static && 0 < a6 && 0 < o10 && iconst_0 <= static && 0 < o7 && 1 <= i4
random_ConstantStackPush_147(iconst_0, o18, o7, a6, o10, i4, env, static) -{1,1}> random_IntArithmetic_150(iconst_0, iconst_1, o18, o7, a6, o10, i4, env, static) :|: 0 <= o18 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_IntArithmetic_150(iconst_0, iconst_1, o18, o7, a6, o10, i4, env, static) -{1,1}> random_FieldAccess_152(iconst_1, o18, o7, a6, iconst_0, o10, i4, env, static) :|: 0 <= o18 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_FieldAccess_152(iconst_1, o18, o7, a6, iconst_0, o10, i4, env, static) -{1,1}> random_Load_158(o18, o7, a6, iconst_1, o10, i4, env, static') :|: 0 <= o18 && iconst_1 = 1 && iconst_0 = 0 && 0 <= static && 0 < a6 && 0 < o10 && static' <= static + iconst_1 && 0 < o7 && 1 <= i4
random_Load_158(o18, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> random_InvokeMethod_163(o18, o7, a6, iconst_1, o10, i4, env, static) :|: 0 <= o18 && iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_InvokeMethod_163(o21, o7, a6, iconst_1, o10, i4, env, static) -{0,0}> random_InvokeMethod_169(o21, o7, a6, iconst_1, o10, i4, env, static) :|: 0 <= o21 && iconst_1 = 1 && 0 < o21 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_InvokeMethod_163(NULL, o7, a6, iconst_1, o10, i4, env, static) -{0,0}> random_InvokeMethod_170(NULL, o7, a6, iconst_1, o10, i4, env, static) :|: NULL = 0 && iconst_1 = 1 && 0 <= NULL && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_InvokeMethod_169(o21, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> random_Return_173(i7, o7, a6, iconst_1, o10, i4, env, static) :|: i7 <= o21 && iconst_1 = 1 && 0 < o21 && 0 < a6 && 0 < o10 && 0 <= i7 && 0 < o7 && 1 <= i4
random_Return_173(i7, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_ConstantStackPush_178(i7, o7, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i7 && 0 < o7 && 1 <= i4
eval_ConstantStackPush_178(i7, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_IntArithmetic_181(i7, iconst_100, o7, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && iconst_100 = 100 && 0 < a6 && 0 < o10 && 0 <= i7 && 0 < o7 && 1 <= i4
eval_IntArithmetic_181(i7, iconst_100, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_Store_185(i8, o7, a6, iconst_1, o10, i4, env, static) :|: i8 < iconst_100 && iconst_1 = 1 && iconst_100 = 100 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 <= i7 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_Store_185(i8, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_Load_190(o7, i8, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_Load_190(o7, i8, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_FieldAccess_193(o7, i8, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_FieldAccess_193(o7, i8, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_Load_196(o10, i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_Load_196(o10, i8, a6, iconst_1, i4, env, static) -{1,1}> eval_InvokeMethod_205(o10, i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && i8 <= 99 && 1 <= i4
eval_InvokeMethod_205(o10, i8, a6, iconst_1, i4, env, static) -{1,1}> test_Load_208(i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && i8 <= 99 && 1 <= i4
test_Load_208(i8, a6, iconst_1, i4, env, static) -{1,1}> test_LE_212(i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && i8 <= 99 && 1 <= i4
test_LE_212(iconst_0, a6, iconst_1, i4, env, static) -{0,0}> test_LE_221(iconst_0, a6, iconst_1, i4, env, static) :|: iconst_0 <= 99 && 0 <= iconst_0 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 1 <= i4
test_LE_212(i10, a6, iconst_1, i4, env, static) -{0,0}> test_LE_222(i10, a6, iconst_1, i4, env, static) :|: 0 <= i10 && 1 <= i10 && i10 <= 99 && iconst_1 = 1 && 0 < a6 && 1 <= i4
test_LE_222(i10, a6, iconst_1, i4, env, static) -{1,1}> test_Inc_230(i10, a6, iconst_1, i4, env, static) :|: 1 <= i10 && 0 < i10 && i10 <= 99 && iconst_1 = 1 && 0 < a6 && 1 <= i4
test_Inc_230(i10, a6, iconst_1, i4, env, static) -{1,1}> test_JMP_250(i13, a6, iconst_1, i4, env, static) :|: 1 <= i10 && i13 <= 98 && i10 <= 99 && iconst_1 = 1 && 0 < a6 && i10 + -1 = i13 && 1 <= i4 && 0 <= i13
test_JMP_250(i13, a6, iconst_1, i4, env, static) -{1,1}> test_Load_278(i13, a6, iconst_1, i4, env, static) :|: i13 <= 98 && iconst_1 = 1 && 0 < a6 && 1 <= i4 && 0 <= i13
test_Load_278(i13, a6, iconst_1, i4, env, static) -{0,0}> test_Load_208(i13, a6, iconst_1, i4, env, static) :|: i13 <= 98 && iconst_1 = 1 && i13 <= 99 && 0 < a6 && 1 <= i4 && 0 <= i13
(9) TerminationGraphToComplexityProof (BOTH CONCRETE BOUNDS(ID, ADD(53)) transformation)
Extracted set of 88 edges for the analysis of TIME complexity. Dropped leaves.
(10) Obligation:
Set of 88 edges based on JBC Program.
Performed SCC analyses:
- Used field analysis yielded the following read fields:
- ClassAnalysis.ClassAnalysis: [field]
Considered paths: all paths from start
(11) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)
Transformed 88 jbc graph edges to a weighted ITS with 88 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.
(12) Obligation:
IntTrs with 88 rules
Start term: main_Load_1(args, env, static)
Considered paths: all paths from start
Rules:
main_Load_1(o2, env, static) -{0,0}> main_Load_3(o2, env, static) :|: 0 < o2
main_Load_3(o2, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_6(o2, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_6(o2, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_15(iconst_0, o2, env, static) :|: 0 < o2 && iconst_0 = 0
langle_clinit_rangle_ArrayCreate_15(iconst_0, o2, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_17(a2, o2, iconst_0, env, static) :|: a2 = 2 && 0 < o2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_17(a2, o2, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_18(o2, env, static') :|: 0 <= a2 && 0 < o2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_18(o2, env, static) -{0,0}> langle_clinit_rangle_New_20(o2, env, static) :|: 0 < o2
langle_clinit_rangle_New_20(o2, env, static) -{0,0}> langle_clinit_rangle_New_22(o2, env, static) :|: 0 < o2 && 0 <= static
langle_clinit_rangle_New_22(o2, env, static) -{1,1}> langle_clinit_rangle_Duplicate_30(o4, o2, env, static) :|: o4 = 1 && 0 < o2 && 0 < o4
langle_clinit_rangle_Duplicate_30(o4, o2, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_31(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_clinit_rangle_ConstantStackPush_31(o4, o2, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_33(o4, NULL, o2, env, static) :|: NULL = 0 && 0 < o2 && 0 < o4
langle_clinit_rangle_InvokeMethod_33(o4, NULL, o2, env, static) -{1,1}> langle_init_rangle_Load_35(o4, o2, env, static) :|: NULL = 0 && 0 < o2 && 0 < o4
langle_init_rangle_Load_35(o4, o2, env, static) -{1,1}> langle_init_rangle_InvokeMethod_38(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_InvokeMethod_38(o4, o2, env, static) -{1,1}> langle_init_rangle_Load_41(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_Load_41(o4, o2, env, static) -{1,1}> langle_init_rangle_InvokeMethod_43(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_InvokeMethod_43(o4, o2, env, static) -{1,1}> langle_init_rangle_Return_46(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_Return_46(o4, o2, env, static) -{1,1}> langle_init_rangle_Return_48(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_init_rangle_Return_48(o4, o2, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_49(o4, o2, env, static) :|: 0 < o2 && 0 < o4
langle_clinit_rangle_FieldAccess_49(o4, o2, env, static) -{1,1}> langle_clinit_rangle_Return_52(o2, env, static') :|: 0 < o2 && 0 <= o4 && 0 < o4 && 0 <= static && static' <= static + o4
langle_clinit_rangle_Return_52(o2, env, static) -{1,1}> main_Load_57(o2, env, static) :|: 0 < o2
main_Load_57(o2, env, static) -{0,0}> main_Load_58(o2, env, static) :|: 0 < o2
main_Load_58(o2, env, static) -{0,0}> main_Load_61(o2, env, static) :|: 0 < o2 && 0 <= static
main_Load_61(o2, env, static) -{0,0}> main_Load_62(o2, env, static) :|: 0 < o2
main_Load_62(o2, env, static) -{0,0}> main_Load_63(o2, env, static) :|: 0 < o2
main_Load_63(o2, env, static) -{1,1}> main_FieldAccess_65(o2, env, static) :|: 0 < o2
main_FieldAccess_65(o2, env, static) -{0,0}> main_FieldAccess_67(o2, env, static) :|: 0 < o2
main_FieldAccess_67(o2, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_69(o2, NULL, iconst_0, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0
langle_clinit_rangle_ConstantStackPush_69(o2, NULL, iconst_0, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_70(iconst_0, o2, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0
langle_clinit_rangle_FieldAccess_70(iconst_0, o2, NULL, env, static) -{1,1}> langle_clinit_rangle_Return_71(o2, NULL, iconst_0, env, static') :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 <= static && static' <= static + iconst_0
langle_clinit_rangle_Return_71(o2, NULL, iconst_0, env, static) -{1,1}> main_FieldAccess_72(o2, NULL, iconst_0, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0
main_FieldAccess_72(o2, NULL, iconst_0, env, static) -{1,1}> main_New_73(o2, iconst_0, env, static') :|: NULL = 0 && 0 < o2 && 0 <= o2 && iconst_0 = 0 && 0 <= static && static' <= static + o2
main_New_73(o2, iconst_0, env, static) -{1,1}> main_Duplicate_74(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && o7 = 1 && iconst_0 = 0 && 0 < o7
main_Duplicate_74(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_InvokeMethod_75(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_InvokeMethod_75(o2, o7, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Load_76(o7, o2, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
langle_init_rangle_Load_76(o7, o2, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_InvokeMethod_78(o7, o2, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
langle_init_rangle_InvokeMethod_78(o7, o2, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Return_80(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
langle_init_rangle_Return_80(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_Store_83(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_Store_83(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_Load_84(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_Load_84(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_New_85(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_New_85(o2, o7, iconst_0, NULL, env, static) -{0,0}> main_New_86(o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7
main_New_86(o2, o7, iconst_0, NULL, env, static) -{1,1}> main_Duplicate_87(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && o8 = 1 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_Duplicate_87(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> main_InvokeMethod_88(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_InvokeMethod_88(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Load_89(o8, o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
langle_init_rangle_Load_89(o8, o2, o7, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_InvokeMethod_90(o8, o2, o7, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
langle_init_rangle_InvokeMethod_90(o8, o2, o7, iconst_0, NULL, env, static) -{1,1}> langle_init_rangle_Return_91(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
langle_init_rangle_Return_91(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> main_FieldAccess_92(o2, o7, o8, iconst_0, NULL, env, static) :|: NULL = 0 && 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_FieldAccess_92(o2, o7, o8, iconst_0, NULL, env, static) -{1,1}> main_Load_95(o2, o7', iconst_0, o8, env, static) :|: NULL = 0 && 0 < o2 && o7' = o7 + o8 && iconst_0 = 0 && o7' <= o7 + o8 && 0 < o7' && 0 < o7 && 0 < o8
main_Load_95(o2, o7, iconst_0, o8, env, static) -{1,1}> main_New_98(o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_New_98(o2, o7, iconst_0, o8, env, static) -{0,0}> main_New_100(o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o7 && 0 < o8
main_New_100(o2, o7, iconst_0, o8, env, static) -{1,1}> main_Duplicate_103(o2, o7, o10, iconst_0, o8, env, static) :|: o10 = 1 && 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
main_Duplicate_103(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> main_InvokeMethod_105(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
main_InvokeMethod_105(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Load_107(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Load_107(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_InvokeMethod_115(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_InvokeMethod_115(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Load_117(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Load_117(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_InvokeMethod_119(o10, o2, o7, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_InvokeMethod_119(o10, o2, o7, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Return_120(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Return_120(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> langle_init_rangle_Return_122(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
langle_init_rangle_Return_122(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> main_FieldAccess_123(o2, o7, o10, iconst_0, o8, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7 && 0 < o8
main_FieldAccess_123(o2, o7, o10, iconst_0, o8, env, static) -{1,1}> main_Load_126(o2, o7', iconst_0, o10, env, static) :|: 0 < o2 && o7' = o7 + o10 + -1 * o8 && o7' <= o7 + o10 && iconst_0 = 0 && 0 < o10 && 0 < o7' && 0 < o7 && 0 < o8
main_Load_126(o2, o7, iconst_0, o10, env, static) -{1,1}> main_InvokeMethod_128(o2, o7, iconst_0, o10, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7
main_InvokeMethod_128(o2, o7, iconst_0, o10, env, static) -{1,1}> eval_InvokeMethod_129(o7, o2, iconst_0, o10, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7
eval_InvokeMethod_129(o7, o2, iconst_0, o10, env, static) -{1,1}> random_FieldAccess_130(o7, o2, iconst_0, o10, env, static) :|: 0 < o2 && iconst_0 = 0 && 0 < o10 && 0 < o7
random_FieldAccess_130(o7, o2, iconst_0, o10, env, static) -{1,1}> random_FieldAccess_131(o2, o7, iconst_0, o10, env, static) :|: 0 < o2 && o2 <= static && 0 <= o2 && iconst_0 = 0 && 0 <= static && 0 < o10 && 0 < o7
random_FieldAccess_131(o2, o7, iconst_0, o10, env, static) -{1,1}> random_ArrayAccess_132(o2, iconst_0, o7, o10, env, static) :|: 0 < o2 && -1 * static <= iconst_0 && iconst_0 = 0 && 0 <= static && 0 < o10 && iconst_0 <= static && 0 < o7
random_ArrayAccess_132(a6, iconst_0, o7, o10, env, static) -{0,0}> random_ArrayAccess_134(a6, iconst_0, o7, i3, o10, env, static) :|: i3 < a6 && 0 <= i3 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7
random_ArrayAccess_134(a6, iconst_0, o7, i4, o10, env, static) -{0,0}> random_ArrayAccess_137(a6, iconst_0, o7, i4, o10, env, static) :|: iconst_0 = 0 && 0 <= i4 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_ArrayAccess_137(a6, iconst_0, o7, i4, o10, env, static) -{1,1}> random_Store_141(o18, o7, a6, iconst_0, o10, i4, env, static) :|: iconst_0 < i4 && 0 <= o18 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4 && o18 < a6
random_Store_141(o18, o7, a6, iconst_0, o10, i4, env, static) -{1,1}> random_FieldAccess_143(o18, o7, a6, iconst_0, o10, i4, env, static) :|: 0 <= o18 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_FieldAccess_143(o18, o7, a6, iconst_0, o10, i4, env, static) -{1,1}> random_ConstantStackPush_147(iconst_0, o18, o7, a6, o10, i4, env, static) :|: -1 * static <= iconst_0 && 0 <= o18 && iconst_0 = 0 && 0 <= static && 0 < a6 && 0 < o10 && iconst_0 <= static && 0 < o7 && 1 <= i4
random_ConstantStackPush_147(iconst_0, o18, o7, a6, o10, i4, env, static) -{1,1}> random_IntArithmetic_150(iconst_0, iconst_1, o18, o7, a6, o10, i4, env, static) :|: 0 <= o18 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_IntArithmetic_150(iconst_0, iconst_1, o18, o7, a6, o10, i4, env, static) -{1,1}> random_FieldAccess_152(iconst_1, o18, o7, a6, iconst_0, o10, i4, env, static) :|: 0 <= o18 && iconst_1 = 1 && iconst_0 = 0 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_FieldAccess_152(iconst_1, o18, o7, a6, iconst_0, o10, i4, env, static) -{1,1}> random_Load_158(o18, o7, a6, iconst_1, o10, i4, env, static') :|: 0 <= o18 && iconst_1 = 1 && iconst_0 = 0 && 0 <= static && 0 < a6 && 0 < o10 && static' <= static + iconst_1 && 0 < o7 && 1 <= i4
random_Load_158(o18, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> random_InvokeMethod_163(o18, o7, a6, iconst_1, o10, i4, env, static) :|: 0 <= o18 && iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_InvokeMethod_163(o21, o7, a6, iconst_1, o10, i4, env, static) -{0,0}> random_InvokeMethod_169(o21, o7, a6, iconst_1, o10, i4, env, static) :|: 0 <= o21 && iconst_1 = 1 && 0 < o21 && 0 < a6 && 0 < o10 && 0 < o7 && 1 <= i4
random_InvokeMethod_169(o21, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> random_Return_173(i7, o7, a6, iconst_1, o10, i4, env, static) :|: i7 <= o21 && iconst_1 = 1 && 0 < o21 && 0 < a6 && 0 < o10 && 0 <= i7 && 0 < o7 && 1 <= i4
random_Return_173(i7, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_ConstantStackPush_178(i7, o7, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i7 && 0 < o7 && 1 <= i4
eval_ConstantStackPush_178(i7, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_IntArithmetic_181(i7, iconst_100, o7, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && iconst_100 = 100 && 0 < a6 && 0 < o10 && 0 <= i7 && 0 < o7 && 1 <= i4
eval_IntArithmetic_181(i7, iconst_100, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_Store_185(i8, o7, a6, iconst_1, o10, i4, env, static) :|: i8 < iconst_100 && iconst_1 = 1 && iconst_100 = 100 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 <= i7 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_Store_185(i8, o7, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_Load_190(o7, i8, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_Load_190(o7, i8, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_FieldAccess_193(o7, i8, a6, iconst_1, o10, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_FieldAccess_193(o7, i8, a6, iconst_1, o10, i4, env, static) -{1,1}> eval_Load_196(o10, i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && 0 < o7 && i8 <= 99 && 1 <= i4
eval_Load_196(o10, i8, a6, iconst_1, i4, env, static) -{1,1}> eval_InvokeMethod_205(o10, i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && i8 <= 99 && 1 <= i4
eval_InvokeMethod_205(o10, i8, a6, iconst_1, i4, env, static) -{1,1}> test_Load_208(i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 < o10 && 0 <= i8 && i8 <= 99 && 1 <= i4
test_Load_208(i8, a6, iconst_1, i4, env, static) -{1,1}> test_LE_212(i8, a6, iconst_1, i4, env, static) :|: iconst_1 = 1 && 0 < a6 && 0 <= i8 && i8 <= 99 && 1 <= i4
test_LE_212(i10, a6, iconst_1, i4, env, static) -{0,0}> test_LE_222(i10, a6, iconst_1, i4, env, static) :|: 0 <= i10 && 1 <= i10 && i10 <= 99 && iconst_1 = 1 && 0 < a6 && 1 <= i4
test_LE_222(i10, a6, iconst_1, i4, env, static) -{1,1}> test_Inc_230(i10, a6, iconst_1, i4, env, static) :|: 1 <= i10 && 0 < i10 && i10 <= 99 && iconst_1 = 1 && 0 < a6 && 1 <= i4
test_Inc_230(i10, a6, iconst_1, i4, env, static) -{1,1}> test_JMP_250(i13, a6, iconst_1, i4, env, static) :|: 1 <= i10 && i13 <= 98 && i10 <= 99 && iconst_1 = 1 && 0 < a6 && i10 + -1 = i13 && 1 <= i4 && 0 <= i13
test_JMP_250(i13, a6, iconst_1, i4, env, static) -{1,1}> test_Load_278(i13, a6, iconst_1, i4, env, static) :|: i13 <= 98 && iconst_1 = 1 && 0 < a6 && 1 <= i4 && 0 <= i13
test_Load_278(i13, a6, iconst_1, i4, env, static) -{0,0}> test_Load_208(i13, a6, iconst_1, i4, env, static) :|: i13 <= 98 && iconst_1 = 1 && i13 <= 99 && 0 < a6 && 1 <= i4 && 0 <= i13
(13) JBCToGraph (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Constructed TerminationGraph.
(14) Obligation:
Termination Graph based on JBC Program:
ClassAnalysis.ClassAnalysis.main([Ljava/lang/String;)V: Graph of 1328 nodes with 0 SCCs.
(15) TerminationGraphToComplexityProof (EQUIVALENT transformation)
Proven constant complexity by absence of SCCs and edges with non-constant weight
(16) BOUNDS(CONSTANT, 1111)