Initial Problem

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

Preprocessing

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

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

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

Problem after Preprocessing

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

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

new bound:

Arg_0 {O(n)}

MPRF:

g [Arg_0 ]

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

new bound:

2^(Arg_0)+2 {O(EXP)}

MPRF:

h [Arg_1+1 ]

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

new bound:

2^(2^(Arg_0)+2)+1 {O(EXP^O(EXP))}

MPRF:

i [Arg_2+1 ]

All Bounds

Timebounds

Overall timebound:2^(2^(Arg_0)+2)+2^(Arg_0)+Arg_0+6 {O(EXP^O(EXP))}
0: f->g: 1 {O(1)}
1: g->g: Arg_0 {O(n)}
2: g->h: 1 {O(1)}
3: h->h: 2^(Arg_0)+2 {O(EXP)}
4: h->i: 1 {O(1)}
5: i->i: 2^(2^(Arg_0)+2)+1 {O(EXP^O(EXP))}

Costbounds

Overall costbound: 2^(2^(Arg_0)+2)+2^(Arg_0)+Arg_0+6 {O(EXP^O(EXP))}
0: f->g: 1 {O(1)}
1: g->g: Arg_0 {O(n)}
2: g->h: 1 {O(1)}
3: h->h: 2^(Arg_0)+2 {O(EXP)}
4: h->i: 1 {O(1)}
5: i->i: 2^(2^(Arg_0)+2)+1 {O(EXP^O(EXP))}

Sizebounds

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