Initial Problem

Start: f0
Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3
Temp_Vars: E
Locations: f0, f19, f4, f7
Transitions:
0:f0(Arg_0,Arg_1,Arg_2,Arg_3) -> f4(0,Arg_1,Arg_2,Arg_3)
6:f4(Arg_0,Arg_1,Arg_2,Arg_3) -> f19(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_1<=Arg_0
1:f4(Arg_0,Arg_1,Arg_2,Arg_3) -> f7(Arg_0,Arg_1,Arg_0+1,Arg_3):|:Arg_0+1<=Arg_1
5:f7(Arg_0,Arg_1,Arg_2,Arg_3) -> f4(Arg_0+1,Arg_1,Arg_2,Arg_3):|:Arg_1<=Arg_2
2:f7(Arg_0,Arg_1,Arg_2,Arg_3) -> f7(Arg_0,Arg_1,Arg_2+1,0):|:Arg_2+1<=Arg_1
3:f7(Arg_0,Arg_1,Arg_2,Arg_3) -> f7(Arg_0,Arg_1-1,Arg_2,E):|:Arg_2+1<=Arg_1 && E+1<=0
4:f7(Arg_0,Arg_1,Arg_2,Arg_3) -> f7(Arg_0,Arg_1-1,Arg_2,E):|:Arg_2+1<=Arg_1 && 1<=E

Preprocessing

Eliminate variables {Arg_3} that do not contribute to the problem

Found invariant Arg_1<=Arg_0 && 0<=Arg_0 for location f19

Found invariant Arg_2<=Arg_1 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 for location f7

Found invariant 0<=Arg_0 for location f4

Problem after Preprocessing

Start: f0
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars: E
Locations: f0, f19, f4, f7
Transitions:
15:f0(Arg_0,Arg_1,Arg_2) -> f4(0,Arg_1,Arg_2)
17:f4(Arg_0,Arg_1,Arg_2) -> f19(Arg_0,Arg_1,Arg_2):|:0<=Arg_0 && Arg_1<=Arg_0
16:f4(Arg_0,Arg_1,Arg_2) -> f7(Arg_0,Arg_1,Arg_0+1):|:0<=Arg_0 && Arg_0+1<=Arg_1
21:f7(Arg_0,Arg_1,Arg_2) -> f4(Arg_0+1,Arg_1,Arg_2):|:Arg_2<=Arg_1 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && Arg_1<=Arg_2
18:f7(Arg_0,Arg_1,Arg_2) -> f7(Arg_0,Arg_1,Arg_2+1):|:Arg_2<=Arg_1 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && Arg_2+1<=Arg_1
19:f7(Arg_0,Arg_1,Arg_2) -> f7(Arg_0,Arg_1-1,Arg_2):|:Arg_2<=Arg_1 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && Arg_2+1<=Arg_1 && E+1<=0
20:f7(Arg_0,Arg_1,Arg_2) -> f7(Arg_0,Arg_1-1,Arg_2):|:Arg_2<=Arg_1 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && Arg_2+1<=Arg_1 && 1<=E

MPRF for transition 16:f4(Arg_0,Arg_1,Arg_2) -> f7(Arg_0,Arg_1,Arg_0+1):|:0<=Arg_0 && Arg_0+1<=Arg_1 of depth 1:

new bound:

Arg_1 {O(n)}

MPRF:

f7 [Arg_1-Arg_0-1 ]
f4 [Arg_1-Arg_0 ]

MPRF for transition 19:f7(Arg_0,Arg_1,Arg_2) -> f7(Arg_0,Arg_1-1,Arg_2):|:Arg_2<=Arg_1 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && Arg_2+1<=Arg_1 && E+1<=0 of depth 1:

new bound:

Arg_1 {O(n)}

MPRF:

f7 [Arg_1 ]
f4 [Arg_1 ]

MPRF for transition 20:f7(Arg_0,Arg_1,Arg_2) -> f7(Arg_0,Arg_1-1,Arg_2):|:Arg_2<=Arg_1 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && Arg_2+1<=Arg_1 && 1<=E of depth 1:

new bound:

Arg_1 {O(n)}

MPRF:

f7 [Arg_1 ]
f4 [Arg_1 ]

MPRF for transition 21:f7(Arg_0,Arg_1,Arg_2) -> f4(Arg_0+1,Arg_1,Arg_2):|:Arg_2<=Arg_1 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && Arg_1<=Arg_2 of depth 1:

new bound:

Arg_1 {O(n)}

MPRF:

f7 [Arg_1-Arg_0 ]
f4 [Arg_1-Arg_0 ]

MPRF for transition 18:f7(Arg_0,Arg_1,Arg_2) -> f7(Arg_0,Arg_1,Arg_2+1):|:Arg_2<=Arg_1 && 1<=Arg_2 && 2<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && Arg_2+1<=Arg_1 of depth 1:

new bound:

Arg_1*Arg_1+Arg_1 {O(n^2)}

MPRF:

f4 [Arg_1 ]
f7 [Arg_1+1-Arg_2 ]

All Bounds

Timebounds

Overall timebound:Arg_1*Arg_1+5*Arg_1+2 {O(n^2)}
15: f0->f4: 1 {O(1)}
16: f4->f7: Arg_1 {O(n)}
17: f4->f19: 1 {O(1)}
18: f7->f7: Arg_1*Arg_1+Arg_1 {O(n^2)}
19: f7->f7: Arg_1 {O(n)}
20: f7->f7: Arg_1 {O(n)}
21: f7->f4: Arg_1 {O(n)}

Costbounds

Overall costbound: Arg_1*Arg_1+5*Arg_1+2 {O(n^2)}
15: f0->f4: 1 {O(1)}
16: f4->f7: Arg_1 {O(n)}
17: f4->f19: 1 {O(1)}
18: f7->f7: Arg_1*Arg_1+Arg_1 {O(n^2)}
19: f7->f7: Arg_1 {O(n)}
20: f7->f7: Arg_1 {O(n)}
21: f7->f4: Arg_1 {O(n)}

Sizebounds

15: f0->f4, Arg_0: 0 {O(1)}
15: f0->f4, Arg_1: Arg_1 {O(n)}
15: f0->f4, Arg_2: Arg_2 {O(n)}
16: f4->f7, Arg_0: Arg_1 {O(n)}
16: f4->f7, Arg_1: Arg_1 {O(n)}
16: f4->f7, Arg_2: Arg_1+2 {O(n)}
17: f4->f19, Arg_0: Arg_1 {O(n)}
17: f4->f19, Arg_1: 2*Arg_1 {O(n)}
17: f4->f19, Arg_2: 3*Arg_1*Arg_1+13*Arg_1+Arg_2+20 {O(n^2)}
18: f7->f7, Arg_0: Arg_1 {O(n)}
18: f7->f7, Arg_1: Arg_1 {O(n)}
18: f7->f7, Arg_2: Arg_1*Arg_1+4*Arg_1+6 {O(n^2)}
19: f7->f7, Arg_0: Arg_1 {O(n)}
19: f7->f7, Arg_1: Arg_1 {O(n)}
19: f7->f7, Arg_2: Arg_1*Arg_1+4*Arg_1+6 {O(n^2)}
20: f7->f7, Arg_0: Arg_1 {O(n)}
20: f7->f7, Arg_1: Arg_1 {O(n)}
20: f7->f7, Arg_2: Arg_1*Arg_1+4*Arg_1+6 {O(n^2)}
21: f7->f4, Arg_0: Arg_1 {O(n)}
21: f7->f4, Arg_1: Arg_1 {O(n)}
21: f7->f4, Arg_2: 3*Arg_1*Arg_1+13*Arg_1+20 {O(n^2)}