(0) Obligation:
Need to prove time_complexity of the following program:
public class AG313 {
public static int quot(int x, int y) {
int i = 0;
if(x==0) return 0;
while (x > 0 && y > 0) {
i += 1;
x = (x - 1)- (y - 1);
}
return i;
}
}
(1) JBCToGraph (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Constructed TerminationGraph.
(2) Obligation:
Termination Graph based on JBC Program:
AG313.quot(II)I: Graph of 68 nodes with 1 SCC.
(3) TerminationGraphToComplexityProof (BOTH CONCRETE BOUNDS(ID, ADD(12)) transformation)
Extracted set of 56 edges for the analysis of TIME complexity. Kept leaves.
(4) Obligation:
Set of 56 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 56 jbc graph edges to a weighted ITS with 56 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 56 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_ConstantStackPush_1(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_3(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_3(i1, i4, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_6(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(i1, i4, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_14(a2, i1, i4, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_14(a2, i1, i4, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_17(i1, i4, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_17(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_18(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_New_18(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_19(i1, i4, env, static) :|: 0 <= static
langle_clinit_rangle_New_19(i1, i4, env, static) -{1,1}> langle_clinit_rangle_Duplicate_21(o2, i1, i4, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_21(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_22(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_22(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_25(o2, NULL, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_25(o2, NULL, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_26(o2, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_26(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_28(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_28(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_30(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Load_30(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_36(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_36(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_38(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_38(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_39(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_39(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_Return_43(i1, i4, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_43(i1, i4, env, static) -{1,1}> quot_ConstantStackPush_47(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_47(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_48(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_48(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_51(i1, i4, env, static) :|: 0 <= static
quot_ConstantStackPush_51(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_52(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_52(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_53(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_53(i1, i4, env, static) -{1,1}> quot_Store_54(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_Store_54(i1, i4, iconst_0, env, static) -{1,1}> quot_Load_56(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_Load_56(i1, i4, iconst_0, env, static) -{1,1}> quot_NE_58(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_NE_58(i8, i4, iconst_0, env, static) -{0,0}> quot_NE_61(i8, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_NE_58(iconst_0, i4, iconst_0, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0
quot_NE_61(i8, i4, iconst_0, env, static) -{1,1}> quot_Load_63(i8, i4, iconst_0, env, static) :|: iconst_0 = 0 && !(i8 = 0)
quot_Load_63(i8, i4, iconst_0, env, static) -{1,1}> quot_LE_70(i8, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_70(i16, i4, iconst_0, env, static) -{0,0}> quot_LE_76(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0
quot_LE_76(i16, i4, iconst_0, env, static) -{1,1}> quot_Load_84(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0 && 0 < i16
quot_Load_84(i16, i4, iconst_0, env, static) -{1,1}> quot_LE_90(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0
quot_LE_90(i16, i4, iconst_0, env, static) -{0,0}> quot_LE_169(i16, i4, i16, iconst_0, env, static) :|: 0 <= iconst_0 && 1 <= i16 && iconst_0 <= 1 && iconst_0 = 0
quot_LE_169(i16, i50, i51, i52, env, static) -{0,0}> quot_LE_266(i16, i50, i51, i52, env, static) :|: 0 <= i52 && i52 <= 1 && i52 <= 2 && 1 <= i16 && 1 <= i51
quot_LE_266(i16, i99, i100, i101, env, static) -{0,0}> quot_LE_333(i16, i99, i100, i101, env, static) :|: 0 <= i101 && 1 <= i16 && i101 <= 2 && 1 <= i100
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_333(i16, i147, i138, i139, env, static) -{0,0}> quot_LE_337(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 <= i139 && 1 <= i147
quot_LE_337(i16, i147, i138, i139, env, static) -{1,1}> quot_Inc_341(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 < i147 && 1 <= i147 && 0 <= i139
quot_Inc_341(i16, i147, i138, i139, env, static) -{1,1}> quot_Load_346(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && i139 + 1 = i150 && 1 <= i147 && 0 <= i139
quot_Load_346(i16, i147, i138, i150, env, static) -{1,1}> quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 1 <= i147
quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) -{1,1}> quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) -{1,1}> quot_Load_354(i16, i147, i153, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147 && i138 - iconst_1 = i153
quot_Load_354(i16, i147, i153, i150, env, static) -{1,1}> quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && 1 <= i147
quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) -{1,1}> quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) -{1,1}> quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) :|: 0 <= i154 && i147 - iconst_1 = i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) -{1,1}> quot_Store_363(i16, i147, i155, i150, env, static) :|: 0 <= i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && i153 - i154 = i155 && 1 <= i147
quot_Store_363(i16, i147, i155, i150, env, static) -{1,1}> quot_JMP_365(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_JMP_365(i16, i147, i155, i150, env, static) -{1,1}> quot_Load_367(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_Load_367(i16, i147, i155, i150, env, static) -{1,1}> quot_LE_374(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_LE_374(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_376(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_376(i16, i147, i168, i150, env, static) -{1,1}> quot_Load_384(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 0 < i168 && 1 <= i147
quot_Load_384(i16, i147, i168, i150, env, static) -{1,1}> quot_LE_395(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_395(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 <= i150 && 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
(7) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
obtained
quot_ConstantStackPush_1(
i1,
i4,
env,
static) -{18,18}>
quot_NE_58(
i1,
i4,
0,
env,
static'1) :|:
0 <=
2 &&
static'1 <=
static''' +
1 &&
0 <=
static''' &&
static''' <=
static +
2 &&
0 <
1 &&
0 <=
1 &&
0 <=
static &&
0 <=
static'1 &&
0 <
2 && 0 >= 0
by chaining
quot_ConstantStackPush_1(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_3(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_3(
i1,
i4,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
env,
static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
env,
static) :|:
iconst_0 =
0langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
iconst_0,
env,
static) :|:
a2 =
2 &&
iconst_0 =
0 &&
0 <
a2langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_New_17(
i1,
i4,
env,
static') :|:
0 <=
a2 &&
iconst_0 =
0 &&
static' <=
static +
a2 &&
0 <=
static &&
0 <
a2langle_clinit_rangle_New_17(
i1,
i4,
env,
static) -{0,0}>
langle_clinit_rangle_New_18(
i1,
i4,
env,
static) :|: 0 >= 0
langle_clinit_rangle_New_18(
i1,
i4,
env,
static) -{0,0}>
langle_clinit_rangle_New_19(
i1,
i4,
env,
static) :|:
0 <=
staticlangle_clinit_rangle_New_19(
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_Duplicate_21(
o2,
i1,
i4,
env,
static) :|:
0 <
o2 &&
o2 =
1langle_clinit_rangle_Duplicate_21(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_ConstantStackPush_22(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_clinit_rangle_ConstantStackPush_22(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_InvokeMethod_25(
o2,
NULL,
i1,
i4,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_clinit_rangle_InvokeMethod_25(
o2,
NULL,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Load_26(
o2,
i1,
i4,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_init_rangle_Load_26(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_28(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_28(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Load_30(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_Load_30(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_33(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_33(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Return_36(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_Return_36(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Return_38(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_Return_38(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_39(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_clinit_rangle_FieldAccess_39(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_Return_43(
i1,
i4,
env,
static') :|:
0 <
o2 &&
0 <=
o2 &&
0 <=
static &&
static' <=
static +
o2langle_clinit_rangle_Return_43(
i1,
i4,
env,
static) -{1,1}>
quot_ConstantStackPush_47(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_47(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_48(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_48(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_51(
i1,
i4,
env,
static) :|:
0 <=
staticquot_ConstantStackPush_51(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_52(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_52(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_53(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_53(
i1,
i4,
env,
static) -{1,1}>
quot_Store_54(
i1,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0quot_Store_54(
i1,
i4,
iconst_0,
env,
static) -{1,1}>
quot_Load_56(
i1,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0quot_Load_56(
i1,
i4,
iconst_0,
env,
static) -{1,1}>
quot_NE_58(
i1,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0obtained
quot_NE_58(i8, i4, 0, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0)
by chaining
quot_NE_58(i8, i4, iconst_0, env, static) -{0,0}> quot_NE_61(i8, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_NE_61(i8, i4, iconst_0, env, static) -{1,1}> quot_Load_63(i8, i4, iconst_0, env, static) :|: iconst_0 = 0 && !(i8 = 0)
quot_Load_63(i8, i4, iconst_0, env, static) -{1,1}> quot_LE_70(i8, i4, iconst_0, env, static) :|: iconst_0 = 0
obtained
quot_LE_70(i16, i4, 0, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0
by chaining
quot_LE_70(i16, i4, iconst_0, env, static) -{0,0}> quot_LE_76(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0
quot_LE_76(i16, i4, iconst_0, env, static) -{1,1}> quot_Load_84(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0 && 0 < i16
quot_Load_84(i16, i4, iconst_0, env, static) -{1,1}> quot_LE_90(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0
quot_LE_90(i16, i4, iconst_0, env, static) -{0,0}> quot_LE_169(i16, i4, i16, iconst_0, env, static) :|: 0 <= iconst_0 && 1 <= i16 && iconst_0 <= 1 && iconst_0 = 0
quot_LE_169(i16, i50, i51, i52, env, static) -{0,0}> quot_LE_266(i16, i50, i51, i52, env, static) :|: 0 <= i52 && i52 <= 1 && i52 <= 2 && 1 <= i16 && 1 <= i51
quot_LE_266(i16, i99, i100, i101, env, static) -{0,0}> quot_LE_333(i16, i99, i100, i101, env, static) :|: 0 <= i101 && 1 <= i16 && i101 <= 2 && 1 <= i100
obtained
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
by chaining
quot_LE_333(i16, i147, i138, i139, env, static) -{0,0}> quot_LE_337(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 <= i139 && 1 <= i147
quot_LE_337(i16, i147, i138, i139, env, static) -{1,1}> quot_Inc_341(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 < i147 && 1 <= i147 && 0 <= i139
quot_Inc_341(i16, i147, i138, i139, env, static) -{1,1}> quot_Load_346(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && i139 + 1 = i150 && 1 <= i147 && 0 <= i139
quot_Load_346(i16, i147, i138, i150, env, static) -{1,1}> quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 1 <= i147
quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) -{1,1}> quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) -{1,1}> quot_Load_354(i16, i147, i153, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147 && i138 - iconst_1 = i153
quot_Load_354(i16, i147, i153, i150, env, static) -{1,1}> quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && 1 <= i147
quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) -{1,1}> quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) -{1,1}> quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) :|: 0 <= i154 && i147 - iconst_1 = i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) -{1,1}> quot_Store_363(i16, i147, i155, i150, env, static) :|: 0 <= i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && i153 - i154 = i155 && 1 <= i147
quot_Store_363(i16, i147, i155, i150, env, static) -{1,1}> quot_JMP_365(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_JMP_365(i16, i147, i155, i150, env, static) -{1,1}> quot_Load_367(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_Load_367(i16, i147, i155, i150, env, static) -{1,1}> quot_LE_374(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
obtained
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
by chaining
quot_LE_374(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_376(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_376(i16, i147, i168, i150, env, static) -{1,1}> quot_Load_384(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 0 < i168 && 1 <= i147
quot_Load_384(i16, i147, i168, i150, env, static) -{1,1}> quot_LE_395(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_395(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 <= i150 && 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
(8) Obligation:
IntTrs with 9 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
quot_NE_58(iconst_0, i4, iconst_0, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0
quot_NE_58(i8, i4, 0, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0)
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_70(i16, i4, 0, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
(9) MovedArithmeticToConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from lhss to constraints.
quot_LE_70(i16, i4, 0, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0
was transformed to
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
quot_NE_58(i8, i4, 0, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0)
was transformed to
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0) && x = 0
(10) Obligation:
IntTrs with 9 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_NE_58(iconst_0, i4, iconst_0, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0) && x = 0
(11) LinearizedLhssProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Linearized lhss.
quot_NE_58(iconst_0, i4, iconst_0, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0
was transformed to
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
(12) Obligation:
IntTrs with 9 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0) && x = 0
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
(13) RemoveDivModProof (CONCRETE UPPER BOUND(ID) transformation)
Removed div and mod.
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0) && x = 0
was transformed to
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 < 0 && x = 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 > 0 && x = 0
(14) Obligation:
IntTrs with 10 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 < 0 && x = 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 > 0 && x = 0
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
(15) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from constraints to rhss.
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
was transformed to
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, 0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
was transformed to
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i153' - i147 - 1, i139 + 1, env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
was transformed to
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
(16) Obligation:
IntTrs with 10 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, 0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i153' - i147 - 1, i139 + 1, env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 > 0 && x = 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 < 0 && x = 0
(17) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Simplified expressions.
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
was transformed to
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 1 <= i16 && 0 < i16 && x = 0
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
was transformed to
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 <= static && 0 <= static'1
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i153' - i147 - 1, i139 + 1, env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
was transformed to
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i153' + -1 * i147 + 1, i139 + 1, env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' + -1 * i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 > 0 && x = 0
was transformed to
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: 0 < i8 && x = 0
(18) Obligation:
IntTrs with 10 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 1 <= i16 && 0 < i16 && x = 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i153' + -1 * i147 + 1, i139 + 1, env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' + -1 * i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 <= static && 0 <= static'1
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, 0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 < 0 && x = 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: 0 < i8 && x = 0
(19) CESProof (EQUIVALENT transformation)
proved upper bound max(34, 34 + 14 * #0 + -14 * #1) using cofloco
(20) BOUNDS(CONSTANT, max(34, 34 + 14 * #0 + -14 * #1))
(21) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)
Transformed 56 jbc graph edges to a weighted ITS with 56 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.
(22) Obligation:
IntTrs with 56 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_ConstantStackPush_1(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_3(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_3(i1, i4, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_6(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(i1, i4, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_14(a2, i1, i4, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_14(a2, i1, i4, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_17(i1, i4, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_17(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_18(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_New_18(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_19(i1, i4, env, static) :|: 0 <= static
langle_clinit_rangle_New_19(i1, i4, env, static) -{1,1}> langle_clinit_rangle_Duplicate_21(o2, i1, i4, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_21(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_22(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_22(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_25(o2, NULL, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_25(o2, NULL, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_26(o2, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_26(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_28(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_28(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_30(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Load_30(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_36(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_36(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_38(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_38(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_39(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_39(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_Return_43(i1, i4, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_43(i1, i4, env, static) -{1,1}> quot_ConstantStackPush_47(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_47(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_48(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_48(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_51(i1, i4, env, static) :|: 0 <= static
quot_ConstantStackPush_51(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_52(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_52(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_53(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_53(i1, i4, env, static) -{1,1}> quot_Store_54(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_Store_54(i1, i4, iconst_0, env, static) -{1,1}> quot_Load_56(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_Load_56(i1, i4, iconst_0, env, static) -{1,1}> quot_NE_58(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_NE_58(i8, i4, iconst_0, env, static) -{0,0}> quot_NE_61(i8, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_NE_58(iconst_0, i4, iconst_0, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0
quot_NE_61(i8, i4, iconst_0, env, static) -{1,1}> quot_Load_63(i8, i4, iconst_0, env, static) :|: iconst_0 = 0 && !(i8 = 0)
quot_Load_63(i8, i4, iconst_0, env, static) -{1,1}> quot_LE_70(i8, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_70(i16, i4, iconst_0, env, static) -{0,0}> quot_LE_76(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0
quot_LE_76(i16, i4, iconst_0, env, static) -{1,1}> quot_Load_84(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0 && 0 < i16
quot_Load_84(i16, i4, iconst_0, env, static) -{1,1}> quot_LE_90(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0
quot_LE_90(i16, i4, iconst_0, env, static) -{0,0}> quot_LE_169(i16, i4, i16, iconst_0, env, static) :|: 0 <= iconst_0 && 1 <= i16 && iconst_0 <= 1 && iconst_0 = 0
quot_LE_169(i16, i50, i51, i52, env, static) -{0,0}> quot_LE_266(i16, i50, i51, i52, env, static) :|: 0 <= i52 && i52 <= 1 && i52 <= 2 && 1 <= i16 && 1 <= i51
quot_LE_266(i16, i99, i100, i101, env, static) -{0,0}> quot_LE_333(i16, i99, i100, i101, env, static) :|: 0 <= i101 && 1 <= i16 && i101 <= 2 && 1 <= i100
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_333(i16, i147, i138, i139, env, static) -{0,0}> quot_LE_337(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 <= i139 && 1 <= i147
quot_LE_337(i16, i147, i138, i139, env, static) -{1,1}> quot_Inc_341(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 < i147 && 1 <= i147 && 0 <= i139
quot_Inc_341(i16, i147, i138, i139, env, static) -{1,1}> quot_Load_346(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && i139 + 1 = i150 && 1 <= i147 && 0 <= i139
quot_Load_346(i16, i147, i138, i150, env, static) -{1,1}> quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 1 <= i147
quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) -{1,1}> quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) -{1,1}> quot_Load_354(i16, i147, i153, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147 && i138 - iconst_1 = i153
quot_Load_354(i16, i147, i153, i150, env, static) -{1,1}> quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && 1 <= i147
quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) -{1,1}> quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) -{1,1}> quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) :|: 0 <= i154 && i147 - iconst_1 = i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) -{1,1}> quot_Store_363(i16, i147, i155, i150, env, static) :|: 0 <= i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && i153 - i154 = i155 && 1 <= i147
quot_Store_363(i16, i147, i155, i150, env, static) -{1,1}> quot_JMP_365(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_JMP_365(i16, i147, i155, i150, env, static) -{1,1}> quot_Load_367(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_Load_367(i16, i147, i155, i150, env, static) -{1,1}> quot_LE_374(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_LE_374(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_376(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_376(i16, i147, i168, i150, env, static) -{1,1}> quot_Load_384(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 0 < i168 && 1 <= i147
quot_Load_384(i16, i147, i168, i150, env, static) -{1,1}> quot_LE_395(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_395(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 <= i150 && 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
(23) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
obtained
quot_ConstantStackPush_1(
i1,
i4,
env,
static) -{18,18}>
quot_NE_58(
i1,
i4,
0,
env,
static'1) :|:
0 <=
2 &&
static'1 <=
static''' +
1 &&
0 <=
static''' &&
static''' <=
static +
2 &&
0 <
1 &&
0 <=
1 &&
0 <=
static &&
0 <=
static'1 &&
0 <
2 && 0 >= 0
by chaining
quot_ConstantStackPush_1(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_3(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_3(
i1,
i4,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
env,
static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
env,
static) :|:
iconst_0 =
0langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
iconst_0,
env,
static) :|:
a2 =
2 &&
iconst_0 =
0 &&
0 <
a2langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_New_17(
i1,
i4,
env,
static') :|:
0 <=
a2 &&
iconst_0 =
0 &&
static' <=
static +
a2 &&
0 <=
static &&
0 <
a2langle_clinit_rangle_New_17(
i1,
i4,
env,
static) -{0,0}>
langle_clinit_rangle_New_18(
i1,
i4,
env,
static) :|: 0 >= 0
langle_clinit_rangle_New_18(
i1,
i4,
env,
static) -{0,0}>
langle_clinit_rangle_New_19(
i1,
i4,
env,
static) :|:
0 <=
staticlangle_clinit_rangle_New_19(
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_Duplicate_21(
o2,
i1,
i4,
env,
static) :|:
0 <
o2 &&
o2 =
1langle_clinit_rangle_Duplicate_21(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_ConstantStackPush_22(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_clinit_rangle_ConstantStackPush_22(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_InvokeMethod_25(
o2,
NULL,
i1,
i4,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_clinit_rangle_InvokeMethod_25(
o2,
NULL,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Load_26(
o2,
i1,
i4,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_init_rangle_Load_26(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_28(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_28(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Load_30(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_Load_30(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_33(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_33(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Return_36(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_Return_36(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Return_38(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_Return_38(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_39(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_clinit_rangle_FieldAccess_39(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_Return_43(
i1,
i4,
env,
static') :|:
0 <
o2 &&
0 <=
o2 &&
0 <=
static &&
static' <=
static +
o2langle_clinit_rangle_Return_43(
i1,
i4,
env,
static) -{1,1}>
quot_ConstantStackPush_47(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_47(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_48(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_48(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_51(
i1,
i4,
env,
static) :|:
0 <=
staticquot_ConstantStackPush_51(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_52(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_52(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_53(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_53(
i1,
i4,
env,
static) -{1,1}>
quot_Store_54(
i1,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0quot_Store_54(
i1,
i4,
iconst_0,
env,
static) -{1,1}>
quot_Load_56(
i1,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0quot_Load_56(
i1,
i4,
iconst_0,
env,
static) -{1,1}>
quot_NE_58(
i1,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0obtained
quot_NE_58(i8, i4, 0, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0)
by chaining
quot_NE_58(i8, i4, iconst_0, env, static) -{0,0}> quot_NE_61(i8, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_NE_61(i8, i4, iconst_0, env, static) -{1,1}> quot_Load_63(i8, i4, iconst_0, env, static) :|: iconst_0 = 0 && !(i8 = 0)
quot_Load_63(i8, i4, iconst_0, env, static) -{1,1}> quot_LE_70(i8, i4, iconst_0, env, static) :|: iconst_0 = 0
obtained
quot_LE_70(i16, i4, 0, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0
by chaining
quot_LE_70(i16, i4, iconst_0, env, static) -{0,0}> quot_LE_76(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0
quot_LE_76(i16, i4, iconst_0, env, static) -{1,1}> quot_Load_84(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0 && 0 < i16
quot_Load_84(i16, i4, iconst_0, env, static) -{1,1}> quot_LE_90(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0
quot_LE_90(i16, i4, iconst_0, env, static) -{0,0}> quot_LE_169(i16, i4, i16, iconst_0, env, static) :|: 0 <= iconst_0 && 1 <= i16 && iconst_0 <= 1 && iconst_0 = 0
quot_LE_169(i16, i50, i51, i52, env, static) -{0,0}> quot_LE_266(i16, i50, i51, i52, env, static) :|: 0 <= i52 && i52 <= 1 && i52 <= 2 && 1 <= i16 && 1 <= i51
quot_LE_266(i16, i99, i100, i101, env, static) -{0,0}> quot_LE_333(i16, i99, i100, i101, env, static) :|: 0 <= i101 && 1 <= i16 && i101 <= 2 && 1 <= i100
obtained
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
by chaining
quot_LE_333(i16, i147, i138, i139, env, static) -{0,0}> quot_LE_337(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 <= i139 && 1 <= i147
quot_LE_337(i16, i147, i138, i139, env, static) -{1,1}> quot_Inc_341(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 < i147 && 1 <= i147 && 0 <= i139
quot_Inc_341(i16, i147, i138, i139, env, static) -{1,1}> quot_Load_346(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && i139 + 1 = i150 && 1 <= i147 && 0 <= i139
quot_Load_346(i16, i147, i138, i150, env, static) -{1,1}> quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 1 <= i147
quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) -{1,1}> quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) -{1,1}> quot_Load_354(i16, i147, i153, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147 && i138 - iconst_1 = i153
quot_Load_354(i16, i147, i153, i150, env, static) -{1,1}> quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && 1 <= i147
quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) -{1,1}> quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) -{1,1}> quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) :|: 0 <= i154 && i147 - iconst_1 = i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) -{1,1}> quot_Store_363(i16, i147, i155, i150, env, static) :|: 0 <= i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && i153 - i154 = i155 && 1 <= i147
quot_Store_363(i16, i147, i155, i150, env, static) -{1,1}> quot_JMP_365(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_JMP_365(i16, i147, i155, i150, env, static) -{1,1}> quot_Load_367(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_Load_367(i16, i147, i155, i150, env, static) -{1,1}> quot_LE_374(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
obtained
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
by chaining
quot_LE_374(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_376(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_376(i16, i147, i168, i150, env, static) -{1,1}> quot_Load_384(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 0 < i168 && 1 <= i147
quot_Load_384(i16, i147, i168, i150, env, static) -{1,1}> quot_LE_395(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_395(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 <= i150 && 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
(24) Obligation:
IntTrs with 9 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
quot_NE_58(iconst_0, i4, iconst_0, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0
quot_NE_58(i8, i4, 0, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0)
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_70(i16, i4, 0, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
(25) MovedArithmeticToConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from lhss to constraints.
quot_LE_70(i16, i4, 0, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0
was transformed to
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
quot_NE_58(i8, i4, 0, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0)
was transformed to
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0) && x = 0
(26) Obligation:
IntTrs with 9 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_NE_58(iconst_0, i4, iconst_0, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0) && x = 0
(27) LinearizedLhssProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Linearized lhss.
quot_NE_58(iconst_0, i4, iconst_0, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0
was transformed to
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
(28) Obligation:
IntTrs with 9 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0) && x = 0
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
(29) RemoveDivModProof (CONCRETE UPPER BOUND(ID) transformation)
Removed div and mod.
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: !(i8 = 0) && x = 0
was transformed to
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 < 0 && x = 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 > 0 && x = 0
(30) Obligation:
IntTrs with 10 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 < 0 && x = 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 > 0 && x = 0
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
(31) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from constraints to rhss.
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, iconst_0, env, static) :|: i15 <= -1 && iconst_0 = 0
was transformed to
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, 0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
was transformed to
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i153' - i147 - 1, i139 + 1, env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(iconst_0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
was transformed to
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
(32) Obligation:
IntTrs with 10 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, 0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i153' - i147 - 1, i139 + 1, env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 > 0 && x = 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 < 0 && x = 0
(33) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Simplified expressions.
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 0 <= 2 && 1 <= i16 && 0 < i16 && 0 <= 1 && 0 <= 0 && x = 0
was transformed to
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 1 <= i16 && 0 < i16 && x = 0
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: 0 <= 2 && static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 < 1 && 0 <= 1 && 0 <= static && 0 <= static'1 && 0 < 2 && 0 >= 0
was transformed to
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 <= static && 0 <= static'1
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i153' - i147 - 1, i139 + 1, env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
was transformed to
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i153' + -1 * i147 + 1, i139 + 1, env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' + -1 * i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 > 0 && x = 0
was transformed to
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: 0 < i8 && x = 0
(34) Obligation:
IntTrs with 10 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
quot_LE_70(i16, i4, x, env, static) -{2,2}> quot_LE_333(i16, i4, i16, 0, env, static) :|: 1 <= i16 && 0 < i16 && x = 0
quot_LE_374(i16, i147, i168, i150, env, static) -{2,2}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 < i168 && 1 <= i147 && 1 <= i16 && 1 <= i150 && 1 <= i168 && 0 <= i150
quot_LE_333(i16, i147, i138, i139, env, static) -{12,12}> quot_LE_374(i16, i147, i153' + -1 * i147 + 1, i139 + 1, env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i150' && 1 <= i16 && 1 <= i138 && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' + -1 * i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_ConstantStackPush_1(i1, i4, env, static) -{18,18}> quot_NE_58(i1, i4, 0, env, static'1) :|: static'1 <= static''' + 1 && 0 <= static''' && static''' <= static + 2 && 0 <= static && 0 <= static'1
quot_LE_333(i16, i146, i138, i139, env, static) -{0,0}> quot_LE_336(i16, i146, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && i146 <= 0 && 0 <= i139
quot_NE_58(iconst_0, i4, x, env, static) -{0,0}> quot_NE_62(0, i4, env, static) :|: iconst_0 = 0 && x = iconst_0
quot_LE_70(i15, i4, iconst_0, env, static) -{0,0}> quot_LE_75(i15, i4, 0, env, static) :|: i15 <= -1 && iconst_0 = 0
quot_LE_374(i16, i147, i167, i150, env, static) -{0,0}> quot_LE_375(i16, i147, i167, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147 && i167 <= 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: i8 < 0 && x = 0
quot_NE_58(i8, i4, x, env, static) -{2,2}> quot_LE_70(i8, i4, 0, env, static) :|: 0 < i8 && x = 0
(35) TerminationGraphToComplexityProof (BOTH CONCRETE BOUNDS(ID, ADD(12)) transformation)
Extracted set of 52 edges for the analysis of TIME complexity. Dropped leaves.
(36) Obligation:
Set of 52 edges based on JBC Program.
Performed SCC analyses:
- Used field analysis yielded the following read fields:
Considered paths: all paths from start
(37) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)
Transformed 52 jbc graph edges to a weighted ITS with 52 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.
(38) Obligation:
IntTrs with 52 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: all paths from start
Rules:
quot_ConstantStackPush_1(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_3(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_3(i1, i4, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_6(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(i1, i4, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_14(a2, i1, i4, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_14(a2, i1, i4, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_17(i1, i4, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_17(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_18(i1, i4, env, static) :|: 0 >= 0
langle_clinit_rangle_New_18(i1, i4, env, static) -{0,0}> langle_clinit_rangle_New_19(i1, i4, env, static) :|: 0 <= static
langle_clinit_rangle_New_19(i1, i4, env, static) -{1,1}> langle_clinit_rangle_Duplicate_21(o2, i1, i4, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_21(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_22(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_22(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_25(o2, NULL, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_25(o2, NULL, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_26(o2, i1, i4, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_26(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_28(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_28(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Load_30(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Load_30(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_33(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_36(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_36(o2, i1, i4, env, static) -{1,1}> langle_init_rangle_Return_38(o2, i1, i4, env, static) :|: 0 < o2
langle_init_rangle_Return_38(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_39(o2, i1, i4, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_39(o2, i1, i4, env, static) -{1,1}> langle_clinit_rangle_Return_43(i1, i4, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_43(i1, i4, env, static) -{1,1}> quot_ConstantStackPush_47(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_47(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_48(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_48(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_51(i1, i4, env, static) :|: 0 <= static
quot_ConstantStackPush_51(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_52(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_52(i1, i4, env, static) -{0,0}> quot_ConstantStackPush_53(i1, i4, env, static) :|: 0 >= 0
quot_ConstantStackPush_53(i1, i4, env, static) -{1,1}> quot_Store_54(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_Store_54(i1, i4, iconst_0, env, static) -{1,1}> quot_Load_56(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_Load_56(i1, i4, iconst_0, env, static) -{1,1}> quot_NE_58(i1, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_NE_58(i8, i4, iconst_0, env, static) -{0,0}> quot_NE_61(i8, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_NE_61(i8, i4, iconst_0, env, static) -{1,1}> quot_Load_63(i8, i4, iconst_0, env, static) :|: iconst_0 = 0 && !(i8 = 0)
quot_Load_63(i8, i4, iconst_0, env, static) -{1,1}> quot_LE_70(i8, i4, iconst_0, env, static) :|: iconst_0 = 0
quot_LE_70(i16, i4, iconst_0, env, static) -{0,0}> quot_LE_76(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0
quot_LE_76(i16, i4, iconst_0, env, static) -{1,1}> quot_Load_84(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0 && 0 < i16
quot_Load_84(i16, i4, iconst_0, env, static) -{1,1}> quot_LE_90(i16, i4, iconst_0, env, static) :|: 1 <= i16 && iconst_0 = 0
quot_LE_90(i16, i4, iconst_0, env, static) -{0,0}> quot_LE_169(i16, i4, i16, iconst_0, env, static) :|: 0 <= iconst_0 && 1 <= i16 && iconst_0 <= 1 && iconst_0 = 0
quot_LE_169(i16, i50, i51, i52, env, static) -{0,0}> quot_LE_266(i16, i50, i51, i52, env, static) :|: 0 <= i52 && i52 <= 1 && i52 <= 2 && 1 <= i16 && 1 <= i51
quot_LE_266(i16, i99, i100, i101, env, static) -{0,0}> quot_LE_333(i16, i99, i100, i101, env, static) :|: 0 <= i101 && 1 <= i16 && i101 <= 2 && 1 <= i100
quot_LE_333(i16, i147, i138, i139, env, static) -{0,0}> quot_LE_337(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 <= i139 && 1 <= i147
quot_LE_337(i16, i147, i138, i139, env, static) -{1,1}> quot_Inc_341(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 < i147 && 1 <= i147 && 0 <= i139
quot_Inc_341(i16, i147, i138, i139, env, static) -{1,1}> quot_Load_346(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && i139 + 1 = i150 && 1 <= i147 && 0 <= i139
quot_Load_346(i16, i147, i138, i150, env, static) -{1,1}> quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 1 <= i147
quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) -{1,1}> quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) -{1,1}> quot_Load_354(i16, i147, i153, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147 && i138 - iconst_1 = i153
quot_Load_354(i16, i147, i153, i150, env, static) -{1,1}> quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && 1 <= i147
quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) -{1,1}> quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) -{1,1}> quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) :|: 0 <= i154 && i147 - iconst_1 = i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) -{1,1}> quot_Store_363(i16, i147, i155, i150, env, static) :|: 0 <= i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && i153 - i154 = i155 && 1 <= i147
quot_Store_363(i16, i147, i155, i150, env, static) -{1,1}> quot_JMP_365(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_JMP_365(i16, i147, i155, i150, env, static) -{1,1}> quot_Load_367(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_Load_367(i16, i147, i155, i150, env, static) -{1,1}> quot_LE_374(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_LE_374(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_376(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_376(i16, i147, i168, i150, env, static) -{1,1}> quot_Load_384(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 0 < i168 && 1 <= i147
quot_Load_384(i16, i147, i168, i150, env, static) -{1,1}> quot_LE_395(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_395(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 <= i150 && 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
(39) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
obtained
quot_ConstantStackPush_1(
i1,
i4,
env,
static) -{22,22}>
quot_LE_333(
i1,
i4,
i1,
0,
env,
static'1) :|: 0 >= 0 &&
1 <=
i1 &&
0 <
i1 &&
0 <=
2 &&
0 <
2 &&
0 <=
0 &&
0 <=
static'1 &&
0 <=
static &&
0 <
1 &&
static''' <=
static +
2 &&
0 <=
1 &&
0 <=
static''' &&
static'1 <=
static''' +
1 && !(
i1 =
0)
by chaining
quot_ConstantStackPush_1(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_3(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_3(
i1,
i4,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
env,
static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
env,
static) :|:
iconst_0 =
0langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
iconst_0,
env,
static) :|:
a2 =
2 &&
iconst_0 =
0 &&
0 <
a2langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_New_17(
i1,
i4,
env,
static') :|:
0 <=
a2 &&
iconst_0 =
0 &&
static' <=
static +
a2 &&
0 <=
static &&
0 <
a2langle_clinit_rangle_New_17(
i1,
i4,
env,
static) -{0,0}>
langle_clinit_rangle_New_18(
i1,
i4,
env,
static) :|: 0 >= 0
langle_clinit_rangle_New_18(
i1,
i4,
env,
static) -{0,0}>
langle_clinit_rangle_New_19(
i1,
i4,
env,
static) :|:
0 <=
staticlangle_clinit_rangle_New_19(
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_Duplicate_21(
o2,
i1,
i4,
env,
static) :|:
0 <
o2 &&
o2 =
1langle_clinit_rangle_Duplicate_21(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_ConstantStackPush_22(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_clinit_rangle_ConstantStackPush_22(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_InvokeMethod_25(
o2,
NULL,
i1,
i4,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_clinit_rangle_InvokeMethod_25(
o2,
NULL,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Load_26(
o2,
i1,
i4,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_init_rangle_Load_26(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_28(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_28(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Load_30(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_Load_30(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_33(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_33(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Return_36(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_Return_36(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_init_rangle_Return_38(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_init_rangle_Return_38(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_39(
o2,
i1,
i4,
env,
static) :|:
0 <
o2langle_clinit_rangle_FieldAccess_39(
o2,
i1,
i4,
env,
static) -{1,1}>
langle_clinit_rangle_Return_43(
i1,
i4,
env,
static') :|:
0 <
o2 &&
0 <=
o2 &&
0 <=
static &&
static' <=
static +
o2langle_clinit_rangle_Return_43(
i1,
i4,
env,
static) -{1,1}>
quot_ConstantStackPush_47(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_47(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_48(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_48(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_51(
i1,
i4,
env,
static) :|:
0 <=
staticquot_ConstantStackPush_51(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_52(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_52(
i1,
i4,
env,
static) -{0,0}>
quot_ConstantStackPush_53(
i1,
i4,
env,
static) :|: 0 >= 0
quot_ConstantStackPush_53(
i1,
i4,
env,
static) -{1,1}>
quot_Store_54(
i1,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0quot_Store_54(
i1,
i4,
iconst_0,
env,
static) -{1,1}>
quot_Load_56(
i1,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0quot_Load_56(
i1,
i4,
iconst_0,
env,
static) -{1,1}>
quot_NE_58(
i1,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0quot_NE_58(
i8,
i4,
iconst_0,
env,
static) -{0,0}>
quot_NE_61(
i8,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0quot_NE_61(
i8,
i4,
iconst_0,
env,
static) -{1,1}>
quot_Load_63(
i8,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0 && !(
i8 =
0)
quot_Load_63(
i8,
i4,
iconst_0,
env,
static) -{1,1}>
quot_LE_70(
i8,
i4,
iconst_0,
env,
static) :|:
iconst_0 =
0quot_LE_70(
i16,
i4,
iconst_0,
env,
static) -{0,0}>
quot_LE_76(
i16,
i4,
iconst_0,
env,
static) :|:
1 <=
i16 &&
iconst_0 =
0quot_LE_76(
i16,
i4,
iconst_0,
env,
static) -{1,1}>
quot_Load_84(
i16,
i4,
iconst_0,
env,
static) :|:
1 <=
i16 &&
iconst_0 =
0 &&
0 <
i16quot_Load_84(
i16,
i4,
iconst_0,
env,
static) -{1,1}>
quot_LE_90(
i16,
i4,
iconst_0,
env,
static) :|:
1 <=
i16 &&
iconst_0 =
0quot_LE_90(
i16,
i4,
iconst_0,
env,
static) -{0,0}>
quot_LE_169(
i16,
i4,
i16,
iconst_0,
env,
static) :|:
0 <=
iconst_0 &&
1 <=
i16 &&
iconst_0 <=
1 &&
iconst_0 =
0quot_LE_169(
i16,
i50,
i51,
i52,
env,
static) -{0,0}>
quot_LE_266(
i16,
i50,
i51,
i52,
env,
static) :|:
0 <=
i52 &&
i52 <=
1 &&
i52 <=
2 &&
1 <=
i16 &&
1 <=
i51quot_LE_266(
i16,
i99,
i100,
i101,
env,
static) -{0,0}>
quot_LE_333(
i16,
i99,
i100,
i101,
env,
static) :|:
0 <=
i101 &&
1 <=
i16 &&
i101 <=
2 &&
1 <=
i100obtained
quot_LE_333(i16, i147, i138, i139, env, static) -{14,14}> quot_LE_333(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i16 && 0 < i155' && 1 <= i155' && 1 <= i138 && 0 <= i150' && 1 <= i150' && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
by chaining
quot_LE_333(i16, i147, i138, i139, env, static) -{0,0}> quot_LE_337(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 <= i139 && 1 <= i147
quot_LE_337(i16, i147, i138, i139, env, static) -{1,1}> quot_Inc_341(i16, i147, i138, i139, env, static) :|: 1 <= i138 && 1 <= i16 && 0 < i147 && 1 <= i147 && 0 <= i139
quot_Inc_341(i16, i147, i138, i139, env, static) -{1,1}> quot_Load_346(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && i139 + 1 = i150 && 1 <= i147 && 0 <= i139
quot_Load_346(i16, i147, i138, i150, env, static) -{1,1}> quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 1 <= i147
quot_ConstantStackPush_349(i16, i147, i138, i150, env, static) -{1,1}> quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_351(i16, i147, i138, iconst_1, i150, env, static) -{1,1}> quot_Load_354(i16, i147, i153, i150, env, static) :|: 1 <= i138 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147 && i138 - iconst_1 = i153
quot_Load_354(i16, i147, i153, i150, env, static) -{1,1}> quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && 1 <= i147
quot_ConstantStackPush_356(i16, i147, i153, i150, env, static) -{1,1}> quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_358(i16, i147, i153, iconst_1, i150, env, static) -{1,1}> quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) :|: 0 <= i154 && i147 - iconst_1 = i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && iconst_1 = 1 && 1 <= i147
quot_IntArithmetic_361(i16, i147, i153, i154, i150, env, static) -{1,1}> quot_Store_363(i16, i147, i155, i150, env, static) :|: 0 <= i154 && 1 <= i150 && 1 <= i16 && 0 <= i153 && i153 - i154 = i155 && 1 <= i147
quot_Store_363(i16, i147, i155, i150, env, static) -{1,1}> quot_JMP_365(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_JMP_365(i16, i147, i155, i150, env, static) -{1,1}> quot_Load_367(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_Load_367(i16, i147, i155, i150, env, static) -{1,1}> quot_LE_374(i16, i147, i155, i150, env, static) :|: 1 <= i150 && 1 <= i16 && 1 <= i147
quot_LE_374(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_376(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_376(i16, i147, i168, i150, env, static) -{1,1}> quot_Load_384(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 0 < i168 && 1 <= i147
quot_Load_384(i16, i147, i168, i150, env, static) -{1,1}> quot_LE_395(i16, i147, i168, i150, env, static) :|: 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
quot_LE_395(i16, i147, i168, i150, env, static) -{0,0}> quot_LE_333(i16, i147, i168, i150, env, static) :|: 0 <= i150 && 1 <= i150 && 1 <= i168 && 1 <= i16 && 1 <= i147
(40) Obligation:
IntTrs with 2 rules
Start term: quot_ConstantStackPush_1(#0, #1, env, static)
Considered paths: all paths from start
Rules:
quot_ConstantStackPush_1(i1, i4, env, static) -{22,22}> quot_LE_333(i1, i4, i1, 0, env, static'1) :|: 0 >= 0 && 1 <= i1 && 0 < i1 && 0 <= 2 && 0 < 2 && 0 <= 0 && 0 <= static'1 && 0 <= static && 0 < 1 && static''' <= static + 2 && 0 <= 1 && 0 <= static''' && static'1 <= static''' + 1 && !(i1 = 0)
quot_LE_333(i16, i147, i138, i139, env, static) -{14,14}> quot_LE_333(i16, i147, i155', i150', env, static) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i16 && 0 < i155' && 1 <= i155' && 1 <= i138 && 0 <= i150' && 1 <= i150' && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
(41) WeightedIntTrsUnneededArgumentFilterProof (CONCRETE UPPER BOUND(ID) transformation)
Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements:
quot_ConstantStackPush_1(x1, x2, x3, x4) → quot_ConstantStackPush_1(x1, x2, x4)
quot_LE_333(x1, x2, x3, x4, x5, x6) → quot_LE_333(x1, x2, x3, x4)
(42) Obligation:
IntTrs with 2 rules
Start term: quot_ConstantStackPush_1(#0, #1, static)
Considered paths: all paths from start
Rules:
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 0 >= 0 && 1 <= i1 && 0 < i1 && 0 <= 2 && 0 < 2 && 0 <= 0 && 0 <= static'1 && 0 <= static && 0 < 1 && static''' <= static + 2 && 0 <= 1 && 0 <= static''' && static'1 <= static''' + 1 && !(i1 = 0)
quot_LE_333(i16, i147, i138, i139) -{14,14}> quot_LE_333(i16, i147, i155', i150') :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i16 && 0 < i155' && 1 <= i155' && 1 <= i138 && 0 <= i150' && 1 <= i150' && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
(43) RemoveDivModProof (CONCRETE UPPER BOUND(ID) transformation)
Removed div and mod.
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 0 >= 0 && 1 <= i1 && 0 < i1 && 0 <= 2 && 0 < 2 && 0 <= 0 && 0 <= static'1 && 0 <= static && 0 < 1 && static''' <= static + 2 && 0 <= 1 && 0 <= static''' && static'1 <= static''' + 1 && !(i1 = 0)
was transformed to
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 0 >= 0 && 1 <= i1 && 0 < i1 && 0 <= 2 && 0 < 2 && 0 <= 0 && 0 <= static'1 && 0 <= static && 0 < 1 && static''' <= static + 2 && 0 <= 1 && 0 <= static''' && static'1 <= static''' + 1 && i1 > 0
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 0 >= 0 && 1 <= i1 && 0 < i1 && 0 <= 2 && 0 < 2 && 0 <= 0 && 0 <= static'1 && 0 <= static && 0 < 1 && static''' <= static + 2 && 0 <= 1 && 0 <= static''' && static'1 <= static''' + 1 && i1 < 0
(44) Obligation:
IntTrs with 3 rules
Start term: quot_ConstantStackPush_1(#0, #1, static)
Considered paths: all paths from start
Rules:
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 0 >= 0 && 1 <= i1 && 0 < i1 && 0 <= 2 && 0 < 2 && 0 <= 0 && 0 <= static'1 && 0 <= static && 0 < 1 && static''' <= static + 2 && 0 <= 1 && 0 <= static''' && static'1 <= static''' + 1 && i1 > 0
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 0 >= 0 && 1 <= i1 && 0 < i1 && 0 <= 2 && 0 < 2 && 0 <= 0 && 0 <= static'1 && 0 <= static && 0 < 1 && static''' <= static + 2 && 0 <= 1 && 0 <= static''' && static'1 <= static''' + 1 && i1 < 0
quot_LE_333(i16, i147, i138, i139) -{14,14}> quot_LE_333(i16, i147, i155', i150') :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i16 && 0 < i155' && 1 <= i155' && 1 <= i138 && 0 <= i150' && 1 <= i150' && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
(45) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from constraints to rhss.
quot_LE_333(i16, i147, i138, i139) -{14,14}> quot_LE_333(i16, i147, i155', i150') :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i16 && 0 < i155' && 1 <= i155' && 1 <= i138 && 0 <= i150' && 1 <= i150' && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
was transformed to
quot_LE_333(i16, i147, i138, i139) -{14,14}> quot_LE_333(i16, i147, i153' - i147 - 1, i139 + 1) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i16 && 0 < i155' && 1 <= i155' && 1 <= i138 && 0 <= i150' && 1 <= i150' && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
(46) Obligation:
IntTrs with 3 rules
Start term: quot_ConstantStackPush_1(#0, #1, static)
Considered paths: all paths from start
Rules:
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 0 >= 0 && 1 <= i1 && 0 < i1 && 0 <= 2 && 0 < 2 && 0 <= 0 && 0 <= static'1 && 0 <= static && 0 < 1 && static''' <= static + 2 && 0 <= 1 && 0 <= static''' && static'1 <= static''' + 1 && i1 > 0
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 0 >= 0 && 1 <= i1 && 0 < i1 && 0 <= 2 && 0 < 2 && 0 <= 0 && 0 <= static'1 && 0 <= static && 0 < 1 && static''' <= static + 2 && 0 <= 1 && 0 <= static''' && static'1 <= static''' + 1 && i1 < 0
quot_LE_333(i16, i147, i138, i139) -{14,14}> quot_LE_333(i16, i147, i153' - i147 - 1, i139 + 1) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i16 && 0 < i155' && 1 <= i155' && 1 <= i138 && 0 <= i150' && 1 <= i150' && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
(47) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Simplified expressions.
quot_LE_333(i16, i147, i138, i139) -{14,14}> quot_LE_333(i16, i147, i153' - i147 - 1, i139 + 1) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i16 && 0 < i155' && 1 <= i155' && 1 <= i138 && 0 <= i150' && 1 <= i150' && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' - i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
was transformed to
quot_LE_333(i16, i147, i138, i139) -{14,14}> quot_LE_333(i16, i147, i153' + -1 * i147 + 1, i139 + 1) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i16 && 0 < i155' && 1 <= i155' && 1 <= i138 && 0 <= i150' && 1 <= i150' && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' + -1 * i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 0 >= 0 && 1 <= i1 && 0 < i1 && 0 <= 2 && 0 < 2 && 0 <= 0 && 0 <= static'1 && 0 <= static && 0 < 1 && static''' <= static + 2 && 0 <= 1 && 0 <= static''' && static'1 <= static''' + 1 && i1 > 0
was transformed to
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 1 <= i1 && 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1 && 0 < i1
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 0 >= 0 && 1 <= i1 && 0 < i1 && 0 <= 2 && 0 < 2 && 0 <= 0 && 0 <= static'1 && 0 <= static && 0 < 1 && static''' <= static + 2 && 0 <= 1 && 0 <= static''' && static'1 <= static''' + 1 && i1 < 0
was transformed to
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 1 <= i1 && 0 < i1 && 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1 && i1 < 0
(48) Obligation:
IntTrs with 3 rules
Start term: quot_ConstantStackPush_1(#0, #1, static)
Considered paths: all paths from start
Rules:
quot_LE_333(i16, i147, i138, i139) -{14,14}> quot_LE_333(i16, i147, i153' + -1 * i147 + 1, i139 + 1) :|: 0 <= i139 && 1 <= i147 && 0 < i147 && 1 <= i16 && 0 < i155' && 1 <= i155' && 1 <= i138 && 0 <= i150' && 1 <= i150' && 0 <= i154' && 0 <= i153' && i147 - 1 = i154' && i153' + -1 * i154' = i155' && i139 + 1 = i150' && i138 - 1 = i153'
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 1 <= i1 && 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1 && 0 < i1
quot_ConstantStackPush_1(i1, i4, static) -{22,22}> quot_LE_333(i1, i4, i1, 0) :|: 1 <= i1 && 0 < i1 && 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1 && i1 < 0