Initial Problem

Start: start
Program_Vars: Arg_0
Temp_Vars: B, C, D, E, F
Locations: eval, start
Transitions:
0:eval(Arg_0) -> eval(0):|:0<=2*B && 2*B<=0 && Arg_0<=1 && 1<=Arg_0
1:eval(Arg_0) -> eval(2*B):|:0<=2*B && 0<=2+2*B && Arg_0<=1+2*B && 1+2*B<=Arg_0
2:eval(Arg_0) -> eval(B):|:2*C<=1 && 0<=2*C && 1<=2*D && 2*D<=1 && 2*E<=1 && 2<=3*E && E<=B && 2*F<=1 && 2<=3*F && B<=F && Arg_0<=1 && 1<=Arg_0
3:eval(Arg_0) -> eval(B):|:1<=2*D && 0<=1+2*D && 2*C<=2*D && 2*D<=1+2*C && 2*E<=2*D && 2*D+1<=3*E && E<=B && 2*F<=2*D && 2*D+1<=3*F && B<=F && Arg_0<=2*D && 2*D<=Arg_0
4:start(Arg_0) -> eval(Arg_0)

Preprocessing

Cut unsatisfiable transition 2: eval->eval

Problem after Preprocessing

Start: start
Program_Vars: Arg_0
Temp_Vars: B, C, D, E, F
Locations: eval, start
Transitions:
0:eval(Arg_0) -> eval(0):|:0<=2*B && 2*B<=0 && Arg_0<=1 && 1<=Arg_0
1:eval(Arg_0) -> eval(2*B):|:0<=2*B && 0<=2+2*B && Arg_0<=1+2*B && 1+2*B<=Arg_0
3:eval(Arg_0) -> eval(B):|:1<=2*D && 0<=1+2*D && 2*C<=2*D && 2*D<=1+2*C && 2*E<=2*D && 2*D+1<=3*E && E<=B && 2*F<=2*D && 2*D+1<=3*F && B<=F && Arg_0<=2*D && 2*D<=Arg_0
4:start(Arg_0) -> eval(Arg_0)

MPRF for transition 0:eval(Arg_0) -> eval(0):|:0<=2*B && 2*B<=0 && Arg_0<=1 && 1<=Arg_0 of depth 1:

new bound:

4*Arg_0 {O(n)}

MPRF:

eval [4*Arg_0 ]

MPRF for transition 1:eval(Arg_0) -> eval(2*B):|:0<=2*B && 0<=2+2*B && Arg_0<=1+2*B && 1+2*B<=Arg_0 of depth 1:

new bound:

2*Arg_0 {O(n)}

MPRF:

eval [2*Arg_0 ]

MPRF for transition 3:eval(Arg_0) -> eval(B):|:1<=2*D && 0<=1+2*D && 2*C<=2*D && 2*D<=1+2*C && 2*E<=2*D && 2*D+1<=3*E && E<=B && 2*F<=2*D && 2*D+1<=3*F && B<=F && Arg_0<=2*D && 2*D<=Arg_0 of depth 1:

new bound:

2*Arg_0 {O(n)}

MPRF:

eval [2*Arg_0 ]

All Bounds

Timebounds

Overall timebound:8*Arg_0+1 {O(n)}
0: eval->eval: 4*Arg_0 {O(n)}
1: eval->eval: 2*Arg_0 {O(n)}
3: eval->eval: 2*Arg_0 {O(n)}
4: start->eval: 1 {O(1)}

Costbounds

Overall costbound: 8*Arg_0+1 {O(n)}
0: eval->eval: 4*Arg_0 {O(n)}
1: eval->eval: 2*Arg_0 {O(n)}
3: eval->eval: 2*Arg_0 {O(n)}
4: start->eval: 1 {O(1)}

Sizebounds

0: eval->eval, Arg_0: 0 {O(1)}
1: eval->eval, Arg_0: 2*Arg_0 {O(n)}
3: eval->eval, Arg_0: 2*Arg_0 {O(n)}
4: start->eval, Arg_0: Arg_0 {O(n)}