Start: evalndecrstart
Program_Vars: Arg_0
Temp_Vars:
Locations: evalndecrbb1in, evalndecrbbin, evalndecrentryin, evalndecrreturnin, evalndecrstart, evalndecrstop
Transitions:
2:evalndecrbb1in(Arg_0) -> evalndecrbbin(Arg_0):|:2<=Arg_0
3:evalndecrbb1in(Arg_0) -> evalndecrreturnin(Arg_0):|:Arg_0<=1
4:evalndecrbbin(Arg_0) -> evalndecrbb1in(Arg_0-1)
1:evalndecrentryin(Arg_0) -> evalndecrbb1in(Arg_0-1)
5:evalndecrreturnin(Arg_0) -> evalndecrstop(Arg_0)
0:evalndecrstart(Arg_0) -> evalndecrentryin(Arg_0)
Found invariant Arg_0<=1 for location evalndecrstop
Found invariant Arg_0<=1 for location evalndecrreturnin
Found invariant 2<=Arg_0 for location evalndecrbbin
Start: evalndecrstart
Program_Vars: Arg_0
Temp_Vars:
Locations: evalndecrbb1in, evalndecrbbin, evalndecrentryin, evalndecrreturnin, evalndecrstart, evalndecrstop
Transitions:
2:evalndecrbb1in(Arg_0) -> evalndecrbbin(Arg_0):|:2<=Arg_0
3:evalndecrbb1in(Arg_0) -> evalndecrreturnin(Arg_0):|:Arg_0<=1
4:evalndecrbbin(Arg_0) -> evalndecrbb1in(Arg_0-1):|:2<=Arg_0
1:evalndecrentryin(Arg_0) -> evalndecrbb1in(Arg_0-1)
5:evalndecrreturnin(Arg_0) -> evalndecrstop(Arg_0):|:Arg_0<=1
0:evalndecrstart(Arg_0) -> evalndecrentryin(Arg_0)
new bound:
Arg_0+2 {O(n)}
MPRF:
evalndecrbbin [Arg_0-2 ]
evalndecrbb1in [Arg_0-1 ]
new bound:
Arg_0+2 {O(n)}
MPRF:
evalndecrbbin [Arg_0-1 ]
evalndecrbb1in [Arg_0-1 ]
Overall timebound:2*Arg_0+8 {O(n)}
2: evalndecrbb1in->evalndecrbbin: Arg_0+2 {O(n)}
3: evalndecrbb1in->evalndecrreturnin: 1 {O(1)}
4: evalndecrbbin->evalndecrbb1in: Arg_0+2 {O(n)}
1: evalndecrentryin->evalndecrbb1in: 1 {O(1)}
5: evalndecrreturnin->evalndecrstop: 1 {O(1)}
0: evalndecrstart->evalndecrentryin: 1 {O(1)}
Overall costbound: 2*Arg_0+8 {O(n)}
2: evalndecrbb1in->evalndecrbbin: Arg_0+2 {O(n)}
3: evalndecrbb1in->evalndecrreturnin: 1 {O(1)}
4: evalndecrbbin->evalndecrbb1in: Arg_0+2 {O(n)}
1: evalndecrentryin->evalndecrbb1in: 1 {O(1)}
5: evalndecrreturnin->evalndecrstop: 1 {O(1)}
0: evalndecrstart->evalndecrentryin: 1 {O(1)}
2: evalndecrbb1in->evalndecrbbin, Arg_0: Arg_0+1 {O(n)}
3: evalndecrbb1in->evalndecrreturnin, Arg_0: 2*Arg_0+2 {O(n)}
4: evalndecrbbin->evalndecrbb1in, Arg_0: Arg_0+1 {O(n)}
1: evalndecrentryin->evalndecrbb1in, Arg_0: Arg_0+1 {O(n)}
5: evalndecrreturnin->evalndecrstop, Arg_0: 2*Arg_0+2 {O(n)}
0: evalndecrstart->evalndecrentryin, Arg_0: Arg_0 {O(n)}