Initial Problem
Start: f1
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars:
Locations: f1, f2, f3
Transitions:
0:f1(Arg_0,Arg_1,Arg_2) -> f2(Arg_0,Arg_1,Arg_1+1):|:Arg_1<=Arg_0 && 1<=Arg_0 && 1<=Arg_1
1:f2(Arg_0,Arg_1,Arg_2) -> f3(Arg_0,Arg_1,Arg_2):|:Arg_2+1<=Arg_1
2:f2(Arg_0,Arg_1,Arg_2) -> f3(Arg_0,Arg_1,Arg_2):|:Arg_1+1<=Arg_2
3:f3(Arg_0,Arg_1,Arg_2) -> f2(Arg_0,Arg_1,0):|:0<=1+Arg_0 && 1<=Arg_2 && Arg_0+1<=Arg_2
4:f3(Arg_0,Arg_1,Arg_2) -> f2(Arg_0,Arg_1,Arg_2+1):|:Arg_2<=Arg_0 && 0<=1+Arg_2
Preprocessing
Found invariant Arg_2<=1+Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 for location f3
Found invariant Arg_2<=1+Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 for location f2
Problem after Preprocessing
Start: f1
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars:
Locations: f1, f2, f3
Transitions:
0:f1(Arg_0,Arg_1,Arg_2) -> f2(Arg_0,Arg_1,Arg_1+1):|:Arg_1<=Arg_0 && 1<=Arg_0 && 1<=Arg_1
1:f2(Arg_0,Arg_1,Arg_2) -> f3(Arg_0,Arg_1,Arg_2):|:Arg_2<=1+Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && Arg_2+1<=Arg_1
2:f2(Arg_0,Arg_1,Arg_2) -> f3(Arg_0,Arg_1,Arg_2):|:Arg_2<=1+Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && Arg_1+1<=Arg_2
3:f3(Arg_0,Arg_1,Arg_2) -> f2(Arg_0,Arg_1,0):|:Arg_2<=1+Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && 0<=1+Arg_0 && 1<=Arg_2 && Arg_0+1<=Arg_2
4:f3(Arg_0,Arg_1,Arg_2) -> f2(Arg_0,Arg_1,Arg_2+1):|:Arg_2<=1+Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && Arg_2<=Arg_0 && 0<=1+Arg_2
Analysing control-flow refined program
Cut unsatisfiable transition 51: n_f2___4->n_f3___2
Cut unreachable locations [n_f3___2] from the program graph
Found invariant Arg_2<=1+Arg_0 && 3<=Arg_2 && 4<=Arg_1+Arg_2 && 2+Arg_1<=Arg_2 && 5<=Arg_0+Arg_2 && 1+Arg_1<=Arg_0 && 1<=Arg_1 && 3<=Arg_0+Arg_1 && 2<=Arg_0 for location n_f2___6
Found invariant Arg_2<=0 && 1+Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 for location n_f2___7
Found invariant Arg_2<=1+Arg_1 && Arg_2<=1+Arg_0 && 2<=Arg_2 && 3<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 3<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 for location f2
Found invariant Arg_2<=1+Arg_1 && Arg_2<=1+Arg_0 && 2<=Arg_2 && 3<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 3<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 for location n_f3___8
Found invariant 1+Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && 3<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 2<=Arg_1 && 4<=Arg_0+Arg_1 && 2<=Arg_0 for location n_f3___3
Found invariant Arg_2<=Arg_1 && Arg_2<=Arg_0 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 2<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 for location n_f2___4
Found invariant Arg_2<=1+Arg_0 && 3<=Arg_2 && 4<=Arg_1+Arg_2 && 2+Arg_1<=Arg_2 && 5<=Arg_0+Arg_2 && 1+Arg_1<=Arg_0 && 1<=Arg_1 && 3<=Arg_0+Arg_1 && 2<=Arg_0 for location n_f3___1
Found invariant Arg_2<=0 && 1+Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 for location n_f3___5
MPRF for transition 53:n_f2___6(Arg_0,Arg_1,Arg_2) -> n_f3___1(Arg_0,Arg_1,Arg_2):|:Arg_2<=1+Arg_0 && 3<=Arg_2 && 4<=Arg_1+Arg_2 && 2+Arg_1<=Arg_2 && 5<=Arg_0+Arg_2 && 1+Arg_1<=Arg_0 && 1<=Arg_1 && 3<=Arg_0+Arg_1 && 2<=Arg_0 && Arg_1<=Arg_0 && 0<=Arg_2 && Arg_2<=1+Arg_0 && 1+Arg_1<=Arg_2 && 1<=Arg_1 && 1<=Arg_1 && 1+Arg_1<=Arg_2 && Arg_2<=1+Arg_0 && 1<=Arg_1 && Arg_1<=Arg_0 && 1<=Arg_2 && Arg_2<=1+Arg_0 && 1<=Arg_1 && Arg_2<=1+Arg_0 && 1+Arg_1<=Arg_2 of depth 1:
new bound:
Arg_0+Arg_1+4 {O(n)}
MPRF:
n_f3___1 [Arg_0+1-Arg_2 ]
n_f2___6 [Arg_0+2-Arg_2 ]
MPRF for transition 56:n_f3___1(Arg_0,Arg_1,Arg_2) -> n_f2___6(Arg_0,Arg_1,Arg_2+1):|:Arg_2<=1+Arg_0 && 3<=Arg_2 && 4<=Arg_1+Arg_2 && 2+Arg_1<=Arg_2 && 5<=Arg_0+Arg_2 && 1+Arg_1<=Arg_0 && 1<=Arg_1 && 3<=Arg_0+Arg_1 && 2<=Arg_0 && Arg_2<=1+Arg_0 && 1+Arg_1<=Arg_2 && 1<=Arg_1 && Arg_2<=Arg_0 && Arg_1<=Arg_0 && 1<=Arg_1 && 0<=Arg_2 of depth 1:
new bound:
Arg_0+Arg_1+3 {O(n)}
MPRF:
n_f3___1 [Arg_0+1-Arg_2 ]
n_f2___6 [Arg_0+1-Arg_2 ]
MPRF for transition 52:n_f2___4(Arg_0,Arg_1,Arg_2) -> n_f3___3(Arg_0,Arg_1,Arg_2):|:Arg_2<=Arg_1 && Arg_2<=Arg_0 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 2<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && Arg_1<=Arg_0 && 0<=Arg_2 && Arg_2<=1+Arg_0 && 1<=Arg_1 && Arg_2<=Arg_0 && 1<=Arg_1 && Arg_1<=Arg_0 && 1<=Arg_2 && Arg_2<=1+Arg_0 && Arg_1<=Arg_0 && 1+Arg_2<=Arg_1 && 0<=Arg_2 of depth 1:
new bound:
2*Arg_0+2 {O(n)}
MPRF:
n_f3___3 [Arg_0-Arg_2 ]
n_f2___4 [Arg_0+1-Arg_2 ]
MPRF for transition 59:n_f3___3(Arg_0,Arg_1,Arg_2) -> n_f2___4(Arg_0,Arg_1,Arg_2+1):|:1+Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && 3<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 2<=Arg_1 && 4<=Arg_0+Arg_1 && 2<=Arg_0 && Arg_1<=Arg_0 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && Arg_2<=Arg_0 && Arg_1<=Arg_0 && 1<=Arg_1 && 0<=Arg_2 of depth 1:
new bound:
2*Arg_1+1 {O(n)}
MPRF:
n_f3___3 [Arg_1-Arg_2 ]
n_f2___4 [Arg_1-Arg_2 ]
CFR: Improvement to new bound with the following program:
new bound:
4*Arg_0+4*Arg_1+10 {O(n)}
cfr-program:
Start: f1
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars:
Locations: f1, f2, n_f2___4, n_f2___6, n_f2___7, n_f3___1, n_f3___3, n_f3___5, n_f3___8
Transitions:
0:f1(Arg_0,Arg_1,Arg_2) -> f2(Arg_0,Arg_1,Arg_1+1):|:Arg_1<=Arg_0 && 1<=Arg_0 && 1<=Arg_1
55:f2(Arg_0,Arg_1,Arg_2) -> n_f3___8(Arg_0,Arg_1,Arg_2):|:Arg_2<=1+Arg_1 && Arg_2<=1+Arg_0 && 2<=Arg_2 && 3<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 3<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && Arg_1<=Arg_0 && 0<=Arg_2 && Arg_2<=1+Arg_0 && 1+Arg_1<=Arg_2 && 1<=Arg_1 && 1+Arg_1<=Arg_2 && Arg_2<=1+Arg_1 && 2<=Arg_2 && Arg_2<=1+Arg_0 && 1<=Arg_1 && 1+Arg_1<=Arg_2 && Arg_2<=1+Arg_0 && 1<=Arg_1 && Arg_1<=Arg_0 && 1<=Arg_2 && Arg_2<=1+Arg_0 && 1<=Arg_1 && Arg_2<=1+Arg_0 && 1+Arg_1<=Arg_2
52:n_f2___4(Arg_0,Arg_1,Arg_2) -> n_f3___3(Arg_0,Arg_1,Arg_2):|:Arg_2<=Arg_1 && Arg_2<=Arg_0 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 2<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && Arg_1<=Arg_0 && 0<=Arg_2 && Arg_2<=1+Arg_0 && 1<=Arg_1 && Arg_2<=Arg_0 && 1<=Arg_1 && Arg_1<=Arg_0 && 1<=Arg_2 && Arg_2<=1+Arg_0 && Arg_1<=Arg_0 && 1+Arg_2<=Arg_1 && 0<=Arg_2
53:n_f2___6(Arg_0,Arg_1,Arg_2) -> n_f3___1(Arg_0,Arg_1,Arg_2):|:Arg_2<=1+Arg_0 && 3<=Arg_2 && 4<=Arg_1+Arg_2 && 2+Arg_1<=Arg_2 && 5<=Arg_0+Arg_2 && 1+Arg_1<=Arg_0 && 1<=Arg_1 && 3<=Arg_0+Arg_1 && 2<=Arg_0 && Arg_1<=Arg_0 && 0<=Arg_2 && Arg_2<=1+Arg_0 && 1+Arg_1<=Arg_2 && 1<=Arg_1 && 1<=Arg_1 && 1+Arg_1<=Arg_2 && Arg_2<=1+Arg_0 && 1<=Arg_1 && Arg_1<=Arg_0 && 1<=Arg_2 && Arg_2<=1+Arg_0 && 1<=Arg_1 && Arg_2<=1+Arg_0 && 1+Arg_1<=Arg_2
54:n_f2___7(Arg_0,Arg_1,Arg_2) -> n_f3___5(Arg_0,Arg_1,Arg_2):|:Arg_2<=0 && 1+Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && Arg_1<=Arg_0 && 1+Arg_2<=Arg_1 && 0<=Arg_2 && Arg_2<=1+Arg_0 && 1<=Arg_1 && Arg_2<=Arg_0 && 0<=Arg_2 && 1+Arg_2<=Arg_1 && Arg_1<=Arg_0 && Arg_2<=0 && 0<=Arg_2 && 1<=Arg_1 && Arg_1<=Arg_0 && Arg_1<=Arg_0 && 1+Arg_2<=Arg_1 && 0<=Arg_2
56:n_f3___1(Arg_0,Arg_1,Arg_2) -> n_f2___6(Arg_0,Arg_1,Arg_2+1):|:Arg_2<=1+Arg_0 && 3<=Arg_2 && 4<=Arg_1+Arg_2 && 2+Arg_1<=Arg_2 && 5<=Arg_0+Arg_2 && 1+Arg_1<=Arg_0 && 1<=Arg_1 && 3<=Arg_0+Arg_1 && 2<=Arg_0 && Arg_2<=1+Arg_0 && 1+Arg_1<=Arg_2 && 1<=Arg_1 && Arg_2<=Arg_0 && Arg_1<=Arg_0 && 1<=Arg_1 && 0<=Arg_2
57:n_f3___1(Arg_0,Arg_1,Arg_2) -> n_f2___7(Arg_0,Arg_1,0):|:Arg_2<=1+Arg_0 && 3<=Arg_2 && 4<=Arg_1+Arg_2 && 2+Arg_1<=Arg_2 && 5<=Arg_0+Arg_2 && 1+Arg_1<=Arg_0 && 1<=Arg_1 && 3<=Arg_0+Arg_1 && 2<=Arg_0 && Arg_2<=1+Arg_0 && 1+Arg_1<=Arg_2 && 1<=Arg_1 && 1<=Arg_1 && Arg_1<=Arg_0 && Arg_0+1<=Arg_2 && Arg_2<=1+Arg_0
59:n_f3___3(Arg_0,Arg_1,Arg_2) -> n_f2___4(Arg_0,Arg_1,Arg_2+1):|:1+Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && 3<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 2<=Arg_1 && 4<=Arg_0+Arg_1 && 2<=Arg_0 && Arg_1<=Arg_0 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && Arg_2<=Arg_0 && Arg_1<=Arg_0 && 1<=Arg_1 && 0<=Arg_2
60:n_f3___5(Arg_0,Arg_1,Arg_2) -> n_f2___4(Arg_0,Arg_1,Arg_2+1):|:Arg_2<=0 && 1+Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && 0<=Arg_2 && 1<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && Arg_1<=Arg_0 && 1<=Arg_1 && Arg_2<=0 && 0<=Arg_2 && Arg_2<=Arg_0 && Arg_1<=Arg_0 && 1<=Arg_1 && 0<=Arg_2
61:n_f3___8(Arg_0,Arg_1,Arg_2) -> n_f2___6(Arg_0,Arg_1,Arg_2+1):|:Arg_2<=1+Arg_1 && Arg_2<=1+Arg_0 && 2<=Arg_2 && 3<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 3<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && Arg_1<=Arg_0 && 1<=Arg_1 && Arg_1+1<=Arg_2 && Arg_2<=1+Arg_1 && Arg_2<=Arg_0 && Arg_1<=Arg_0 && 1<=Arg_1 && 0<=Arg_2
62:n_f3___8(Arg_0,Arg_1,Arg_2) -> n_f2___7(Arg_0,Arg_1,0):|:Arg_2<=1+Arg_1 && Arg_2<=1+Arg_0 && 2<=Arg_2 && 3<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 3<=Arg_0+Arg_2 && Arg_1<=Arg_0 && 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && Arg_1<=Arg_0 && 1<=Arg_1 && Arg_1+1<=Arg_2 && Arg_2<=1+Arg_1 && 1<=Arg_1 && Arg_1<=Arg_0 && Arg_0+1<=Arg_2 && Arg_2<=1+Arg_0
All Bounds
Timebounds
Overall timebound:4*Arg_0+4*Arg_1+17 {O(n)}
0: f1->f2: 1 {O(1)}
55: f2->n_f3___8: 1 {O(1)}
52: n_f2___4->n_f3___3: 2*Arg_0+2 {O(n)}
53: n_f2___6->n_f3___1: Arg_0+Arg_1+4 {O(n)}
54: n_f2___7->n_f3___5: 1 {O(1)}
56: n_f3___1->n_f2___6: Arg_0+Arg_1+3 {O(n)}
57: n_f3___1->n_f2___7: 1 {O(1)}
59: n_f3___3->n_f2___4: 2*Arg_1+1 {O(n)}
60: n_f3___5->n_f2___4: 1 {O(1)}
61: n_f3___8->n_f2___6: 1 {O(1)}
62: n_f3___8->n_f2___7: 1 {O(1)}
Costbounds
Overall costbound: 4*Arg_0+4*Arg_1+17 {O(n)}
0: f1->f2: 1 {O(1)}
55: f2->n_f3___8: 1 {O(1)}
52: n_f2___4->n_f3___3: 2*Arg_0+2 {O(n)}
53: n_f2___6->n_f3___1: Arg_0+Arg_1+4 {O(n)}
54: n_f2___7->n_f3___5: 1 {O(1)}
56: n_f3___1->n_f2___6: Arg_0+Arg_1+3 {O(n)}
57: n_f3___1->n_f2___7: 1 {O(1)}
59: n_f3___3->n_f2___4: 2*Arg_1+1 {O(n)}
60: n_f3___5->n_f2___4: 1 {O(1)}
61: n_f3___8->n_f2___6: 1 {O(1)}
62: n_f3___8->n_f2___7: 1 {O(1)}
Sizebounds
0: f1->f2, Arg_0: Arg_0 {O(n)}
0: f1->f2, Arg_1: Arg_1 {O(n)}
0: f1->f2, Arg_2: Arg_1+1 {O(n)}
55: f2->n_f3___8, Arg_0: Arg_0 {O(n)}
55: f2->n_f3___8, Arg_1: Arg_1 {O(n)}
55: f2->n_f3___8, Arg_2: Arg_1+1 {O(n)}
52: n_f2___4->n_f3___3, Arg_0: 2*Arg_0 {O(n)}
52: n_f2___4->n_f3___3, Arg_1: 2*Arg_1 {O(n)}
52: n_f2___4->n_f3___3, Arg_2: 2*Arg_1+2 {O(n)}
53: n_f2___6->n_f3___1, Arg_0: Arg_0 {O(n)}
53: n_f2___6->n_f3___1, Arg_1: Arg_1 {O(n)}
53: n_f2___6->n_f3___1, Arg_2: 2*Arg_1+Arg_0+5 {O(n)}
54: n_f2___7->n_f3___5, Arg_0: 2*Arg_0 {O(n)}
54: n_f2___7->n_f3___5, Arg_1: 2*Arg_1 {O(n)}
54: n_f2___7->n_f3___5, Arg_2: 0 {O(1)}
56: n_f3___1->n_f2___6, Arg_0: Arg_0 {O(n)}
56: n_f3___1->n_f2___6, Arg_1: Arg_1 {O(n)}
56: n_f3___1->n_f2___6, Arg_2: 2*Arg_1+Arg_0+5 {O(n)}
57: n_f3___1->n_f2___7, Arg_0: Arg_0 {O(n)}
57: n_f3___1->n_f2___7, Arg_1: Arg_1 {O(n)}
57: n_f3___1->n_f2___7, Arg_2: 0 {O(1)}
59: n_f3___3->n_f2___4, Arg_0: 2*Arg_0 {O(n)}
59: n_f3___3->n_f2___4, Arg_1: 2*Arg_1 {O(n)}
59: n_f3___3->n_f2___4, Arg_2: 2*Arg_1+2 {O(n)}
60: n_f3___5->n_f2___4, Arg_0: 2*Arg_0 {O(n)}
60: n_f3___5->n_f2___4, Arg_1: 2*Arg_1 {O(n)}
60: n_f3___5->n_f2___4, Arg_2: 1 {O(1)}
61: n_f3___8->n_f2___6, Arg_0: Arg_0 {O(n)}
61: n_f3___8->n_f2___6, Arg_1: Arg_1 {O(n)}
61: n_f3___8->n_f2___6, Arg_2: Arg_1+2 {O(n)}
62: n_f3___8->n_f2___7, Arg_0: Arg_0 {O(n)}
62: n_f3___8->n_f2___7, Arg_1: Arg_1 {O(n)}
62: n_f3___8->n_f2___7, Arg_2: 0 {O(1)}