Initial Problem
Start: f3
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars: D
Locations: f2, f3, f300
Transitions:
1:f2(Arg_0,Arg_1,Arg_2) -> f2(Arg_0-1,D,Arg_2):|:1<=D && 0<=Arg_0
2:f2(Arg_0,Arg_1,Arg_2) -> f2(Arg_0-1,D,Arg_2):|:D+1<=0 && 0<=Arg_0
3:f2(Arg_0,Arg_1,Arg_2) -> f2(Arg_0,0,Arg_2):|:0<=Arg_0
4:f2(Arg_0,Arg_1,Arg_2) -> f300(Arg_0,Arg_1,D):|:Arg_0+1<=0
0:f3(Arg_0,Arg_1,Arg_2) -> f2(Arg_0,Arg_1,Arg_2)
Preprocessing
Eliminate variables {Arg_1,Arg_2} that do not contribute to the problem
Found invariant 1+Arg_0<=0 for location f300
Problem after Preprocessing
Start: f3
Program_Vars: Arg_0
Temp_Vars: D
Locations: f2, f3, f300
Transitions:
10:f2(Arg_0) -> f2(Arg_0-1):|:1<=D && 0<=Arg_0
11:f2(Arg_0) -> f2(Arg_0-1):|:D+1<=0 && 0<=Arg_0
12:f2(Arg_0) -> f2(Arg_0):|:0<=Arg_0
13:f2(Arg_0) -> f300(Arg_0):|:Arg_0+1<=0
14:f3(Arg_0) -> f2(Arg_0)
MPRF for transition 10:f2(Arg_0) -> f2(Arg_0-1):|:1<=D && 0<=Arg_0 of depth 1:
new bound:
Arg_0+1 {O(n)}
MPRF:
f2 [Arg_0+1 ]
MPRF for transition 11:f2(Arg_0) -> f2(Arg_0-1):|:D+1<=0 && 0<=Arg_0 of depth 1:
new bound:
Arg_0+1 {O(n)}
MPRF:
f2 [Arg_0+1 ]
Analysing control-flow refined program
Cut unsatisfiable transition 84: n_f2___1->f300
Found invariant 0<=Arg_0 for location n_f2___1
Found invariant 1+Arg_0<=0 for location f300
Found invariant 0<=1+Arg_0 for location n_f2___2
MPRF for transition 63:n_f2___1(Arg_0) -> n_f2___2(Arg0_P):|:0<=Arg_0 && 0<=Arg_0 && 0<=Arg_0 && 0<=1+Arg_0 && 0<=Arg_0 && 0<=1+Arg_0 && 0<=Arg_0 && 0<=Arg_0 && 0<=1+Arg0_P && Arg_0<=Arg0_P+1 && 1+Arg0_P<=Arg_0 of depth 1:
new bound:
3*Arg_0+5 {O(n)}
MPRF:
n_f2___1 [Arg_0+1 ]
n_f2___2 [Arg_0+1 ]
MPRF for transition 64:n_f2___1(Arg_0) -> n_f2___2(Arg0_P):|:0<=Arg_0 && 0<=Arg_0 && 0<=Arg_0 && 0<=1+Arg_0 && 0<=Arg_0 && 0<=1+Arg_0 && 0<=Arg_0 && 0<=Arg_0 && 0<=1+Arg0_P && Arg_0<=Arg0_P+1 && 1+Arg0_P<=Arg_0 of depth 1:
new bound:
3*Arg_0+5 {O(n)}
MPRF:
n_f2___1 [Arg_0+1 ]
n_f2___2 [Arg_0+1 ]
MPRF for transition 65:n_f2___2(Arg_0) -> n_f2___1(Arg_0):|:0<=1+Arg_0 && 0<=1+Arg_0 && 0<=1+Arg_0 && 0<=Arg_0 of depth 1:
new bound:
3*Arg_0+7 {O(n)}
MPRF:
n_f2___1 [Arg_0+1 ]
n_f2___2 [Arg_0+2 ]
MPRF for transition 66:n_f2___2(Arg_0) -> n_f2___2(Arg0_P):|:0<=1+Arg_0 && 0<=1+Arg_0 && 0<=1+Arg_0 && 0<=1+Arg0_P && Arg_0<=Arg0_P+1 && 1+Arg0_P<=Arg_0 of depth 1:
new bound:
3*Arg_0+7 {O(n)}
MPRF:
n_f2___1 [Arg_0+1 ]
n_f2___2 [Arg_0+2 ]
MPRF for transition 67:n_f2___2(Arg_0) -> n_f2___2(Arg0_P):|:0<=1+Arg_0 && 0<=1+Arg_0 && 0<=1+Arg_0 && 0<=1+Arg0_P && Arg_0<=Arg0_P+1 && 1+Arg0_P<=Arg_0 of depth 1:
new bound:
3*Arg_0+7 {O(n)}
MPRF:
n_f2___1 [Arg_0+1 ]
n_f2___2 [Arg_0+2 ]
CFR did not improve the program. Rolling back
All Bounds
Timebounds
Overall timebound:inf {Infinity}
10: f2->f2: Arg_0+1 {O(n)}
11: f2->f2: Arg_0+1 {O(n)}
12: f2->f2: inf {Infinity}
13: f2->f300: 1 {O(1)}
14: f3->f2: 1 {O(1)}
Costbounds
Overall costbound: inf {Infinity}
10: f2->f2: Arg_0+1 {O(n)}
11: f2->f2: Arg_0+1 {O(n)}
12: f2->f2: inf {Infinity}
13: f2->f300: 1 {O(1)}
14: f3->f2: 1 {O(1)}
Sizebounds
10: f2->f2, Arg_0: 3*Arg_0+1 {O(n)}
11: f2->f2, Arg_0: 3*Arg_0+1 {O(n)}
12: f2->f2, Arg_0: 3*Arg_0+1 {O(n)}
13: f2->f300, Arg_0: 7*Arg_0+2 {O(n)}
14: f3->f2, Arg_0: Arg_0 {O(n)}