Initial Problem

Start: f
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars:
Locations: f, g, h
Transitions:
0:f(Arg_0,Arg_1,Arg_2) -> g(1,1,Arg_2)
1:g(Arg_0,Arg_1,Arg_2) -> g(Arg_0+Arg_1,Arg_0+Arg_1,Arg_2-1):|:0<Arg_2
2:g(Arg_0,Arg_1,Arg_2) -> h(Arg_0,Arg_1,Arg_2):|:Arg_2<=0
3:h(Arg_0,Arg_1,Arg_2) -> h(Arg_0,Arg_1-1,Arg_2):|:0<Arg_1

Preprocessing

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

Found invariant 1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 for location g

Problem after Preprocessing

Start: f
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars:
Locations: f, g, h
Transitions:
0:f(Arg_0,Arg_1,Arg_2) -> g(1,1,Arg_2)
1:g(Arg_0,Arg_1,Arg_2) -> g(Arg_0+Arg_1,Arg_0+Arg_1,Arg_2-1):|:1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && 0<Arg_2
2:g(Arg_0,Arg_1,Arg_2) -> h(Arg_0,Arg_1,Arg_2):|:1<=Arg_1 && 2<=Arg_0+Arg_1 && 1<=Arg_0 && Arg_2<=0
3:h(Arg_0,Arg_1,Arg_2) -> h(Arg_0,Arg_1-1,Arg_2):|:Arg_2<=0 && Arg_2<=Arg_1 && 1+Arg_2<=Arg_0 && 0<=Arg_1 && 1<=Arg_0+Arg_1 && 1<=Arg_0 && 0<Arg_1

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

new bound:

Arg_2 {O(n)}

MPRF:

g [Arg_2 ]

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

new bound:

2^(Arg_2)*4+2 {O(EXP)}

MPRF:

h [Arg_1+1 ]

All Bounds

Timebounds

Overall timebound:2^(Arg_2)*4+Arg_2+4 {O(EXP)}
0: f->g: 1 {O(1)}
1: g->g: Arg_2 {O(n)}
2: g->h: 1 {O(1)}
3: h->h: 2^(Arg_2)*4+2 {O(EXP)}

Costbounds

Overall costbound: 2^(Arg_2)*4+Arg_2+4 {O(EXP)}
0: f->g: 1 {O(1)}
1: g->g: Arg_2 {O(n)}
2: g->h: 1 {O(1)}
3: h->h: 2^(Arg_2)*4+2 {O(EXP)}

Sizebounds

0: f->g, Arg_0: 1 {O(1)}
0: f->g, Arg_1: 1 {O(1)}
0: f->g, Arg_2: Arg_2 {O(n)}
1: g->g, Arg_0: 2^(Arg_2)*4 {O(EXP)}
1: g->g, Arg_1: 2^(Arg_2)*4 {O(EXP)}
1: g->g, Arg_2: Arg_2 {O(n)}
2: g->h, Arg_0: 2^(Arg_2)*4+1 {O(EXP)}
2: g->h, Arg_1: 2^(Arg_2)*4+1 {O(EXP)}
2: g->h, Arg_2: 2*Arg_2 {O(n)}
3: h->h, Arg_0: 2^(Arg_2)*4+1 {O(EXP)}
3: h->h, Arg_1: 2^(Arg_2)*4+1 {O(EXP)}
3: h->h, Arg_2: 2*Arg_2 {O(n)}