Start: f2
Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3
Temp_Vars: E, F
Locations: f1, f2, f300
Transitions:
1:f1(Arg_0,Arg_1,Arg_2,Arg_3) -> f1(1+Arg_0,Arg_1,E,Arg_3):|:1<=E && 1+Arg_0<=Arg_1
2:f1(Arg_0,Arg_1,Arg_2,Arg_3) -> f1(1+Arg_0,Arg_1,E,Arg_3):|:E+1<=0 && 1+Arg_0<=Arg_1
3:f1(Arg_0,Arg_1,Arg_2,Arg_3) -> f1(Arg_0,Arg_1,0,Arg_3):|:1+Arg_0<=Arg_1
4:f1(Arg_0,Arg_1,Arg_2,Arg_3) -> f1(1+Arg_0,Arg_0,E,Arg_3):|:1<=E && F<=Arg_1 && Arg_0<=Arg_1 && Arg_1<=Arg_0
5:f1(Arg_0,Arg_1,Arg_2,Arg_3) -> f1(1+Arg_0,Arg_0,E,Arg_3):|:E+1<=0 && F<=Arg_1 && Arg_0<=Arg_1 && Arg_1<=Arg_0
6:f1(Arg_0,Arg_1,Arg_2,Arg_3) -> f1(Arg_0,Arg_0,0,Arg_3):|:E<=Arg_1 && Arg_0<=Arg_1 && Arg_1<=Arg_0
7:f1(Arg_0,Arg_1,Arg_2,Arg_3) -> f300(Arg_0,Arg_1,Arg_2,E):|:Arg_1<=Arg_0 && Arg_1+1<=Arg_0
8:f1(Arg_0,Arg_1,Arg_2,Arg_3) -> f300(Arg_0,Arg_1,Arg_2,E):|:Arg_1<=Arg_0 && Arg_0+1<=Arg_1
0:f2(Arg_0,Arg_1,Arg_2,Arg_3) -> f1(Arg_0,Arg_1,Arg_2,Arg_3)
Cut unsatisfiable transition 8: f1->f300
Eliminate variables {Arg_2,Arg_3} that do not contribute to the problem
Found invariant 1+Arg_1<=Arg_0 for location f300
Start: f2
Program_Vars: Arg_0, Arg_1
Temp_Vars: E, F
Locations: f1, f2, f300
Transitions:
24:f1(Arg_0,Arg_1) -> f1(1+Arg_0,Arg_1):|:1<=E && 1+Arg_0<=Arg_1
25:f1(Arg_0,Arg_1) -> f1(1+Arg_0,Arg_1):|:E+1<=0 && 1+Arg_0<=Arg_1
26:f1(Arg_0,Arg_1) -> f1(Arg_0,Arg_1):|:1+Arg_0<=Arg_1
27:f1(Arg_0,Arg_1) -> f1(1+Arg_0,Arg_0):|:1<=E && F<=Arg_1 && Arg_0<=Arg_1 && Arg_1<=Arg_0
28:f1(Arg_0,Arg_1) -> f1(1+Arg_0,Arg_0):|:E+1<=0 && F<=Arg_1 && Arg_0<=Arg_1 && Arg_1<=Arg_0
29:f1(Arg_0,Arg_1) -> f1(Arg_0,Arg_0):|:E<=Arg_1 && Arg_0<=Arg_1 && Arg_1<=Arg_0
30:f1(Arg_0,Arg_1) -> f300(Arg_0,Arg_1):|:Arg_1<=Arg_0 && Arg_1+1<=Arg_0
31:f2(Arg_0,Arg_1) -> f1(Arg_0,Arg_1)
new bound:
Arg_0+Arg_1 {O(n)}
MPRF:
f1 [Arg_1-Arg_0 ]
new bound:
Arg_0+Arg_1 {O(n)}
MPRF:
f1 [Arg_1-Arg_0 ]
new bound:
Arg_0+Arg_1+1 {O(n)}
MPRF:
f1 [Arg_1+1-Arg_0 ]
new bound:
Arg_0+Arg_1+1 {O(n)}
MPRF:
f1 [Arg_1+1-Arg_0 ]
Overall timebound:inf {Infinity}
24: f1->f1: Arg_0+Arg_1 {O(n)}
25: f1->f1: Arg_0+Arg_1 {O(n)}
26: f1->f1: inf {Infinity}
27: f1->f1: Arg_0+Arg_1+1 {O(n)}
28: f1->f1: Arg_0+Arg_1+1 {O(n)}
29: f1->f1: inf {Infinity}
30: f1->f300: 1 {O(1)}
31: f2->f1: 1 {O(1)}
Overall costbound: inf {Infinity}
24: f1->f1: Arg_0+Arg_1 {O(n)}
25: f1->f1: Arg_0+Arg_1 {O(n)}
26: f1->f1: inf {Infinity}
27: f1->f1: Arg_0+Arg_1+1 {O(n)}
28: f1->f1: Arg_0+Arg_1+1 {O(n)}
29: f1->f1: inf {Infinity}
30: f1->f300: 1 {O(1)}
31: f2->f1: 1 {O(1)}
24: f1->f1, Arg_0: 2*Arg_1+5*Arg_0 {O(n)}
24: f1->f1, Arg_1: 3*Arg_1 {O(n)}
25: f1->f1, Arg_0: 2*Arg_1+5*Arg_0 {O(n)}
25: f1->f1, Arg_1: 3*Arg_1 {O(n)}
26: f1->f1, Arg_0: 2*Arg_1+5*Arg_0 {O(n)}
26: f1->f1, Arg_1: 3*Arg_1 {O(n)}
27: f1->f1, Arg_0: 22*Arg_0+8*Arg_1+4 {O(n)}
27: f1->f1, Arg_1: 22*Arg_0+8*Arg_1 {O(n)}
28: f1->f1, Arg_0: 22*Arg_0+8*Arg_1+4 {O(n)}
28: f1->f1, Arg_1: 22*Arg_0+8*Arg_1 {O(n)}
29: f1->f1, Arg_0: 11*Arg_0+4*Arg_1 {O(n)}
29: f1->f1, Arg_1: 22*Arg_0+8*Arg_1 {O(n)}
30: f1->f300, Arg_0: 16*Arg_1+45*Arg_0+8 {O(n)}
30: f1->f300, Arg_1: 17*Arg_1+44*Arg_0 {O(n)}
31: f2->f1, Arg_0: Arg_0 {O(n)}
31: f2->f1, Arg_1: Arg_1 {O(n)}