(0) Obligation:
Need to prove time_complexity of the following program:
/**
* Example taken from "A Term Rewriting Approach to the Automated Termination
* Analysis of Imperative Programs" (http://www.cs.unm.edu/~spf/papers/2009-02.pdf)
* and converted to Java.
*/
public class PastaC11 {
public static void main(int x, int y, int z) {
while (true) {
if (x >= 0) {
x--;
y = z;
} else if (y >= 0) {
y--;
} else {
break;
}
}
}
}
(1) JBCToGraph (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Constructed TerminationGraph.
(2) Obligation:
Termination Graph based on JBC Program:
PastaC11.main(III)V: Graph of 64 nodes with 3 SCCs.
(3) TerminationGraphToComplexityProof (BOTH CONCRETE BOUNDS(ID, ADD(4)) transformation)
Extracted set of 60 edges for the analysis of TIME complexity. Dropped leaves.
(4) Obligation:
Set of 60 edges based on JBC Program.
Performed SCC analyses:
- Used field analysis yielded the following read fields:
Considered paths: all paths from start
(5) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)
Transformed 60 jbc graph edges to a weighted ITS with 60 rules.
Used simplified encoding of division and modulo.
Filtered conditions with variables that do not depend on the variables on the lhs or rhs without taking transitive dependencies into account.
Filtered fields of type java.lang.Object.
Did no encode lower bounds for putfield and astore.
(6) Obligation:
IntTrs with 60 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: all paths from start
Rules:
main_Load_1(i1, i4, i6, env, static) -{0,0}> main_Load_4(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_4(i1, i4, i6, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_6(i1, i4, i6, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, i6, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_14(a2, i1, i4, i6, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_14(a2, i1, i4, i6, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_16(i1, i4, i6, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_16(i1, i4, i6, env, static) -{0,0}> langle_clinit_rangle_New_17(i1, i4, i6, env, static) :|: 0 >= 0
langle_clinit_rangle_New_17(i1, i4, i6, env, static) -{0,0}> langle_clinit_rangle_New_19(i1, i4, i6, env, static) :|: 0 <= static
langle_clinit_rangle_New_19(i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_Duplicate_20(o2, i1, i4, i6, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_20(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_21(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_21(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_23(o2, NULL, i1, i4, i6, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_23(o2, NULL, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Load_24(o2, i1, i4, i6, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_24(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_InvokeMethod_26(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_26(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Load_28(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_Load_28(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_InvokeMethod_30(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_30(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Return_32(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_Return_32(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Return_35(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_Return_35(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_37(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_37(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_Return_40(i1, i4, i6, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_40(i1, i4, i6, env, static) -{1,1}> main_Load_41(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_41(i1, i4, i6, env, static) -{0,0}> main_Load_42(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_42(i1, i4, i6, env, static) -{0,0}> main_Load_43(i1, i4, i6, env, static) :|: 0 <= static
main_Load_43(i1, i4, i6, env, static) -{0,0}> main_Load_45(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_45(i1, i4, i6, env, static) -{0,0}> main_Load_47(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_47(i1, i4, i6, env, static) -{1,1}> main_LT_52(i1, i4, i6, env, static) :|: 0 >= 0
main_LT_52(i1, i4, i6, env, static) -{0,0}> main_LT_404(i1, i4, i6, i4, env, static) :|: 0 >= 0
main_LT_404(i137, i50, i6, i51, env, static) -{0,0}> main_LT_410(i137, i50, i6, i51, env, static) :|: i137 <= -1
main_LT_404(i138, i50, i6, i51, env, static) -{0,0}> main_LT_411(i138, i50, i6, i51, env, static) :|: 0 <= i138
main_LT_410(i137, i50, i6, i51, env, static) -{1,1}> main_Load_414(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
main_LT_411(i138, i50, i6, i51, env, static) -{1,1}> main_Inc_416(i138, i50, i6, env, static) :|: 0 <= i138
main_Load_414(i137, i50, i6, i51, env, static) -{1,1}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1
main_Inc_416(i138, i50, i6, env, static) -{1,1}> main_Load_421(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138 && i138 + -1 = i143
main_LT_419(i137, i50, i6, i145, env, static) -{0,0}> main_LT_425(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_Load_421(i138, i50, i6, i143, env, static) -{1,1}> main_Store_426(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_LT_425(i137, i50, i6, i145, env, static) -{1,1}> main_Inc_430(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_Store_426(i138, i50, i6, i143, env, static) -{1,1}> main_JMP_432(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Inc_430(i137, i50, i6, i145, env, static) -{1,1}> main_JMP_436(i137, i50, i6, i146, env, static) :|: i145 + -1 = i146 && i137 <= -1 && -1 <= i146 && 0 <= i145
main_JMP_432(i138, i50, i6, i143, env, static) -{1,1}> main_Load_439(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_JMP_436(i137, i50, i6, i146, env, static) -{1,1}> main_Load_443(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_Load_439(i138, i50, i6, i143, env, static) -{1,1}> main_LT_454(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Load_443(i137, i50, i6, i146, env, static) -{1,1}> main_LT_461(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_LT_454(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_LT_464(i138, i50, i6, iconst_NEG1, env, static) :|: -1 <= iconst_NEG1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_454(i171, i50, i6, i170, env, static) -{0,0}> main_LT_465(i171, i50, i6, i170, env, static) :|: 0 <= i171 && -1 <= i170 && 1 <= i171 && 0 <= i170
main_LT_461(i137, i50, i6, i146, env, static) -{0,0}> main_LT_404(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_LT_464(i138, i50, i6, iconst_NEG1, env, static) -{1,1}> main_Load_469(i138, i50, i6, iconst_NEG1, env, static) :|: iconst_NEG1 < 0 && 0 <= i138 && iconst_NEG1 = -1
main_LT_465(i171, i50, i6, i170, env, static) -{1,1}> main_Inc_472(i171, i50, i6, i170, env, static) :|: 1 <= i171 && 0 <= i170
main_Load_469(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_Load_643(i138, i50, i6, iconst_NEG1, i6, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_Inc_472(i171, i50, i6, i170, env, static) -{1,1}> main_Load_484(i171, i50, i6, i176, env, static) :|: -1 <= i176 && i170 + -1 = i176 && 1 <= i171 && 0 <= i170
main_Load_484(i171, i50, i6, i176, env, static) -{1,1}> main_Store_490(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Store_490(i171, i50, i6, i176, env, static) -{1,1}> main_JMP_500(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_JMP_500(i171, i50, i6, i176, env, static) -{1,1}> main_Load_510(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Load_510(i171, i50, i6, i176, env, static) -{1,1}> main_LT_608(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_LT_608(i171, i50, i6, i176, env, static) -{0,0}> main_LT_454(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 0 <= i171 && 1 <= i171
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i235, iconst_NEG1, env, static) -{0,0}> main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) -{1,1}> main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) -{1,1}> main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235 && i235 + -1 = i241
main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) :|: iconst_NEG1 < 0 && -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) -{0,0}> main_Load_643(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
(7) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
obtained
main_Load_1(
i1,
i4,
i6,
env,
static) -{16,16}>
main_LT_404(
i1,
i4,
i6,
i4,
env,
static'1) :|: 0 >= 0 &&
0 <
2 &&
0 <=
static'1 &&
0 <=
static &&
0 <=
1 &&
0 <
1 &&
static''' <=
static +
2 &&
0 <=
static''' &&
0 <=
2 &&
static'1 <=
static''' +
1by chaining
main_Load_1(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_4(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_4(
i1,
i4,
i6,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
i6,
env,
static) :|:
iconst_0 =
0langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
i6,
iconst_0,
env,
static) :|:
a2 =
2 &&
iconst_0 =
0 &&
0 <
a2langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
i6,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_New_16(
i1,
i4,
i6,
env,
static') :|:
0 <=
a2 &&
iconst_0 =
0 &&
static' <=
static +
a2 &&
0 <=
static &&
0 <
a2langle_clinit_rangle_New_16(
i1,
i4,
i6,
env,
static) -{0,0}>
langle_clinit_rangle_New_17(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
langle_clinit_rangle_New_17(
i1,
i4,
i6,
env,
static) -{0,0}>
langle_clinit_rangle_New_19(
i1,
i4,
i6,
env,
static) :|:
0 <=
staticlangle_clinit_rangle_New_19(
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_Duplicate_20(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2 &&
o2 =
1langle_clinit_rangle_Duplicate_20(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_ConstantStackPush_21(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_clinit_rangle_ConstantStackPush_21(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_InvokeMethod_23(
o2,
NULL,
i1,
i4,
i6,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_clinit_rangle_InvokeMethod_23(
o2,
NULL,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Load_24(
o2,
i1,
i4,
i6,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_init_rangle_Load_24(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_26(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_26(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Load_28(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_Load_28(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_30(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_30(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Return_32(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_Return_32(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Return_35(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_Return_35(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_37(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_clinit_rangle_FieldAccess_37(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_Return_40(
i1,
i4,
i6,
env,
static') :|:
0 <
o2 &&
0 <=
o2 &&
0 <=
static &&
static' <=
static +
o2langle_clinit_rangle_Return_40(
i1,
i4,
i6,
env,
static) -{1,1}>
main_Load_41(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_41(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_42(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_42(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_43(
i1,
i4,
i6,
env,
static) :|:
0 <=
staticmain_Load_43(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_45(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_45(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_47(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_47(
i1,
i4,
i6,
env,
static) -{1,1}>
main_LT_52(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_LT_52(
i1,
i4,
i6,
env,
static) -{0,0}>
main_LT_404(
i1,
i4,
i6,
i4,
env,
static) :|: 0 >= 0
obtained
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i143', env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
by chaining
main_LT_404(i138, i50, i6, i51, env, static) -{0,0}> main_LT_411(i138, i50, i6, i51, env, static) :|: 0 <= i138
main_LT_411(i138, i50, i6, i51, env, static) -{1,1}> main_Inc_416(i138, i50, i6, env, static) :|: 0 <= i138
main_Inc_416(i138, i50, i6, env, static) -{1,1}> main_Load_421(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138 && i138 + -1 = i143
main_Load_421(i138, i50, i6, i143, env, static) -{1,1}> main_Store_426(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Store_426(i138, i50, i6, i143, env, static) -{1,1}> main_JMP_432(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_JMP_432(i138, i50, i6, i143, env, static) -{1,1}> main_Load_439(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Load_439(i138, i50, i6, i143, env, static) -{1,1}> main_LT_454(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
obtained
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i176', env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
by chaining
main_LT_454(i171, i50, i6, i170, env, static) -{0,0}> main_LT_465(i171, i50, i6, i170, env, static) :|: 0 <= i171 && -1 <= i170 && 1 <= i171 && 0 <= i170
main_LT_465(i171, i50, i6, i170, env, static) -{1,1}> main_Inc_472(i171, i50, i6, i170, env, static) :|: 1 <= i171 && 0 <= i170
main_Inc_472(i171, i50, i6, i170, env, static) -{1,1}> main_Load_484(i171, i50, i6, i176, env, static) :|: -1 <= i176 && i170 + -1 = i176 && 1 <= i171 && 0 <= i170
main_Load_484(i171, i50, i6, i176, env, static) -{1,1}> main_Store_490(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Store_490(i171, i50, i6, i176, env, static) -{1,1}> main_JMP_500(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_JMP_500(i171, i50, i6, i176, env, static) -{1,1}> main_Load_510(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Load_510(i171, i50, i6, i176, env, static) -{1,1}> main_LT_608(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_LT_608(i171, i50, i6, i176, env, static) -{0,0}> main_LT_454(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 0 <= i171 && 1 <= i171
obtained
main_LT_454(i138, i50, i6, -1, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1
by chaining
main_LT_454(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_LT_464(i138, i50, i6, iconst_NEG1, env, static) :|: -1 <= iconst_NEG1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_464(i138, i50, i6, iconst_NEG1, env, static) -{1,1}> main_Load_469(i138, i50, i6, iconst_NEG1, env, static) :|: iconst_NEG1 < 0 && 0 <= i138 && iconst_NEG1 = -1
main_Load_469(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_Load_643(i138, i50, i6, iconst_NEG1, i6, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
obtained
main_Load_643(i138, i50, i219, -1, i220, env, static) -{6,6}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i220 && -1 <= i241' && 0 <= i138 && i220 + -1 = i241'
by chaining
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i235, iconst_NEG1, env, static) -{0,0}> main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) -{1,1}> main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) -{1,1}> main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235 && i235 + -1 = i241
main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) :|: iconst_NEG1 < 0 && -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) -{0,0}> main_Load_643(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
obtained
main_LT_404(i137, i50, i6, i51, env, static) -{6,6}> main_LT_404(i137, i50, i6, i146', env, static) :|: i51 + -1 = i146' && i137 <= -1 && -1 <= i146' && i137 < 0 && 0 <= i51
by chaining
main_LT_404(i137, i50, i6, i51, env, static) -{0,0}> main_LT_410(i137, i50, i6, i51, env, static) :|: i137 <= -1
main_LT_410(i137, i50, i6, i51, env, static) -{1,1}> main_Load_414(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
main_Load_414(i137, i50, i6, i51, env, static) -{1,1}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1
main_LT_419(i137, i50, i6, i145, env, static) -{0,0}> main_LT_425(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_LT_425(i137, i50, i6, i145, env, static) -{1,1}> main_Inc_430(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_Inc_430(i137, i50, i6, i145, env, static) -{1,1}> main_JMP_436(i137, i50, i6, i146, env, static) :|: i145 + -1 = i146 && i137 <= -1 && -1 <= i146 && 0 <= i145
main_JMP_436(i137, i50, i6, i146, env, static) -{1,1}> main_Load_443(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_Load_443(i137, i50, i6, i146, env, static) -{1,1}> main_LT_461(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_LT_461(i137, i50, i6, i146, env, static) -{0,0}> main_LT_404(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
(8) Obligation:
IntTrs with 6 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: all paths from start
Rules:
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i143', env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i176', env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_LT_454(i138, i50, i6, -1, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1
main_Load_643(i138, i50, i219, -1, i220, env, static) -{6,6}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i220 && -1 <= i241' && 0 <= i138 && i220 + -1 = i241'
main_LT_404(i137, i50, i6, i51, env, static) -{6,6}> main_LT_404(i137, i50, i6, i146', env, static) :|: i51 + -1 = i146' && i137 <= -1 && -1 <= i146' && i137 < 0 && 0 <= i51
(9) WeightedIntTrsUnneededArgumentFilterProof (CONCRETE UPPER BOUND(ID) transformation)
Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements:
main_Load_1(x1, x2, x3, x4, x5) → main_Load_1(x1, x2, x3, x5)
main_LT_404(x1, x2, x3, x4, x5, x6) → main_LT_404(x1, x3, x4)
main_LT_454(x1, x2, x3, x4, x5, x6) → main_LT_454(x1, x3, x4)
main_Load_643(x1, x2, x3, x4, x5, x6, x7) → main_Load_643(x1, x5)
(10) Obligation:
IntTrs with 6 rules
Start term: main_Load_1(#0, #1, #2, static)
Considered paths: all paths from start
Rules:
main_Load_1(i1, i4, i6, static) -{16,16}> main_LT_404(i1, i6, i4) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LT_404(i138, i6, i51) -{6,6}> main_LT_454(i138, i6, i143') :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_LT_454(i171, i6, i170) -{6,6}> main_LT_454(i171, i6, i176') :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_LT_454(i138, i6, -1) -{1,1}> main_Load_643(i138, i6) :|: -1 < 0 && 0 <= i138 && -1 <= -1
main_Load_643(i138, i220) -{6,6}> main_Load_643(i138, i241') :|: -1 < 0 && 0 <= i220 && -1 <= i241' && 0 <= i138 && i220 + -1 = i241'
main_LT_404(i137, i6, i51) -{6,6}> main_LT_404(i137, i6, i146') :|: i51 + -1 = i146' && i137 <= -1 && -1 <= i146' && i137 < 0 && 0 <= i51
(11) MovedArithmeticToConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from lhss to constraints.
main_LT_454(i138, i6, -1) -{1,1}> main_Load_643(i138, i6) :|: -1 < 0 && 0 <= i138 && -1 <= -1
was transformed to
main_LT_454(i138, i6, x) -{1,1}> main_Load_643(i138, i6) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
(12) Obligation:
IntTrs with 6 rules
Start term: main_Load_1(#0, #1, #2, static)
Considered paths: all paths from start
Rules:
main_LT_454(i171, i6, i170) -{6,6}> main_LT_454(i171, i6, i176') :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_Load_643(i138, i220) -{6,6}> main_Load_643(i138, i241') :|: -1 < 0 && 0 <= i220 && -1 <= i241' && 0 <= i138 && i220 + -1 = i241'
main_LT_404(i137, i6, i51) -{6,6}> main_LT_404(i137, i6, i146') :|: i51 + -1 = i146' && i137 <= -1 && -1 <= i146' && i137 < 0 && 0 <= i51
main_LT_454(i138, i6, x) -{1,1}> main_Load_643(i138, i6) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
main_LT_404(i138, i6, i51) -{6,6}> main_LT_454(i138, i6, i143') :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_Load_1(i1, i4, i6, static) -{16,16}> main_LT_404(i1, i6, i4) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
(13) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from constraints to rhss.
main_LT_454(i171, i6, i170) -{6,6}> main_LT_454(i171, i6, i176') :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
was transformed to
main_LT_454(i171, i6, i170) -{6,6}> main_LT_454(i171, i6, i170 + -1) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_Load_643(i138, i220) -{6,6}> main_Load_643(i138, i241') :|: -1 < 0 && 0 <= i220 && -1 <= i241' && 0 <= i138 && i220 + -1 = i241'
was transformed to
main_Load_643(i138, i220) -{6,6}> main_Load_643(i138, i220 + -1) :|: -1 < 0 && 0 <= i220 && -1 <= i241' && 0 <= i138 && i220 + -1 = i241'
main_LT_404(i137, i6, i51) -{6,6}> main_LT_404(i137, i6, i146') :|: i51 + -1 = i146' && i137 <= -1 && -1 <= i146' && i137 < 0 && 0 <= i51
was transformed to
main_LT_404(i137, i6, i51) -{6,6}> main_LT_404(i137, i6, i51 + -1) :|: i51 + -1 = i146' && i137 <= -1 && -1 <= i146' && i137 < 0 && 0 <= i51
main_LT_404(i138, i6, i51) -{6,6}> main_LT_454(i138, i6, i143') :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
was transformed to
main_LT_404(i138, i6, i51) -{6,6}> main_LT_454(i138, i6, i138 + -1) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
(14) Obligation:
IntTrs with 6 rules
Start term: main_Load_1(#0, #1, #2, static)
Considered paths: all paths from start
Rules:
main_LT_454(i171, i6, i170) -{6,6}> main_LT_454(i171, i6, i170 + -1) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_Load_643(i138, i220) -{6,6}> main_Load_643(i138, i220 + -1) :|: -1 < 0 && 0 <= i220 && -1 <= i241' && 0 <= i138 && i220 + -1 = i241'
main_LT_404(i137, i6, i51) -{6,6}> main_LT_404(i137, i6, i51 + -1) :|: i51 + -1 = i146' && i137 <= -1 && -1 <= i146' && i137 < 0 && 0 <= i51
main_LT_454(i138, i6, x) -{1,1}> main_Load_643(i138, i6) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
main_LT_404(i138, i6, i51) -{6,6}> main_LT_454(i138, i6, i138 + -1) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_Load_1(i1, i4, i6, static) -{16,16}> main_LT_404(i1, i6, i4) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
(15) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Simplified expressions.
main_LT_404(i138, i6, i51) -{6,6}> main_LT_454(i138, i6, i138 + -1) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
was transformed to
main_LT_404(i138, i6, i51) -{6,6}> main_LT_454(i138, i6, i138 - 1) :|: i138 - 1 = i143' && -1 <= i143' && 0 <= i138
main_LT_454(i171, i6, i170) -{6,6}> main_LT_454(i171, i6, i170 + -1) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
was transformed to
main_LT_454(i171, i6, i170) -{6,6}> main_LT_454(i171, i6, i170 - 1) :|: i170 - 1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_LT_454(i138, i6, x) -{1,1}> main_Load_643(i138, i6) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
was transformed to
main_LT_454(i138, i6, x) -{1,1}> main_Load_643(i138, i6) :|: 0 <= i138 && x = -1
main_LT_404(i137, i6, i51) -{6,6}> main_LT_404(i137, i6, i51 + -1) :|: i51 + -1 = i146' && i137 <= -1 && -1 <= i146' && i137 < 0 && 0 <= i51
was transformed to
main_LT_404(i137, i6, i51) -{6,6}> main_LT_404(i137, i6, i51 - 1) :|: i51 - 1 = i146' && i137 <= -1 && -1 <= i146' && i137 < 0 && 0 <= i51
main_Load_1(i1, i4, i6, static) -{16,16}> main_LT_404(i1, i6, i4) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
was transformed to
main_Load_1(i1, i4, i6, static) -{16,16}> main_LT_404(i1, i6, i4) :|: 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1
main_Load_643(i138, i220) -{6,6}> main_Load_643(i138, i220 + -1) :|: -1 < 0 && 0 <= i220 && -1 <= i241' && 0 <= i138 && i220 + -1 = i241'
was transformed to
main_Load_643(i138, i220) -{6,6}> main_Load_643(i138, i220 - 1) :|: 0 <= i220 && -1 <= i241' && 0 <= i138 && i220 - 1 = i241'
(16) Obligation:
IntTrs with 6 rules
Start term: main_Load_1(#0, #1, #2, static)
Considered paths: all paths from start
Rules:
main_Load_643(i138, i220) -{6,6}> main_Load_643(i138, i220 - 1) :|: 0 <= i220 && -1 <= i241' && 0 <= i138 && i220 - 1 = i241'
main_LT_454(i171, i6, i170) -{6,6}> main_LT_454(i171, i6, i170 - 1) :|: i170 - 1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_LT_454(i138, i6, x) -{1,1}> main_Load_643(i138, i6) :|: 0 <= i138 && x = -1
main_LT_404(i137, i6, i51) -{6,6}> main_LT_404(i137, i6, i51 - 1) :|: i51 - 1 = i146' && i137 <= -1 && -1 <= i146' && i137 < 0 && 0 <= i51
main_LT_404(i138, i6, i51) -{6,6}> main_LT_454(i138, i6, i138 - 1) :|: i138 - 1 = i143' && -1 <= i143' && 0 <= i138
main_Load_1(i1, i4, i6, static) -{16,16}> main_LT_404(i1, i6, i4) :|: 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1
(17) koat Proof (EQUIVALENT transformation)
YES(?, 6*ar_2 + 6*ar_0 + 6*ar_1 + 35)
Initial complexity problem:
1: T:
(Comp: ?, Cost: 6) main_Load_643(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1 - 1, arityPad, arityPad)) [ 0 <= ar_1 /\ -1 <= i241' /\ 0 <= ar_0 /\ ar_1 - 1 = i241' ]
(Comp: ?, Cost: 6) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i176' /\ 1 <= ar_0 /\ 0 <= ar_0 /\ -1 <= i176' /\ -1 <= ar_2 /\ 0 <= ar_2 ]
(Comp: ?, Cost: 1) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1, arityPad, arityPad)) [ 0 <= ar_0 /\ ar_2 = -1 ]
(Comp: ?, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\ ar_0 <= -1 /\ -1 <= i146' /\ ar_0 < 0 /\ 0 <= ar_2 ]
(Comp: ?, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_0 - 1, arityPad)) [ ar_0 - 1 = i143' /\ -1 <= i143' /\ 0 <= ar_0 ]
(Comp: ?, Cost: 16) main_Load_1(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_2, ar_1, arityPad)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_1(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
Repeatedly propagating knowledge in problem 1 produces the following problem:
2: T:
(Comp: ?, Cost: 6) main_Load_643(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1 - 1, arityPad, arityPad)) [ 0 <= ar_1 /\ -1 <= i241' /\ 0 <= ar_0 /\ ar_1 - 1 = i241' ]
(Comp: ?, Cost: 6) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i176' /\ 1 <= ar_0 /\ 0 <= ar_0 /\ -1 <= i176' /\ -1 <= ar_2 /\ 0 <= ar_2 ]
(Comp: ?, Cost: 1) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1, arityPad, arityPad)) [ 0 <= ar_0 /\ ar_2 = -1 ]
(Comp: ?, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\ ar_0 <= -1 /\ -1 <= i146' /\ ar_0 < 0 /\ 0 <= ar_2 ]
(Comp: 1, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_0 - 1, arityPad)) [ ar_0 - 1 = i143' /\ -1 <= i143' /\ 0 <= ar_0 ]
(Comp: 1, Cost: 16) main_Load_1(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_2, ar_1, arityPad)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_1(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
A polynomial rank function with
Pol(main_Load_643) = 0
Pol(main_LT_454) = 1
Pol(main_LT_404) = 1
Pol(main_Load_1) = 1
Pol(koat_start) = 1
orients all transitions weakly and the transition
main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1, arityPad, arityPad)) [ 0 <= ar_0 /\ ar_2 = -1 ]
strictly and produces the following problem:
3: T:
(Comp: ?, Cost: 6) main_Load_643(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1 - 1, arityPad, arityPad)) [ 0 <= ar_1 /\ -1 <= i241' /\ 0 <= ar_0 /\ ar_1 - 1 = i241' ]
(Comp: ?, Cost: 6) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i176' /\ 1 <= ar_0 /\ 0 <= ar_0 /\ -1 <= i176' /\ -1 <= ar_2 /\ 0 <= ar_2 ]
(Comp: 1, Cost: 1) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1, arityPad, arityPad)) [ 0 <= ar_0 /\ ar_2 = -1 ]
(Comp: ?, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\ ar_0 <= -1 /\ -1 <= i146' /\ ar_0 < 0 /\ 0 <= ar_2 ]
(Comp: 1, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_0 - 1, arityPad)) [ ar_0 - 1 = i143' /\ -1 <= i143' /\ 0 <= ar_0 ]
(Comp: 1, Cost: 16) main_Load_1(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_2, ar_1, arityPad)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_1(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
A polynomial rank function with
Pol(main_Load_643) = V_2 + 1
Pol(main_LT_454) = V_2 + 1
Pol(main_LT_404) = V_2 + 1
Pol(main_Load_1) = V_3 + 1
Pol(koat_start) = V_3 + 1
orients all transitions weakly and the transition
main_Load_643(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1 - 1, arityPad, arityPad)) [ 0 <= ar_1 /\ -1 <= i241' /\ 0 <= ar_0 /\ ar_1 - 1 = i241' ]
strictly and produces the following problem:
4: T:
(Comp: ar_2 + 1, Cost: 6) main_Load_643(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1 - 1, arityPad, arityPad)) [ 0 <= ar_1 /\ -1 <= i241' /\ 0 <= ar_0 /\ ar_1 - 1 = i241' ]
(Comp: ?, Cost: 6) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i176' /\ 1 <= ar_0 /\ 0 <= ar_0 /\ -1 <= i176' /\ -1 <= ar_2 /\ 0 <= ar_2 ]
(Comp: 1, Cost: 1) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1, arityPad, arityPad)) [ 0 <= ar_0 /\ ar_2 = -1 ]
(Comp: ?, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\ ar_0 <= -1 /\ -1 <= i146' /\ ar_0 < 0 /\ 0 <= ar_2 ]
(Comp: 1, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_0 - 1, arityPad)) [ ar_0 - 1 = i143' /\ -1 <= i143' /\ 0 <= ar_0 ]
(Comp: 1, Cost: 16) main_Load_1(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_2, ar_1, arityPad)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_1(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
A polynomial rank function with
Pol(main_Load_643) = 0
Pol(main_LT_454) = V_3 + 1
Pol(main_LT_404) = V_1
Pol(main_Load_1) = V_1
Pol(koat_start) = V_1
orients all transitions weakly and the transition
main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i176' /\ 1 <= ar_0 /\ 0 <= ar_0 /\ -1 <= i176' /\ -1 <= ar_2 /\ 0 <= ar_2 ]
strictly and produces the following problem:
5: T:
(Comp: ar_2 + 1, Cost: 6) main_Load_643(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1 - 1, arityPad, arityPad)) [ 0 <= ar_1 /\ -1 <= i241' /\ 0 <= ar_0 /\ ar_1 - 1 = i241' ]
(Comp: ar_0, Cost: 6) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i176' /\ 1 <= ar_0 /\ 0 <= ar_0 /\ -1 <= i176' /\ -1 <= ar_2 /\ 0 <= ar_2 ]
(Comp: 1, Cost: 1) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1, arityPad, arityPad)) [ 0 <= ar_0 /\ ar_2 = -1 ]
(Comp: ?, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\ ar_0 <= -1 /\ -1 <= i146' /\ ar_0 < 0 /\ 0 <= ar_2 ]
(Comp: 1, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_0 - 1, arityPad)) [ ar_0 - 1 = i143' /\ -1 <= i143' /\ 0 <= ar_0 ]
(Comp: 1, Cost: 16) main_Load_1(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_2, ar_1, arityPad)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_1(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
A polynomial rank function with
Pol(main_LT_404) = V_3 + 1
and size complexities
S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_1(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-0) = ar_0
S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_1(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-1) = ar_1
S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_1(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-2) = ar_2
S("koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_1(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]", 0-3) = ar_3
S("main_Load_1(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_2, ar_1, arityPad)) [ 0 <= static'1 /\\ 0 <= ar_3 /\\ static''' <= ar_3 + 2 /\\ 0 <= static''' /\\ static'1 <= static''' + 1 ]", 0-0) = ar_0
S("main_Load_1(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_2, ar_1, arityPad)) [ 0 <= static'1 /\\ 0 <= ar_3 /\\ static''' <= ar_3 + 2 /\\ 0 <= static''' /\\ static'1 <= static''' + 1 ]", 0-1) = ar_2
S("main_Load_1(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_2, ar_1, arityPad)) [ 0 <= static'1 /\\ 0 <= ar_3 /\\ static''' <= ar_3 + 2 /\\ 0 <= static''' /\\ static'1 <= static''' + 1 ]", 0-2) = ar_1
S("main_Load_1(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_2, ar_1, arityPad)) [ 0 <= static'1 /\\ 0 <= ar_3 /\\ static''' <= ar_3 + 2 /\\ 0 <= static''' /\\ static'1 <= static''' + 1 ]", 0-3) = ?
S("main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_0 - 1, arityPad)) [ ar_0 - 1 = i143' /\\ -1 <= i143' /\\ 0 <= ar_0 ]", 0-0) = ar_0
S("main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_0 - 1, arityPad)) [ ar_0 - 1 = i143' /\\ -1 <= i143' /\\ 0 <= ar_0 ]", 0-1) = ar_2
S("main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_0 - 1, arityPad)) [ ar_0 - 1 = i143' /\\ -1 <= i143' /\\ 0 <= ar_0 ]", 0-2) = ar_0 + 1
S("main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_0 - 1, arityPad)) [ ar_0 - 1 = i143' /\\ -1 <= i143' /\\ 0 <= ar_0 ]", 0-3) = ?
S("main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\\ ar_0 <= -1 /\\ -1 <= i146' /\\ ar_0 < 0 /\\ 0 <= ar_2 ]", 0-0) = ar_0
S("main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\\ ar_0 <= -1 /\\ -1 <= i146' /\\ ar_0 < 0 /\\ 0 <= ar_2 ]", 0-1) = ar_2
S("main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\\ ar_0 <= -1 /\\ -1 <= i146' /\\ ar_0 < 0 /\\ 0 <= ar_2 ]", 0-2) = ar_1 + 1
S("main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\\ ar_0 <= -1 /\\ -1 <= i146' /\\ ar_0 < 0 /\\ 0 <= ar_2 ]", 0-3) = ?
S("main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1, arityPad, arityPad)) [ 0 <= ar_0 /\\ ar_2 = -1 ]", 0-0) = ar_0
S("main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1, arityPad, arityPad)) [ 0 <= ar_0 /\\ ar_2 = -1 ]", 0-1) = ar_2
S("main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1, arityPad, arityPad)) [ 0 <= ar_0 /\\ ar_2 = -1 ]", 0-2) = ?
S("main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1, arityPad, arityPad)) [ 0 <= ar_0 /\\ ar_2 = -1 ]", 0-3) = ?
S("main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i176' /\\ 1 <= ar_0 /\\ 0 <= ar_0 /\\ -1 <= i176' /\\ -1 <= ar_2 /\\ 0 <= ar_2 ]", 0-0) = ar_0
S("main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i176' /\\ 1 <= ar_0 /\\ 0 <= ar_0 /\\ -1 <= i176' /\\ -1 <= ar_2 /\\ 0 <= ar_2 ]", 0-1) = ar_2
S("main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i176' /\\ 1 <= ar_0 /\\ 0 <= ar_0 /\\ -1 <= i176' /\\ -1 <= ar_2 /\\ 0 <= ar_2 ]", 0-2) = ar_0 + 2
S("main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i176' /\\ 1 <= ar_0 /\\ 0 <= ar_0 /\\ -1 <= i176' /\\ -1 <= ar_2 /\\ 0 <= ar_2 ]", 0-3) = ?
S("main_Load_643(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1 - 1, arityPad, arityPad)) [ 0 <= ar_1 /\\ -1 <= i241' /\\ 0 <= ar_0 /\\ ar_1 - 1 = i241' ]", 0-0) = ar_0
S("main_Load_643(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1 - 1, arityPad, arityPad)) [ 0 <= ar_1 /\\ -1 <= i241' /\\ 0 <= ar_0 /\\ ar_1 - 1 = i241' ]", 0-1) = ar_2 + 1
S("main_Load_643(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1 - 1, arityPad, arityPad)) [ 0 <= ar_1 /\\ -1 <= i241' /\\ 0 <= ar_0 /\\ ar_1 - 1 = i241' ]", 0-2) = ?
S("main_Load_643(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1 - 1, arityPad, arityPad)) [ 0 <= ar_1 /\\ -1 <= i241' /\\ 0 <= ar_0 /\\ ar_1 - 1 = i241' ]", 0-3) = ?
orients the transitions
main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\ ar_0 <= -1 /\ -1 <= i146' /\ ar_0 < 0 /\ 0 <= ar_2 ]
weakly and the transition
main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\ ar_0 <= -1 /\ -1 <= i146' /\ ar_0 < 0 /\ 0 <= ar_2 ]
strictly and produces the following problem:
6: T:
(Comp: ar_2 + 1, Cost: 6) main_Load_643(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1 - 1, arityPad, arityPad)) [ 0 <= ar_1 /\ -1 <= i241' /\ 0 <= ar_0 /\ ar_1 - 1 = i241' ]
(Comp: ar_0, Cost: 6) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i176' /\ 1 <= ar_0 /\ 0 <= ar_0 /\ -1 <= i176' /\ -1 <= ar_2 /\ 0 <= ar_2 ]
(Comp: 1, Cost: 1) main_LT_454(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_643(ar_0, ar_1, arityPad, arityPad)) [ 0 <= ar_0 /\ ar_2 = -1 ]
(Comp: ar_1 + 1, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_1, ar_2 - 1, arityPad)) [ ar_2 - 1 = i146' /\ ar_0 <= -1 /\ -1 <= i146' /\ ar_0 < 0 /\ 0 <= ar_2 ]
(Comp: 1, Cost: 6) main_LT_404(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_454(ar_0, ar_1, ar_0 - 1, arityPad)) [ ar_0 - 1 = i143' /\ -1 <= i143' /\ 0 <= ar_0 ]
(Comp: 1, Cost: 16) main_Load_1(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_LT_404(ar_0, ar_2, ar_1, arityPad)) [ 0 <= static'1 /\ 0 <= ar_3 /\ static''' <= ar_3 + 2 /\ 0 <= static''' /\ static'1 <= static''' + 1 ]
(Comp: 1, Cost: 0) koat_start(ar_0, ar_1, ar_2, ar_3) -> Com_1(main_Load_1(ar_0, ar_1, ar_2, ar_3)) [ 0 <= 0 ]
start location: koat_start
leaf cost: 0
Complexity upper bound 6*ar_2 + 6*ar_0 + 6*ar_1 + 35
Time: 0.246 sec (SMT: 0.220 sec)
(18) BOUNDS(CONSTANT, 35 + 6 * |#0| + 6 * |#1| + 6 * |#2|)
(19) TerminationGraphToComplexityProof (BOTH CONCRETE BOUNDS(ID, ADD(4)) transformation)
Extracted set of 62 edges for the analysis of TIME complexity. Kept leaves.
(20) Obligation:
Set of 62 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
(21) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)
Transformed 62 jbc graph edges to a weighted ITS with 62 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.
(22) Obligation:
IntTrs with 62 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_Load_1(i1, i4, i6, env, static) -{0,0}> main_Load_4(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_4(i1, i4, i6, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_6(i1, i4, i6, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, i6, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_14(a2, i1, i4, i6, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_14(a2, i1, i4, i6, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_16(i1, i4, i6, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_16(i1, i4, i6, env, static) -{0,0}> langle_clinit_rangle_New_17(i1, i4, i6, env, static) :|: 0 >= 0
langle_clinit_rangle_New_17(i1, i4, i6, env, static) -{0,0}> langle_clinit_rangle_New_19(i1, i4, i6, env, static) :|: 0 <= static
langle_clinit_rangle_New_19(i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_Duplicate_20(o2, i1, i4, i6, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_20(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_21(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_21(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_23(o2, NULL, i1, i4, i6, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_23(o2, NULL, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Load_24(o2, i1, i4, i6, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_24(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_InvokeMethod_26(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_26(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Load_28(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_Load_28(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_InvokeMethod_30(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_30(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Return_32(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_Return_32(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Return_35(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_Return_35(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_37(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_37(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_Return_40(i1, i4, i6, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_40(i1, i4, i6, env, static) -{1,1}> main_Load_41(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_41(i1, i4, i6, env, static) -{0,0}> main_Load_42(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_42(i1, i4, i6, env, static) -{0,0}> main_Load_43(i1, i4, i6, env, static) :|: 0 <= static
main_Load_43(i1, i4, i6, env, static) -{0,0}> main_Load_45(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_45(i1, i4, i6, env, static) -{0,0}> main_Load_47(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_47(i1, i4, i6, env, static) -{1,1}> main_LT_52(i1, i4, i6, env, static) :|: 0 >= 0
main_LT_52(i1, i4, i6, env, static) -{0,0}> main_LT_404(i1, i4, i6, i4, env, static) :|: 0 >= 0
main_LT_404(i137, i50, i6, i51, env, static) -{0,0}> main_LT_410(i137, i50, i6, i51, env, static) :|: i137 <= -1
main_LT_404(i138, i50, i6, i51, env, static) -{0,0}> main_LT_411(i138, i50, i6, i51, env, static) :|: 0 <= i138
main_LT_410(i137, i50, i6, i51, env, static) -{1,1}> main_Load_414(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
main_LT_411(i138, i50, i6, i51, env, static) -{1,1}> main_Inc_416(i138, i50, i6, env, static) :|: 0 <= i138
main_Load_414(i137, i50, i6, i51, env, static) -{1,1}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1
main_Inc_416(i138, i50, i6, env, static) -{1,1}> main_Load_421(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138 && i138 + -1 = i143
main_LT_419(i137, i50, i6, i144, env, static) -{0,0}> main_LT_423(i137, i50, i6, i144, env, static) :|: i144 <= -1 && i137 <= -1
main_LT_419(i137, i50, i6, i145, env, static) -{0,0}> main_LT_425(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_Load_421(i138, i50, i6, i143, env, static) -{1,1}> main_Store_426(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_LT_425(i137, i50, i6, i145, env, static) -{1,1}> main_Inc_430(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_Store_426(i138, i50, i6, i143, env, static) -{1,1}> main_JMP_432(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Inc_430(i137, i50, i6, i145, env, static) -{1,1}> main_JMP_436(i137, i50, i6, i146, env, static) :|: i145 + -1 = i146 && i137 <= -1 && -1 <= i146 && 0 <= i145
main_JMP_432(i138, i50, i6, i143, env, static) -{1,1}> main_Load_439(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_JMP_436(i137, i50, i6, i146, env, static) -{1,1}> main_Load_443(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_Load_439(i138, i50, i6, i143, env, static) -{1,1}> main_LT_454(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Load_443(i137, i50, i6, i146, env, static) -{1,1}> main_LT_461(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_LT_454(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_LT_464(i138, i50, i6, iconst_NEG1, env, static) :|: -1 <= iconst_NEG1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_454(i171, i50, i6, i170, env, static) -{0,0}> main_LT_465(i171, i50, i6, i170, env, static) :|: 0 <= i171 && -1 <= i170 && 1 <= i171 && 0 <= i170
main_LT_461(i137, i50, i6, i146, env, static) -{0,0}> main_LT_404(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_LT_464(i138, i50, i6, iconst_NEG1, env, static) -{1,1}> main_Load_469(i138, i50, i6, iconst_NEG1, env, static) :|: iconst_NEG1 < 0 && 0 <= i138 && iconst_NEG1 = -1
main_LT_465(i171, i50, i6, i170, env, static) -{1,1}> main_Inc_472(i171, i50, i6, i170, env, static) :|: 1 <= i171 && 0 <= i170
main_Load_469(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_Load_643(i138, i50, i6, iconst_NEG1, i6, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_Inc_472(i171, i50, i6, i170, env, static) -{1,1}> main_Load_484(i171, i50, i6, i176, env, static) :|: -1 <= i176 && i170 + -1 = i176 && 1 <= i171 && 0 <= i170
main_Load_484(i171, i50, i6, i176, env, static) -{1,1}> main_Store_490(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Store_490(i171, i50, i6, i176, env, static) -{1,1}> main_JMP_500(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_JMP_500(i171, i50, i6, i176, env, static) -{1,1}> main_Load_510(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Load_510(i171, i50, i6, i176, env, static) -{1,1}> main_LT_608(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_LT_608(i171, i50, i6, i176, env, static) -{0,0}> main_LT_454(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 0 <= i171 && 1 <= i171
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, iconst_NEG1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i235, iconst_NEG1, env, static) -{0,0}> main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) -{1,1}> main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) -{1,1}> main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235 && i235 + -1 = i241
main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) :|: iconst_NEG1 < 0 && -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) -{0,0}> main_Load_643(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
(23) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
obtained
main_Load_1(
i1,
i4,
i6,
env,
static) -{16,16}>
main_LT_404(
i1,
i4,
i6,
i4,
env,
static'1) :|: 0 >= 0 &&
0 <
2 &&
0 <=
static'1 &&
0 <=
static &&
0 <=
1 &&
0 <
1 &&
static''' <=
static +
2 &&
0 <=
static''' &&
0 <=
2 &&
static'1 <=
static''' +
1by chaining
main_Load_1(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_4(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_4(
i1,
i4,
i6,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
i6,
env,
static) :|:
iconst_0 =
0langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
i6,
iconst_0,
env,
static) :|:
a2 =
2 &&
iconst_0 =
0 &&
0 <
a2langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
i6,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_New_16(
i1,
i4,
i6,
env,
static') :|:
0 <=
a2 &&
iconst_0 =
0 &&
static' <=
static +
a2 &&
0 <=
static &&
0 <
a2langle_clinit_rangle_New_16(
i1,
i4,
i6,
env,
static) -{0,0}>
langle_clinit_rangle_New_17(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
langle_clinit_rangle_New_17(
i1,
i4,
i6,
env,
static) -{0,0}>
langle_clinit_rangle_New_19(
i1,
i4,
i6,
env,
static) :|:
0 <=
staticlangle_clinit_rangle_New_19(
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_Duplicate_20(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2 &&
o2 =
1langle_clinit_rangle_Duplicate_20(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_ConstantStackPush_21(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_clinit_rangle_ConstantStackPush_21(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_InvokeMethod_23(
o2,
NULL,
i1,
i4,
i6,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_clinit_rangle_InvokeMethod_23(
o2,
NULL,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Load_24(
o2,
i1,
i4,
i6,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_init_rangle_Load_24(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_26(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_26(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Load_28(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_Load_28(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_30(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_30(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Return_32(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_Return_32(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Return_35(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_Return_35(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_37(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_clinit_rangle_FieldAccess_37(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_Return_40(
i1,
i4,
i6,
env,
static') :|:
0 <
o2 &&
0 <=
o2 &&
0 <=
static &&
static' <=
static +
o2langle_clinit_rangle_Return_40(
i1,
i4,
i6,
env,
static) -{1,1}>
main_Load_41(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_41(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_42(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_42(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_43(
i1,
i4,
i6,
env,
static) :|:
0 <=
staticmain_Load_43(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_45(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_45(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_47(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_47(
i1,
i4,
i6,
env,
static) -{1,1}>
main_LT_52(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_LT_52(
i1,
i4,
i6,
env,
static) -{0,0}>
main_LT_404(
i1,
i4,
i6,
i4,
env,
static) :|: 0 >= 0
obtained
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i143', env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
by chaining
main_LT_404(i138, i50, i6, i51, env, static) -{0,0}> main_LT_411(i138, i50, i6, i51, env, static) :|: 0 <= i138
main_LT_411(i138, i50, i6, i51, env, static) -{1,1}> main_Inc_416(i138, i50, i6, env, static) :|: 0 <= i138
main_Inc_416(i138, i50, i6, env, static) -{1,1}> main_Load_421(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138 && i138 + -1 = i143
main_Load_421(i138, i50, i6, i143, env, static) -{1,1}> main_Store_426(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Store_426(i138, i50, i6, i143, env, static) -{1,1}> main_JMP_432(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_JMP_432(i138, i50, i6, i143, env, static) -{1,1}> main_Load_439(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Load_439(i138, i50, i6, i143, env, static) -{1,1}> main_LT_454(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
obtained
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i176', env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
by chaining
main_LT_454(i171, i50, i6, i170, env, static) -{0,0}> main_LT_465(i171, i50, i6, i170, env, static) :|: 0 <= i171 && -1 <= i170 && 1 <= i171 && 0 <= i170
main_LT_465(i171, i50, i6, i170, env, static) -{1,1}> main_Inc_472(i171, i50, i6, i170, env, static) :|: 1 <= i171 && 0 <= i170
main_Inc_472(i171, i50, i6, i170, env, static) -{1,1}> main_Load_484(i171, i50, i6, i176, env, static) :|: -1 <= i176 && i170 + -1 = i176 && 1 <= i171 && 0 <= i170
main_Load_484(i171, i50, i6, i176, env, static) -{1,1}> main_Store_490(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Store_490(i171, i50, i6, i176, env, static) -{1,1}> main_JMP_500(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_JMP_500(i171, i50, i6, i176, env, static) -{1,1}> main_Load_510(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Load_510(i171, i50, i6, i176, env, static) -{1,1}> main_LT_608(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_LT_608(i171, i50, i6, i176, env, static) -{0,0}> main_LT_454(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 0 <= i171 && 1 <= i171
obtained
main_LT_454(i138, i50, i6, -1, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1
by chaining
main_LT_454(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_LT_464(i138, i50, i6, iconst_NEG1, env, static) :|: -1 <= iconst_NEG1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_464(i138, i50, i6, iconst_NEG1, env, static) -{1,1}> main_Load_469(i138, i50, i6, iconst_NEG1, env, static) :|: iconst_NEG1 < 0 && 0 <= i138 && iconst_NEG1 = -1
main_Load_469(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_Load_643(i138, i50, i6, iconst_NEG1, i6, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
obtained
main_LT_651(i138, i50, i219, i235, -1, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241'
by chaining
main_LT_651(i138, i50, i219, i235, iconst_NEG1, env, static) -{0,0}> main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) -{1,1}> main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) -{1,1}> main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235 && i235 + -1 = i241
main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) :|: iconst_NEG1 < 0 && -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) -{0,0}> main_Load_643(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
obtained
main_LT_404(i137, i50, i6, i51, env, static) -{2,2}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
by chaining
main_LT_404(i137, i50, i6, i51, env, static) -{0,0}> main_LT_410(i137, i50, i6, i51, env, static) :|: i137 <= -1
main_LT_410(i137, i50, i6, i51, env, static) -{1,1}> main_Load_414(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
main_Load_414(i137, i50, i6, i51, env, static) -{1,1}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1
obtained
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i146', env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
by chaining
main_LT_419(i137, i50, i6, i145, env, static) -{0,0}> main_LT_425(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_LT_425(i137, i50, i6, i145, env, static) -{1,1}> main_Inc_430(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_Inc_430(i137, i50, i6, i145, env, static) -{1,1}> main_JMP_436(i137, i50, i6, i146, env, static) :|: i145 + -1 = i146 && i137 <= -1 && -1 <= i146 && 0 <= i145
main_JMP_436(i137, i50, i6, i146, env, static) -{1,1}> main_Load_443(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_Load_443(i137, i50, i6, i146, env, static) -{1,1}> main_LT_461(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_LT_461(i137, i50, i6, i146, env, static) -{0,0}> main_LT_404(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
(24) Obligation:
IntTrs with 10 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i143', env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i176', env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_LT_454(i138, i50, i6, -1, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, iconst_NEG1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i235, -1, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241'
main_LT_404(i137, i50, i6, i51, env, static) -{2,2}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
main_LT_419(i137, i50, i6, i144, env, static) -{0,0}> main_LT_423(i137, i50, i6, i144, env, static) :|: i144 <= -1 && i137 <= -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i146', env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
(25) MovedArithmeticToConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from lhss to constraints.
main_LT_651(i138, i50, i219, i235, -1, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241'
was transformed to
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
main_LT_454(i138, i50, i6, -1, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1
was transformed to
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
(26) Obligation:
IntTrs with 10 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i143', env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i146', env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, iconst_NEG1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i176', env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_LT_419(i137, i50, i6, i144, env, static) -{0,0}> main_LT_423(i137, i50, i6, i144, env, static) :|: i144 <= -1 && i137 <= -1
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
main_LT_404(i137, i50, i6, i51, env, static) -{2,2}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
(27) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from constraints to rhss.
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i143', env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
was transformed to
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i138 + -1, env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
was transformed to
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, -1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i146', env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
was transformed to
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i145 + -1, env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
was transformed to
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i235 + -1, env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, iconst_NEG1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
was transformed to
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, -1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i176', env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
was transformed to
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i170 + -1, env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
(28) Obligation:
IntTrs with 10 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i138 + -1, env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, -1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i145 + -1, env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i235 + -1, env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, -1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i170 + -1, env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_LT_419(i137, i50, i6, i144, env, static) -{0,0}> main_LT_423(i137, i50, i6, i144, env, static) :|: i144 <= -1 && i137 <= -1
main_LT_404(i137, i50, i6, i51, env, static) -{2,2}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
(29) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Simplified expressions.
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
was transformed to
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: 0 <= i138 && x = -1
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
was transformed to
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i138 + -1, env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
was transformed to
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i138 - 1, env, static) :|: i138 - 1 = i143' && -1 <= i143' && 0 <= i138
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i235 + -1, env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
was transformed to
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i235 - 1, env, static) :|: 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 - 1 = i241' && x = -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i145 + -1, env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
was transformed to
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i145 - 1, env, static) :|: i145 - 1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i170 + -1, env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
was transformed to
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i170 - 1, env, static) :|: i170 - 1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
(30) Obligation:
IntTrs with 10 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i138 - 1, env, static) :|: i138 - 1 = i143' && -1 <= i143' && 0 <= i138
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: 0 <= i138 && x = -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i145 - 1, env, static) :|: i145 - 1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
main_LT_419(i137, i50, i6, i144, env, static) -{0,0}> main_LT_423(i137, i50, i6, i144, env, static) :|: i144 <= -1 && i137 <= -1
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, -1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_404(i137, i50, i6, i51, env, static) -{2,2}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, -1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i235 - 1, env, static) :|: 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 - 1 = i241' && x = -1
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i170 - 1, env, static) :|: i170 - 1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
(31) JBCGraphEdgesToCpxIntTrsProof (CONCRETE UPPER BOUND(ID) transformation)
Transformed 62 jbc graph edges to a weighted ITS with 62 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.
(32) Obligation:
IntTrs with 62 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_Load_1(i1, i4, i6, env, static) -{0,0}> main_Load_4(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_4(i1, i4, i6, env, static) -{0,0}> langle_clinit_rangle_ConstantStackPush_6(i1, i4, i6, env, static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, i6, env, static) :|: iconst_0 = 0
langle_clinit_rangle_ArrayCreate_12(iconst_0, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_14(a2, i1, i4, i6, iconst_0, env, static) :|: a2 = 2 && iconst_0 = 0 && 0 < a2
langle_clinit_rangle_FieldAccess_14(a2, i1, i4, i6, iconst_0, env, static) -{1,1}> langle_clinit_rangle_New_16(i1, i4, i6, env, static') :|: 0 <= a2 && iconst_0 = 0 && static' <= static + a2 && 0 <= static && 0 < a2
langle_clinit_rangle_New_16(i1, i4, i6, env, static) -{0,0}> langle_clinit_rangle_New_17(i1, i4, i6, env, static) :|: 0 >= 0
langle_clinit_rangle_New_17(i1, i4, i6, env, static) -{0,0}> langle_clinit_rangle_New_19(i1, i4, i6, env, static) :|: 0 <= static
langle_clinit_rangle_New_19(i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_Duplicate_20(o2, i1, i4, i6, env, static) :|: 0 < o2 && o2 = 1
langle_clinit_rangle_Duplicate_20(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_ConstantStackPush_21(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_clinit_rangle_ConstantStackPush_21(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_InvokeMethod_23(o2, NULL, i1, i4, i6, env, static) :|: NULL = 0 && 0 < o2
langle_clinit_rangle_InvokeMethod_23(o2, NULL, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Load_24(o2, i1, i4, i6, env, static) :|: NULL = 0 && 0 < o2
langle_init_rangle_Load_24(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_InvokeMethod_26(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_26(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Load_28(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_Load_28(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_InvokeMethod_30(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_InvokeMethod_30(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Return_32(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_Return_32(o2, i1, i4, i6, env, static) -{1,1}> langle_init_rangle_Return_35(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_init_rangle_Return_35(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_FieldAccess_37(o2, i1, i4, i6, env, static) :|: 0 < o2
langle_clinit_rangle_FieldAccess_37(o2, i1, i4, i6, env, static) -{1,1}> langle_clinit_rangle_Return_40(i1, i4, i6, env, static') :|: 0 < o2 && 0 <= o2 && 0 <= static && static' <= static + o2
langle_clinit_rangle_Return_40(i1, i4, i6, env, static) -{1,1}> main_Load_41(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_41(i1, i4, i6, env, static) -{0,0}> main_Load_42(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_42(i1, i4, i6, env, static) -{0,0}> main_Load_43(i1, i4, i6, env, static) :|: 0 <= static
main_Load_43(i1, i4, i6, env, static) -{0,0}> main_Load_45(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_45(i1, i4, i6, env, static) -{0,0}> main_Load_47(i1, i4, i6, env, static) :|: 0 >= 0
main_Load_47(i1, i4, i6, env, static) -{1,1}> main_LT_52(i1, i4, i6, env, static) :|: 0 >= 0
main_LT_52(i1, i4, i6, env, static) -{0,0}> main_LT_404(i1, i4, i6, i4, env, static) :|: 0 >= 0
main_LT_404(i137, i50, i6, i51, env, static) -{0,0}> main_LT_410(i137, i50, i6, i51, env, static) :|: i137 <= -1
main_LT_404(i138, i50, i6, i51, env, static) -{0,0}> main_LT_411(i138, i50, i6, i51, env, static) :|: 0 <= i138
main_LT_410(i137, i50, i6, i51, env, static) -{1,1}> main_Load_414(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
main_LT_411(i138, i50, i6, i51, env, static) -{1,1}> main_Inc_416(i138, i50, i6, env, static) :|: 0 <= i138
main_Load_414(i137, i50, i6, i51, env, static) -{1,1}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1
main_Inc_416(i138, i50, i6, env, static) -{1,1}> main_Load_421(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138 && i138 + -1 = i143
main_LT_419(i137, i50, i6, i144, env, static) -{0,0}> main_LT_423(i137, i50, i6, i144, env, static) :|: i144 <= -1 && i137 <= -1
main_LT_419(i137, i50, i6, i145, env, static) -{0,0}> main_LT_425(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_Load_421(i138, i50, i6, i143, env, static) -{1,1}> main_Store_426(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_LT_425(i137, i50, i6, i145, env, static) -{1,1}> main_Inc_430(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_Store_426(i138, i50, i6, i143, env, static) -{1,1}> main_JMP_432(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Inc_430(i137, i50, i6, i145, env, static) -{1,1}> main_JMP_436(i137, i50, i6, i146, env, static) :|: i145 + -1 = i146 && i137 <= -1 && -1 <= i146 && 0 <= i145
main_JMP_432(i138, i50, i6, i143, env, static) -{1,1}> main_Load_439(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_JMP_436(i137, i50, i6, i146, env, static) -{1,1}> main_Load_443(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_Load_439(i138, i50, i6, i143, env, static) -{1,1}> main_LT_454(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Load_443(i137, i50, i6, i146, env, static) -{1,1}> main_LT_461(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_LT_454(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_LT_464(i138, i50, i6, iconst_NEG1, env, static) :|: -1 <= iconst_NEG1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_454(i171, i50, i6, i170, env, static) -{0,0}> main_LT_465(i171, i50, i6, i170, env, static) :|: 0 <= i171 && -1 <= i170 && 1 <= i171 && 0 <= i170
main_LT_461(i137, i50, i6, i146, env, static) -{0,0}> main_LT_404(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_LT_464(i138, i50, i6, iconst_NEG1, env, static) -{1,1}> main_Load_469(i138, i50, i6, iconst_NEG1, env, static) :|: iconst_NEG1 < 0 && 0 <= i138 && iconst_NEG1 = -1
main_LT_465(i171, i50, i6, i170, env, static) -{1,1}> main_Inc_472(i171, i50, i6, i170, env, static) :|: 1 <= i171 && 0 <= i170
main_Load_469(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_Load_643(i138, i50, i6, iconst_NEG1, i6, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_Inc_472(i171, i50, i6, i170, env, static) -{1,1}> main_Load_484(i171, i50, i6, i176, env, static) :|: -1 <= i176 && i170 + -1 = i176 && 1 <= i171 && 0 <= i170
main_Load_484(i171, i50, i6, i176, env, static) -{1,1}> main_Store_490(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Store_490(i171, i50, i6, i176, env, static) -{1,1}> main_JMP_500(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_JMP_500(i171, i50, i6, i176, env, static) -{1,1}> main_Load_510(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Load_510(i171, i50, i6, i176, env, static) -{1,1}> main_LT_608(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_LT_608(i171, i50, i6, i176, env, static) -{0,0}> main_LT_454(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 0 <= i171 && 1 <= i171
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, iconst_NEG1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i235, iconst_NEG1, env, static) -{0,0}> main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) -{1,1}> main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) -{1,1}> main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235 && i235 + -1 = i241
main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) :|: iconst_NEG1 < 0 && -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) -{0,0}> main_Load_643(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
(33) StraightLineCodeCompressionProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
obtained
main_Load_1(
i1,
i4,
i6,
env,
static) -{16,16}>
main_LT_404(
i1,
i4,
i6,
i4,
env,
static'1) :|: 0 >= 0 &&
0 <
2 &&
0 <=
static'1 &&
0 <=
static &&
0 <=
1 &&
0 <
1 &&
static''' <=
static +
2 &&
0 <=
static''' &&
0 <=
2 &&
static'1 <=
static''' +
1by chaining
main_Load_1(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_4(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_4(
i1,
i4,
i6,
env,
static) -{0,0}>
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
langle_clinit_rangle_ConstantStackPush_6(
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
i6,
env,
static) :|:
iconst_0 =
0langle_clinit_rangle_ArrayCreate_12(
iconst_0,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
i6,
iconst_0,
env,
static) :|:
a2 =
2 &&
iconst_0 =
0 &&
0 <
a2langle_clinit_rangle_FieldAccess_14(
a2,
i1,
i4,
i6,
iconst_0,
env,
static) -{1,1}>
langle_clinit_rangle_New_16(
i1,
i4,
i6,
env,
static') :|:
0 <=
a2 &&
iconst_0 =
0 &&
static' <=
static +
a2 &&
0 <=
static &&
0 <
a2langle_clinit_rangle_New_16(
i1,
i4,
i6,
env,
static) -{0,0}>
langle_clinit_rangle_New_17(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
langle_clinit_rangle_New_17(
i1,
i4,
i6,
env,
static) -{0,0}>
langle_clinit_rangle_New_19(
i1,
i4,
i6,
env,
static) :|:
0 <=
staticlangle_clinit_rangle_New_19(
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_Duplicate_20(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2 &&
o2 =
1langle_clinit_rangle_Duplicate_20(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_ConstantStackPush_21(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_clinit_rangle_ConstantStackPush_21(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_InvokeMethod_23(
o2,
NULL,
i1,
i4,
i6,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_clinit_rangle_InvokeMethod_23(
o2,
NULL,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Load_24(
o2,
i1,
i4,
i6,
env,
static) :|:
NULL =
0 &&
0 <
o2langle_init_rangle_Load_24(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_26(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_26(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Load_28(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_Load_28(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_InvokeMethod_30(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_InvokeMethod_30(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Return_32(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_Return_32(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_init_rangle_Return_35(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_init_rangle_Return_35(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_FieldAccess_37(
o2,
i1,
i4,
i6,
env,
static) :|:
0 <
o2langle_clinit_rangle_FieldAccess_37(
o2,
i1,
i4,
i6,
env,
static) -{1,1}>
langle_clinit_rangle_Return_40(
i1,
i4,
i6,
env,
static') :|:
0 <
o2 &&
0 <=
o2 &&
0 <=
static &&
static' <=
static +
o2langle_clinit_rangle_Return_40(
i1,
i4,
i6,
env,
static) -{1,1}>
main_Load_41(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_41(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_42(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_42(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_43(
i1,
i4,
i6,
env,
static) :|:
0 <=
staticmain_Load_43(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_45(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_45(
i1,
i4,
i6,
env,
static) -{0,0}>
main_Load_47(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_Load_47(
i1,
i4,
i6,
env,
static) -{1,1}>
main_LT_52(
i1,
i4,
i6,
env,
static) :|: 0 >= 0
main_LT_52(
i1,
i4,
i6,
env,
static) -{0,0}>
main_LT_404(
i1,
i4,
i6,
i4,
env,
static) :|: 0 >= 0
obtained
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i143', env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
by chaining
main_LT_404(i138, i50, i6, i51, env, static) -{0,0}> main_LT_411(i138, i50, i6, i51, env, static) :|: 0 <= i138
main_LT_411(i138, i50, i6, i51, env, static) -{1,1}> main_Inc_416(i138, i50, i6, env, static) :|: 0 <= i138
main_Inc_416(i138, i50, i6, env, static) -{1,1}> main_Load_421(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138 && i138 + -1 = i143
main_Load_421(i138, i50, i6, i143, env, static) -{1,1}> main_Store_426(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Store_426(i138, i50, i6, i143, env, static) -{1,1}> main_JMP_432(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_JMP_432(i138, i50, i6, i143, env, static) -{1,1}> main_Load_439(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
main_Load_439(i138, i50, i6, i143, env, static) -{1,1}> main_LT_454(i138, i50, i6, i143, env, static) :|: -1 <= i143 && 0 <= i138
obtained
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i176', env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
by chaining
main_LT_454(i171, i50, i6, i170, env, static) -{0,0}> main_LT_465(i171, i50, i6, i170, env, static) :|: 0 <= i171 && -1 <= i170 && 1 <= i171 && 0 <= i170
main_LT_465(i171, i50, i6, i170, env, static) -{1,1}> main_Inc_472(i171, i50, i6, i170, env, static) :|: 1 <= i171 && 0 <= i170
main_Inc_472(i171, i50, i6, i170, env, static) -{1,1}> main_Load_484(i171, i50, i6, i176, env, static) :|: -1 <= i176 && i170 + -1 = i176 && 1 <= i171 && 0 <= i170
main_Load_484(i171, i50, i6, i176, env, static) -{1,1}> main_Store_490(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Store_490(i171, i50, i6, i176, env, static) -{1,1}> main_JMP_500(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_JMP_500(i171, i50, i6, i176, env, static) -{1,1}> main_Load_510(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_Load_510(i171, i50, i6, i176, env, static) -{1,1}> main_LT_608(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 1 <= i171
main_LT_608(i171, i50, i6, i176, env, static) -{0,0}> main_LT_454(i171, i50, i6, i176, env, static) :|: -1 <= i176 && 0 <= i171 && 1 <= i171
obtained
main_LT_454(i138, i50, i6, -1, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1
by chaining
main_LT_454(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_LT_464(i138, i50, i6, iconst_NEG1, env, static) :|: -1 <= iconst_NEG1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_464(i138, i50, i6, iconst_NEG1, env, static) -{1,1}> main_Load_469(i138, i50, i6, iconst_NEG1, env, static) :|: iconst_NEG1 < 0 && 0 <= i138 && iconst_NEG1 = -1
main_Load_469(i138, i50, i6, iconst_NEG1, env, static) -{0,0}> main_Load_643(i138, i50, i6, iconst_NEG1, i6, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
obtained
main_LT_651(i138, i50, i219, i235, -1, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241'
by chaining
main_LT_651(i138, i50, i219, i235, iconst_NEG1, env, static) -{0,0}> main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_LT_655(i138, i50, i219, i235, iconst_NEG1, env, static) -{1,1}> main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) :|: 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235
main_Inc_662(i138, i50, i219, iconst_NEG1, i235, env, static) -{1,1}> main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1 && 0 <= i235 && i235 + -1 = i241
main_JMP_669(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_677(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_LT_683(i138, i50, i219, iconst_NEG1, i241, env, static) -{1,1}> main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) :|: iconst_NEG1 < 0 && -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
main_Load_690(i138, i50, i219, iconst_NEG1, i241, env, static) -{0,0}> main_Load_643(i138, i50, i219, iconst_NEG1, i241, env, static) :|: -1 <= i241 && 0 <= i138 && iconst_NEG1 = -1
obtained
main_LT_404(i137, i50, i6, i51, env, static) -{2,2}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
by chaining
main_LT_404(i137, i50, i6, i51, env, static) -{0,0}> main_LT_410(i137, i50, i6, i51, env, static) :|: i137 <= -1
main_LT_410(i137, i50, i6, i51, env, static) -{1,1}> main_Load_414(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
main_Load_414(i137, i50, i6, i51, env, static) -{1,1}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1
obtained
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i146', env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
by chaining
main_LT_419(i137, i50, i6, i145, env, static) -{0,0}> main_LT_425(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_LT_425(i137, i50, i6, i145, env, static) -{1,1}> main_Inc_430(i137, i50, i6, i145, env, static) :|: i137 <= -1 && 0 <= i145
main_Inc_430(i137, i50, i6, i145, env, static) -{1,1}> main_JMP_436(i137, i50, i6, i146, env, static) :|: i145 + -1 = i146 && i137 <= -1 && -1 <= i146 && 0 <= i145
main_JMP_436(i137, i50, i6, i146, env, static) -{1,1}> main_Load_443(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_Load_443(i137, i50, i6, i146, env, static) -{1,1}> main_LT_461(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
main_LT_461(i137, i50, i6, i146, env, static) -{0,0}> main_LT_404(i137, i50, i6, i146, env, static) :|: i137 <= -1 && -1 <= i146
(34) Obligation:
IntTrs with 10 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i143', env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i176', env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_LT_454(i138, i50, i6, -1, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, iconst_NEG1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i235, -1, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241'
main_LT_404(i137, i50, i6, i51, env, static) -{2,2}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
main_LT_419(i137, i50, i6, i144, env, static) -{0,0}> main_LT_423(i137, i50, i6, i144, env, static) :|: i144 <= -1 && i137 <= -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i146', env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
(35) MovedArithmeticToConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from lhss to constraints.
main_LT_651(i138, i50, i219, i235, -1, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241'
was transformed to
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
main_LT_454(i138, i50, i6, -1, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1
was transformed to
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
(36) Obligation:
IntTrs with 10 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i143', env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i146', env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, iconst_NEG1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i176', env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_LT_419(i137, i50, i6, i144, env, static) -{0,0}> main_LT_423(i137, i50, i6, i144, env, static) :|: i144 <= -1 && i137 <= -1
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
main_LT_404(i137, i50, i6, i51, env, static) -{2,2}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
(37) MovedArithmeticFromConstraintsProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Moved arithmethic from constraints to rhss.
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i143', env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
was transformed to
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i138 + -1, env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, iconst_NEG1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
was transformed to
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, -1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i146', env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
was transformed to
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i145 + -1, env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i241', env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
was transformed to
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i235 + -1, env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, iconst_NEG1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
was transformed to
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, -1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i176', env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
was transformed to
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i170 + -1, env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
(38) Obligation:
IntTrs with 10 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i138 + -1, env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, -1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i145 + -1, env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i235 + -1, env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, -1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i170 + -1, env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
main_LT_419(i137, i50, i6, i144, env, static) -{0,0}> main_LT_423(i137, i50, i6, i144, env, static) :|: i144 <= -1 && i137 <= -1
main_LT_404(i137, i50, i6, i51, env, static) -{2,2}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
(39) ExpressionSimplificationProof (BOTH CONCRETE BOUNDS(ID, ID) transformation)
Simplified expressions.
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: -1 < 0 && 0 <= i138 && -1 <= -1 && x = -1
was transformed to
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: 0 <= i138 && x = -1
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 >= 0 && 0 < 2 && 0 <= static'1 && 0 <= static && 0 <= 1 && 0 < 1 && static''' <= static + 2 && 0 <= static''' && 0 <= 2 && static'1 <= static''' + 1
was transformed to
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i138 + -1, env, static) :|: i138 + -1 = i143' && -1 <= i143' && 0 <= i138
was transformed to
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i138 - 1, env, static) :|: i138 - 1 = i143' && -1 <= i143' && 0 <= i138
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i235 + -1, env, static) :|: -1 < 0 && 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 + -1 = i241' && x = -1
was transformed to
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i235 - 1, env, static) :|: 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 - 1 = i241' && x = -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i145 + -1, env, static) :|: i145 + -1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
was transformed to
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i145 - 1, env, static) :|: i145 - 1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i170 + -1, env, static) :|: i170 + -1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
was transformed to
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i170 - 1, env, static) :|: i170 - 1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170
(40) Obligation:
IntTrs with 10 rules
Start term: main_Load_1(#0, #1, #2, env, static)
Considered paths: nonterm paths and paths from start to sinks
Rules:
main_LT_404(i138, i50, i6, i51, env, static) -{6,6}> main_LT_454(i138, i50, i6, i138 - 1, env, static) :|: i138 - 1 = i143' && -1 <= i143' && 0 <= i138
main_Load_1(i1, i4, i6, env, static) -{16,16}> main_LT_404(i1, i4, i6, i4, env, static'1) :|: 0 <= static'1 && 0 <= static && static''' <= static + 2 && 0 <= static''' && static'1 <= static''' + 1
main_LT_454(i138, i50, i6, x, env, static) -{1,1}> main_Load_643(i138, i50, i6, -1, i6, env, static) :|: 0 <= i138 && x = -1
main_LT_419(i137, i50, i6, i145, env, static) -{4,4}> main_LT_404(i137, i50, i6, i145 - 1, env, static) :|: i145 - 1 = i146' && i137 <= -1 && -1 <= i146' && 0 <= i145
main_LT_419(i137, i50, i6, i144, env, static) -{0,0}> main_LT_423(i137, i50, i6, i144, env, static) :|: i144 <= -1 && i137 <= -1
main_Load_643(i138, i50, i219, iconst_NEG1, i220, env, static) -{1,1}> main_LT_651(i138, i50, i219, i220, -1, env, static) :|: 0 <= i138 && iconst_NEG1 = -1
main_LT_404(i137, i50, i6, i51, env, static) -{2,2}> main_LT_419(i137, i50, i6, i51, env, static) :|: i137 <= -1 && i137 < 0
main_LT_651(i138, i50, i219, i234, iconst_NEG1, env, static) -{0,0}> main_LT_654(i138, i50, i219, i234, -1, env, static) :|: i234 <= -1 && 0 <= i138 && iconst_NEG1 = -1
main_LT_651(i138, i50, i219, i235, x, env, static) -{5,5}> main_Load_643(i138, i50, i219, -1, i235 - 1, env, static) :|: 0 <= i235 && -1 <= i241' && 0 <= i138 && i235 - 1 = i241' && x = -1
main_LT_454(i171, i50, i6, i170, env, static) -{6,6}> main_LT_454(i171, i50, i6, i170 - 1, env, static) :|: i170 - 1 = i176' && 1 <= i171 && 0 <= i171 && -1 <= i176' && -1 <= i170 && 0 <= i170