Initial Problem

Start: evalexministart
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars:
Locations: evalexminibb1in, evalexminibbin, evalexminientryin, evalexminireturnin, evalexministart, evalexministop
Transitions:
2:evalexminibb1in(Arg_0,Arg_1,Arg_2) -> evalexminibbin(Arg_0,Arg_1,Arg_2):|:Arg_1<=100 && Arg_2<=Arg_0
3:evalexminibb1in(Arg_0,Arg_1,Arg_2) -> evalexminireturnin(Arg_0,Arg_1,Arg_2):|:101<=Arg_1
4:evalexminibb1in(Arg_0,Arg_1,Arg_2) -> evalexminireturnin(Arg_0,Arg_1,Arg_2):|:Arg_0+1<=Arg_2
5:evalexminibbin(Arg_0,Arg_1,Arg_2) -> evalexminibb1in(Arg_0-1,Arg_2,Arg_1+1)
1:evalexminientryin(Arg_0,Arg_1,Arg_2) -> evalexminibb1in(Arg_1,Arg_0,Arg_2)
6:evalexminireturnin(Arg_0,Arg_1,Arg_2) -> evalexministop(Arg_0,Arg_1,Arg_2)
0:evalexministart(Arg_0,Arg_1,Arg_2) -> evalexminientryin(Arg_0,Arg_1,Arg_2)

Preprocessing

Found invariant Arg_2<=Arg_0 && Arg_1<=100 for location evalexminibbin

Problem after Preprocessing

Start: evalexministart
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars:
Locations: evalexminibb1in, evalexminibbin, evalexminientryin, evalexminireturnin, evalexministart, evalexministop
Transitions:
2:evalexminibb1in(Arg_0,Arg_1,Arg_2) -> evalexminibbin(Arg_0,Arg_1,Arg_2):|:Arg_1<=100 && Arg_2<=Arg_0
3:evalexminibb1in(Arg_0,Arg_1,Arg_2) -> evalexminireturnin(Arg_0,Arg_1,Arg_2):|:101<=Arg_1
4:evalexminibb1in(Arg_0,Arg_1,Arg_2) -> evalexminireturnin(Arg_0,Arg_1,Arg_2):|:Arg_0+1<=Arg_2
5:evalexminibbin(Arg_0,Arg_1,Arg_2) -> evalexminibb1in(Arg_0-1,Arg_2,Arg_1+1):|:Arg_2<=Arg_0 && Arg_1<=100
1:evalexminientryin(Arg_0,Arg_1,Arg_2) -> evalexminibb1in(Arg_1,Arg_0,Arg_2)
6:evalexminireturnin(Arg_0,Arg_1,Arg_2) -> evalexministop(Arg_0,Arg_1,Arg_2)
0:evalexministart(Arg_0,Arg_1,Arg_2) -> evalexminientryin(Arg_0,Arg_1,Arg_2)

MPRF for transition 2:evalexminibb1in(Arg_0,Arg_1,Arg_2) -> evalexminibbin(Arg_0,Arg_1,Arg_2):|:Arg_1<=100 && Arg_2<=Arg_0 of depth 1:

new bound:

Arg_0+Arg_1+Arg_2+101 {O(n)}

MPRF:

evalexminibbin [Arg_0+99-Arg_1-Arg_2 ]
evalexminibb1in [Arg_0+101-Arg_1-Arg_2 ]

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

new bound:

Arg_0+Arg_1+Arg_2+101 {O(n)}

MPRF:

evalexminibbin [Arg_0+101-Arg_1-Arg_2 ]
evalexminibb1in [Arg_0+101-Arg_1-Arg_2 ]

All Bounds

Timebounds

Overall timebound:2*Arg_0+2*Arg_1+2*Arg_2+207 {O(n)}
2: evalexminibb1in->evalexminibbin: Arg_0+Arg_1+Arg_2+101 {O(n)}
3: evalexminibb1in->evalexminireturnin: 1 {O(1)}
4: evalexminibb1in->evalexminireturnin: 1 {O(1)}
5: evalexminibbin->evalexminibb1in: Arg_0+Arg_1+Arg_2+101 {O(n)}
1: evalexminientryin->evalexminibb1in: 1 {O(1)}
6: evalexminireturnin->evalexministop: 1 {O(1)}
0: evalexministart->evalexminientryin: 1 {O(1)}

Costbounds

Overall costbound: 2*Arg_0+2*Arg_1+2*Arg_2+207 {O(n)}
2: evalexminibb1in->evalexminibbin: Arg_0+Arg_1+Arg_2+101 {O(n)}
3: evalexminibb1in->evalexminireturnin: 1 {O(1)}
4: evalexminibb1in->evalexminireturnin: 1 {O(1)}
5: evalexminibbin->evalexminibb1in: Arg_0+Arg_1+Arg_2+101 {O(n)}
1: evalexminientryin->evalexminibb1in: 1 {O(1)}
6: evalexminireturnin->evalexministop: 1 {O(1)}
0: evalexministart->evalexminientryin: 1 {O(1)}

Sizebounds

2: evalexminibb1in->evalexminibbin, Arg_0: 2*Arg_1+Arg_0+Arg_2+101 {O(n)}
2: evalexminibb1in->evalexminibbin, Arg_1: 2*Arg_0+2*Arg_2+Arg_1+101 {O(n)}
2: evalexminibb1in->evalexminibbin, Arg_2: 2*Arg_0+2*Arg_2+Arg_1+101 {O(n)}
3: evalexminibb1in->evalexminireturnin, Arg_0: 3*Arg_1+Arg_0+Arg_2+101 {O(n)}
3: evalexminibb1in->evalexminireturnin, Arg_1: 2*Arg_2+3*Arg_0+Arg_1+101 {O(n)}
3: evalexminibb1in->evalexminireturnin, Arg_2: 2*Arg_0+3*Arg_2+Arg_1+101 {O(n)}
4: evalexminibb1in->evalexminireturnin, Arg_0: 3*Arg_1+Arg_0+Arg_2+101 {O(n)}
4: evalexminibb1in->evalexminireturnin, Arg_1: 2*Arg_2+3*Arg_0+Arg_1+101 {O(n)}
4: evalexminibb1in->evalexminireturnin, Arg_2: 2*Arg_0+3*Arg_2+Arg_1+101 {O(n)}
5: evalexminibbin->evalexminibb1in, Arg_0: 2*Arg_1+Arg_0+Arg_2+101 {O(n)}
5: evalexminibbin->evalexminibb1in, Arg_1: 2*Arg_0+2*Arg_2+Arg_1+101 {O(n)}
5: evalexminibbin->evalexminibb1in, Arg_2: 2*Arg_0+2*Arg_2+Arg_1+101 {O(n)}
1: evalexminientryin->evalexminibb1in, Arg_0: Arg_1 {O(n)}
1: evalexminientryin->evalexminibb1in, Arg_1: Arg_0 {O(n)}
1: evalexminientryin->evalexminibb1in, Arg_2: Arg_2 {O(n)}
6: evalexminireturnin->evalexministop, Arg_0: 2*Arg_0+2*Arg_2+6*Arg_1+202 {O(n)}
6: evalexminireturnin->evalexministop, Arg_1: 2*Arg_1+4*Arg_2+6*Arg_0+202 {O(n)}
6: evalexminireturnin->evalexministop, Arg_2: 2*Arg_1+4*Arg_0+6*Arg_2+202 {O(n)}
0: evalexministart->evalexminientryin, Arg_0: Arg_0 {O(n)}
0: evalexministart->evalexminientryin, Arg_1: Arg_1 {O(n)}
0: evalexministart->evalexminientryin, Arg_2: Arg_2 {O(n)}