Initial Problem

Start: evalrealselectstart
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars: D, E
Locations: evalrealselectbb1in, evalrealselectbb4in, evalrealselectbb5in, evalrealselectbb6in, evalrealselectbbin, evalrealselectentryin, evalrealselectreturnin, evalrealselectstart, evalrealselectstop
Transitions:
7:evalrealselectbb1in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb4in(Arg_0,Arg_1,Arg_2+1):|:E+1<=D
8:evalrealselectbb1in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb4in(Arg_0,Arg_1,Arg_2+1):|:D<=E
5:evalrealselectbb4in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb1in(Arg_0,Arg_1,Arg_2):|:Arg_2+1<=Arg_1
6:evalrealselectbb4in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb5in(Arg_0,Arg_1,Arg_2):|:Arg_1<=Arg_2
9:evalrealselectbb5in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb6in(Arg_0+1,Arg_1,Arg_2)
2:evalrealselectbb6in(Arg_0,Arg_1,Arg_2) -> evalrealselectbbin(Arg_0,Arg_1,Arg_2):|:2+Arg_0<=Arg_1
3:evalrealselectbb6in(Arg_0,Arg_1,Arg_2) -> evalrealselectreturnin(Arg_0,Arg_1,Arg_2):|:Arg_1<=Arg_0+1
4:evalrealselectbbin(Arg_0,Arg_1,Arg_2) -> evalrealselectbb4in(Arg_0,Arg_1,Arg_0+1)
1:evalrealselectentryin(Arg_0,Arg_1,Arg_2) -> evalrealselectbb6in(0,Arg_1,Arg_2)
10:evalrealselectreturnin(Arg_0,Arg_1,Arg_2) -> evalrealselectstop(Arg_0,Arg_1,Arg_2)
0:evalrealselectstart(Arg_0,Arg_1,Arg_2) -> evalrealselectentryin(Arg_0,Arg_1,Arg_2)

Preprocessing

Found invariant 0<=Arg_0 for location evalrealselectbb6in

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

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

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

Found invariant Arg_2<=Arg_1 && 2<=Arg_2 && 4<=Arg_1+Arg_2 && Arg_1<=Arg_2 && 2<=Arg_0+Arg_2 && 2+Arg_0<=Arg_2 && 2<=Arg_1 && 2<=Arg_0+Arg_1 && 2+Arg_0<=Arg_1 && 0<=Arg_0 for location evalrealselectbb5in

Found invariant 2<=Arg_1 && 2<=Arg_0+Arg_1 && 2+Arg_0<=Arg_1 && 0<=Arg_0 for location evalrealselectbbin

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

Problem after Preprocessing

Start: evalrealselectstart
Program_Vars: Arg_0, Arg_1, Arg_2
Temp_Vars: D, E
Locations: evalrealselectbb1in, evalrealselectbb4in, evalrealselectbb5in, evalrealselectbb6in, evalrealselectbbin, evalrealselectentryin, evalrealselectreturnin, evalrealselectstart, evalrealselectstop
Transitions:
7:evalrealselectbb1in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb4in(Arg_0,Arg_1,Arg_2+1):|:1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 2<=Arg_1 && 2<=Arg_0+Arg_1 && 2+Arg_0<=Arg_1 && 0<=Arg_0 && E+1<=D
8:evalrealselectbb1in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb4in(Arg_0,Arg_1,Arg_2+1):|:1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 2<=Arg_1 && 2<=Arg_0+Arg_1 && 2+Arg_0<=Arg_1 && 0<=Arg_0 && D<=E
5:evalrealselectbb4in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb1in(Arg_0,Arg_1,Arg_2):|:Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 2<=Arg_1 && 2<=Arg_0+Arg_1 && 2+Arg_0<=Arg_1 && 0<=Arg_0 && Arg_2+1<=Arg_1
6:evalrealselectbb4in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb5in(Arg_0,Arg_1,Arg_2):|:Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 2<=Arg_1 && 2<=Arg_0+Arg_1 && 2+Arg_0<=Arg_1 && 0<=Arg_0 && Arg_1<=Arg_2
9:evalrealselectbb5in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb6in(Arg_0+1,Arg_1,Arg_2):|:Arg_2<=Arg_1 && 2<=Arg_2 && 4<=Arg_1+Arg_2 && Arg_1<=Arg_2 && 2<=Arg_0+Arg_2 && 2+Arg_0<=Arg_2 && 2<=Arg_1 && 2<=Arg_0+Arg_1 && 2+Arg_0<=Arg_1 && 0<=Arg_0
2:evalrealselectbb6in(Arg_0,Arg_1,Arg_2) -> evalrealselectbbin(Arg_0,Arg_1,Arg_2):|:0<=Arg_0 && 2+Arg_0<=Arg_1
3:evalrealselectbb6in(Arg_0,Arg_1,Arg_2) -> evalrealselectreturnin(Arg_0,Arg_1,Arg_2):|:0<=Arg_0 && Arg_1<=Arg_0+1
4:evalrealselectbbin(Arg_0,Arg_1,Arg_2) -> evalrealselectbb4in(Arg_0,Arg_1,Arg_0+1):|:2<=Arg_1 && 2<=Arg_0+Arg_1 && 2+Arg_0<=Arg_1 && 0<=Arg_0
1:evalrealselectentryin(Arg_0,Arg_1,Arg_2) -> evalrealselectbb6in(0,Arg_1,Arg_2)
10:evalrealselectreturnin(Arg_0,Arg_1,Arg_2) -> evalrealselectstop(Arg_0,Arg_1,Arg_2):|:Arg_1<=1+Arg_0 && 0<=Arg_0
0:evalrealselectstart(Arg_0,Arg_1,Arg_2) -> evalrealselectentryin(Arg_0,Arg_1,Arg_2)

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

new bound:

Arg_1+1 {O(n)}

MPRF:

evalrealselectbb1in [Arg_1-Arg_0-1 ]
evalrealselectbb5in [Arg_2-Arg_0-2 ]
evalrealselectbb6in [Arg_1-Arg_0-1 ]
evalrealselectbbin [Arg_1-Arg_0-1 ]
evalrealselectbb4in [Arg_1-Arg_0-1 ]

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

new bound:

Arg_1+1 {O(n)}

MPRF:

evalrealselectbb1in [Arg_1-Arg_0-1 ]
evalrealselectbb5in [Arg_1-Arg_0-1 ]
evalrealselectbb6in [Arg_1-Arg_0-1 ]
evalrealselectbbin [Arg_1-Arg_0-1 ]
evalrealselectbb4in [Arg_1-Arg_0-1 ]

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

new bound:

Arg_1+2 {O(n)}

MPRF:

evalrealselectbb1in [Arg_1+1-Arg_0 ]
evalrealselectbb5in [Arg_2+1-Arg_0 ]
evalrealselectbb6in [Arg_1+2-Arg_0 ]
evalrealselectbbin [Arg_1+1-Arg_0 ]
evalrealselectbb4in [Arg_1+1-Arg_0 ]

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

new bound:

Arg_1+1 {O(n)}

MPRF:

evalrealselectbb1in [Arg_1-Arg_0-2 ]
evalrealselectbb5in [Arg_1-Arg_0-2 ]
evalrealselectbb6in [Arg_1-Arg_0-1 ]
evalrealselectbbin [Arg_1-Arg_0-1 ]
evalrealselectbb4in [Arg_1-Arg_0-2 ]

MPRF for transition 7:evalrealselectbb1in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb4in(Arg_0,Arg_1,Arg_2+1):|:1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 2<=Arg_1 && 2<=Arg_0+Arg_1 && 2+Arg_0<=Arg_1 && 0<=Arg_0 && E+1<=D of depth 1:

new bound:

2*Arg_1*Arg_1+4*Arg_1+2 {O(n^2)}

MPRF:

evalrealselectbb1in [Arg_1-Arg_2 ]
evalrealselectbb4in [Arg_1-Arg_2 ]
evalrealselectbb5in [Arg_1-Arg_2 ]
evalrealselectbb6in [0 ]
evalrealselectbbin [0 ]

MPRF for transition 8:evalrealselectbb1in(Arg_0,Arg_1,Arg_2) -> evalrealselectbb4in(Arg_0,Arg_1,Arg_2+1):|:1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && 1<=Arg_0+Arg_2 && 1+Arg_0<=Arg_2 && 2<=Arg_1 && 2<=Arg_0+Arg_1 && 2+Arg_0<=Arg_1 && 0<=Arg_0 && D<=E of depth 1:

new bound:

2*Arg_1*Arg_1+4*Arg_1+2 {O(n^2)}

MPRF:

evalrealselectbb1in [Arg_1-Arg_2 ]
evalrealselectbb4in [Arg_1-Arg_2 ]
evalrealselectbb5in [Arg_1-Arg_2 ]
evalrealselectbb6in [0 ]
evalrealselectbbin [0 ]

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

new bound:

2*Arg_1*Arg_1+4*Arg_1+2 {O(n^2)}

MPRF:

evalrealselectbb1in [Arg_1-Arg_2-1 ]
evalrealselectbb4in [Arg_1-Arg_2 ]
evalrealselectbb5in [Arg_1-Arg_2 ]
evalrealselectbb6in [0 ]
evalrealselectbbin [0 ]

All Bounds

Timebounds

Overall timebound:6*Arg_1*Arg_1+16*Arg_1+15 {O(n^2)}
7: evalrealselectbb1in->evalrealselectbb4in: 2*Arg_1*Arg_1+4*Arg_1+2 {O(n^2)}
8: evalrealselectbb1in->evalrealselectbb4in: 2*Arg_1*Arg_1+4*Arg_1+2 {O(n^2)}
5: evalrealselectbb4in->evalrealselectbb1in: 2*Arg_1*Arg_1+4*Arg_1+2 {O(n^2)}
6: evalrealselectbb4in->evalrealselectbb5in: Arg_1+1 {O(n)}
9: evalrealselectbb5in->evalrealselectbb6in: Arg_1+1 {O(n)}
2: evalrealselectbb6in->evalrealselectbbin: Arg_1+2 {O(n)}
3: evalrealselectbb6in->evalrealselectreturnin: 1 {O(1)}
4: evalrealselectbbin->evalrealselectbb4in: Arg_1+1 {O(n)}
1: evalrealselectentryin->evalrealselectbb6in: 1 {O(1)}
10: evalrealselectreturnin->evalrealselectstop: 1 {O(1)}
0: evalrealselectstart->evalrealselectentryin: 1 {O(1)}

Costbounds

Overall costbound: 6*Arg_1*Arg_1+16*Arg_1+15 {O(n^2)}
7: evalrealselectbb1in->evalrealselectbb4in: 2*Arg_1*Arg_1+4*Arg_1+2 {O(n^2)}
8: evalrealselectbb1in->evalrealselectbb4in: 2*Arg_1*Arg_1+4*Arg_1+2 {O(n^2)}
5: evalrealselectbb4in->evalrealselectbb1in: 2*Arg_1*Arg_1+4*Arg_1+2 {O(n^2)}
6: evalrealselectbb4in->evalrealselectbb5in: Arg_1+1 {O(n)}
9: evalrealselectbb5in->evalrealselectbb6in: Arg_1+1 {O(n)}
2: evalrealselectbb6in->evalrealselectbbin: Arg_1+2 {O(n)}
3: evalrealselectbb6in->evalrealselectreturnin: 1 {O(1)}
4: evalrealselectbbin->evalrealselectbb4in: Arg_1+1 {O(n)}
1: evalrealselectentryin->evalrealselectbb6in: 1 {O(1)}
10: evalrealselectreturnin->evalrealselectstop: 1 {O(1)}
0: evalrealselectstart->evalrealselectentryin: 1 {O(1)}

Sizebounds

7: evalrealselectbb1in->evalrealselectbb4in, Arg_0: Arg_1+1 {O(n)}
7: evalrealselectbb1in->evalrealselectbb4in, Arg_1: Arg_1 {O(n)}
7: evalrealselectbb1in->evalrealselectbb4in, Arg_2: 4*Arg_1*Arg_1+9*Arg_1+6 {O(n^2)}
8: evalrealselectbb1in->evalrealselectbb4in, Arg_0: Arg_1+1 {O(n)}
8: evalrealselectbb1in->evalrealselectbb4in, Arg_1: Arg_1 {O(n)}
8: evalrealselectbb1in->evalrealselectbb4in, Arg_2: 4*Arg_1*Arg_1+9*Arg_1+6 {O(n^2)}
5: evalrealselectbb4in->evalrealselectbb1in, Arg_0: Arg_1+1 {O(n)}
5: evalrealselectbb4in->evalrealselectbb1in, Arg_1: Arg_1 {O(n)}
5: evalrealselectbb4in->evalrealselectbb1in, Arg_2: 4*Arg_1*Arg_1+9*Arg_1+6 {O(n^2)}
6: evalrealselectbb4in->evalrealselectbb5in, Arg_0: Arg_1+1 {O(n)}
6: evalrealselectbb4in->evalrealselectbb5in, Arg_1: Arg_1 {O(n)}
6: evalrealselectbb4in->evalrealselectbb5in, Arg_2: 8*Arg_1*Arg_1+18*Arg_1+12 {O(n^2)}
9: evalrealselectbb5in->evalrealselectbb6in, Arg_0: Arg_1+1 {O(n)}
9: evalrealselectbb5in->evalrealselectbb6in, Arg_1: Arg_1 {O(n)}
9: evalrealselectbb5in->evalrealselectbb6in, Arg_2: 8*Arg_1*Arg_1+18*Arg_1+12 {O(n^2)}
2: evalrealselectbb6in->evalrealselectbbin, Arg_0: Arg_1+1 {O(n)}
2: evalrealselectbb6in->evalrealselectbbin, Arg_1: Arg_1 {O(n)}
2: evalrealselectbb6in->evalrealselectbbin, Arg_2: 8*Arg_1*Arg_1+18*Arg_1+Arg_2+12 {O(n^2)}
3: evalrealselectbb6in->evalrealselectreturnin, Arg_0: Arg_1+1 {O(n)}
3: evalrealselectbb6in->evalrealselectreturnin, Arg_1: 2*Arg_1 {O(n)}
3: evalrealselectbb6in->evalrealselectreturnin, Arg_2: 8*Arg_1*Arg_1+18*Arg_1+Arg_2+12 {O(n^2)}
4: evalrealselectbbin->evalrealselectbb4in, Arg_0: Arg_1+1 {O(n)}
4: evalrealselectbbin->evalrealselectbb4in, Arg_1: Arg_1 {O(n)}
4: evalrealselectbbin->evalrealselectbb4in, Arg_2: Arg_1+2 {O(n)}
1: evalrealselectentryin->evalrealselectbb6in, Arg_0: 0 {O(1)}
1: evalrealselectentryin->evalrealselectbb6in, Arg_1: Arg_1 {O(n)}
1: evalrealselectentryin->evalrealselectbb6in, Arg_2: Arg_2 {O(n)}
10: evalrealselectreturnin->evalrealselectstop, Arg_0: Arg_1+1 {O(n)}
10: evalrealselectreturnin->evalrealselectstop, Arg_1: 2*Arg_1 {O(n)}
10: evalrealselectreturnin->evalrealselectstop, Arg_2: 8*Arg_1*Arg_1+18*Arg_1+Arg_2+12 {O(n^2)}
0: evalrealselectstart->evalrealselectentryin, Arg_0: Arg_0 {O(n)}
0: evalrealselectstart->evalrealselectentryin, Arg_1: Arg_1 {O(n)}
0: evalrealselectstart->evalrealselectentryin, Arg_2: Arg_2 {O(n)}