Initial Problem
Start: evalwcet2start
Program_Vars: Arg_0, Arg_1
Temp_Vars:
Locations: evalwcet2bb1in, evalwcet2bb2in, evalwcet2bb4in, evalwcet2bb5in, evalwcet2entryin, evalwcet2returnin, evalwcet2start, evalwcet2stop
Transitions:
7:evalwcet2bb1in(Arg_0,Arg_1) -> evalwcet2bb2in(Arg_0,Arg_1+1)
4:evalwcet2bb2in(Arg_0,Arg_1) -> evalwcet2bb1in(Arg_0,Arg_1):|:3<=Arg_0 && Arg_1<=9
5:evalwcet2bb2in(Arg_0,Arg_1) -> evalwcet2bb4in(Arg_0,Arg_1):|:Arg_0<=2
6:evalwcet2bb2in(Arg_0,Arg_1) -> evalwcet2bb4in(Arg_0,Arg_1):|:10<=Arg_1
8:evalwcet2bb4in(Arg_0,Arg_1) -> evalwcet2bb5in(Arg_0+1,Arg_1)
2:evalwcet2bb5in(Arg_0,Arg_1) -> evalwcet2bb2in(Arg_0,0):|:Arg_0<=4
3:evalwcet2bb5in(Arg_0,Arg_1) -> evalwcet2returnin(Arg_0,Arg_1):|:5<=Arg_0
1:evalwcet2entryin(Arg_0,Arg_1) -> evalwcet2bb5in(Arg_0,Arg_1)
9:evalwcet2returnin(Arg_0,Arg_1) -> evalwcet2stop(Arg_0,Arg_1)
0:evalwcet2start(Arg_0,Arg_1) -> evalwcet2entryin(Arg_0,Arg_1)
Preprocessing
Found invariant 0<=Arg_1 && Arg_0<=4+Arg_1 && Arg_0<=4 for location evalwcet2bb2in
Found invariant 5<=Arg_0 for location evalwcet2returnin
Found invariant Arg_1<=9 && Arg_1<=6+Arg_0 && Arg_0+Arg_1<=13 && 0<=Arg_1 && 3<=Arg_0+Arg_1 && Arg_0<=4+Arg_1 && Arg_0<=4 && 3<=Arg_0 for location evalwcet2bb1in
Found invariant 5<=Arg_0 for location evalwcet2stop
Found invariant 0<=Arg_1 && Arg_0<=2+Arg_1 && Arg_0<=4 for location evalwcet2bb4in
Problem after Preprocessing
Start: evalwcet2start
Program_Vars: Arg_0, Arg_1
Temp_Vars:
Locations: evalwcet2bb1in, evalwcet2bb2in, evalwcet2bb4in, evalwcet2bb5in, evalwcet2entryin, evalwcet2returnin, evalwcet2start, evalwcet2stop
Transitions:
7:evalwcet2bb1in(Arg_0,Arg_1) -> evalwcet2bb2in(Arg_0,Arg_1+1):|:Arg_1<=9 && Arg_1<=6+Arg_0 && Arg_0+Arg_1<=13 && 0<=Arg_1 && 3<=Arg_0+Arg_1 && Arg_0<=4+Arg_1 && Arg_0<=4 && 3<=Arg_0
4:evalwcet2bb2in(Arg_0,Arg_1) -> evalwcet2bb1in(Arg_0,Arg_1):|:0<=Arg_1 && Arg_0<=4+Arg_1 && Arg_0<=4 && 3<=Arg_0 && Arg_1<=9
5:evalwcet2bb2in(Arg_0,Arg_1) -> evalwcet2bb4in(Arg_0,Arg_1):|:0<=Arg_1 && Arg_0<=4+Arg_1 && Arg_0<=4 && Arg_0<=2
6:evalwcet2bb2in(Arg_0,Arg_1) -> evalwcet2bb4in(Arg_0,Arg_1):|:0<=Arg_1 && Arg_0<=4+Arg_1 && Arg_0<=4 && 10<=Arg_1
8:evalwcet2bb4in(Arg_0,Arg_1) -> evalwcet2bb5in(Arg_0+1,Arg_1):|:0<=Arg_1 && Arg_0<=2+Arg_1 && Arg_0<=4
2:evalwcet2bb5in(Arg_0,Arg_1) -> evalwcet2bb2in(Arg_0,0):|:Arg_0<=4
3:evalwcet2bb5in(Arg_0,Arg_1) -> evalwcet2returnin(Arg_0,Arg_1):|:5<=Arg_0
1:evalwcet2entryin(Arg_0,Arg_1) -> evalwcet2bb5in(Arg_0,Arg_1)
9:evalwcet2returnin(Arg_0,Arg_1) -> evalwcet2stop(Arg_0,Arg_1):|:5<=Arg_0
0:evalwcet2start(Arg_0,Arg_1) -> evalwcet2entryin(Arg_0,Arg_1)
MPRF for transition 5:evalwcet2bb2in(Arg_0,Arg_1) -> evalwcet2bb4in(Arg_0,Arg_1):|:0<=Arg_1 && Arg_0<=4+Arg_1 && Arg_0<=4 && Arg_0<=2 of depth 1:
new bound:
Arg_0+3 {O(n)}
MPRF:
evalwcet2bb1in [3-Arg_0 ]
evalwcet2bb4in [2-Arg_0 ]
evalwcet2bb5in [3-Arg_0 ]
evalwcet2bb2in [3-Arg_0 ]
MPRF for transition 6:evalwcet2bb2in(Arg_0,Arg_1) -> evalwcet2bb4in(Arg_0,Arg_1):|:0<=Arg_1 && Arg_0<=4+Arg_1 && Arg_0<=4 && 10<=Arg_1 of depth 1:
new bound:
Arg_0+5 {O(n)}
MPRF:
evalwcet2bb1in [5-Arg_0 ]
evalwcet2bb4in [4-Arg_0 ]
evalwcet2bb5in [5-Arg_0 ]
evalwcet2bb2in [5-Arg_0 ]
MPRF for transition 8:evalwcet2bb4in(Arg_0,Arg_1) -> evalwcet2bb5in(Arg_0+1,Arg_1):|:0<=Arg_1 && Arg_0<=2+Arg_1 && Arg_0<=4 of depth 1:
new bound:
Arg_0+5 {O(n)}
MPRF:
evalwcet2bb1in [5-Arg_0 ]
evalwcet2bb4in [5-Arg_0 ]
evalwcet2bb5in [5-Arg_0 ]
evalwcet2bb2in [5-Arg_0 ]
MPRF for transition 2:evalwcet2bb5in(Arg_0,Arg_1) -> evalwcet2bb2in(Arg_0,0):|:Arg_0<=4 of depth 1:
new bound:
Arg_0+5 {O(n)}
MPRF:
evalwcet2bb1in [4-Arg_0 ]
evalwcet2bb4in [4-Arg_0 ]
evalwcet2bb5in [5-Arg_0 ]
evalwcet2bb2in [4-Arg_0 ]
MPRF for transition 7:evalwcet2bb1in(Arg_0,Arg_1) -> evalwcet2bb2in(Arg_0,Arg_1+1):|:Arg_1<=9 && Arg_1<=6+Arg_0 && Arg_0+Arg_1<=13 && 0<=Arg_1 && 3<=Arg_0+Arg_1 && Arg_0<=4+Arg_1 && Arg_0<=4 && 3<=Arg_0 of depth 1:
new bound:
10*Arg_0+50 {O(n)}
MPRF:
evalwcet2bb1in [10-Arg_1 ]
evalwcet2bb2in [10-Arg_1 ]
evalwcet2bb4in [-Arg_1 ]
evalwcet2bb5in [-Arg_1 ]
MPRF for transition 4:evalwcet2bb2in(Arg_0,Arg_1) -> evalwcet2bb1in(Arg_0,Arg_1):|:0<=Arg_1 && Arg_0<=4+Arg_1 && Arg_0<=4 && 3<=Arg_0 && Arg_1<=9 of depth 1:
new bound:
10*Arg_0+50 {O(n)}
MPRF:
evalwcet2bb1in [9-Arg_1 ]
evalwcet2bb2in [10-Arg_1 ]
evalwcet2bb4in [-Arg_1 ]
evalwcet2bb5in [-Arg_1 ]
All Bounds
Timebounds
Overall timebound:24*Arg_0+122 {O(n)}
7: evalwcet2bb1in->evalwcet2bb2in: 10*Arg_0+50 {O(n)}
4: evalwcet2bb2in->evalwcet2bb1in: 10*Arg_0+50 {O(n)}
5: evalwcet2bb2in->evalwcet2bb4in: Arg_0+3 {O(n)}
6: evalwcet2bb2in->evalwcet2bb4in: Arg_0+5 {O(n)}
8: evalwcet2bb4in->evalwcet2bb5in: Arg_0+5 {O(n)}
2: evalwcet2bb5in->evalwcet2bb2in: Arg_0+5 {O(n)}
3: evalwcet2bb5in->evalwcet2returnin: 1 {O(1)}
1: evalwcet2entryin->evalwcet2bb5in: 1 {O(1)}
9: evalwcet2returnin->evalwcet2stop: 1 {O(1)}
0: evalwcet2start->evalwcet2entryin: 1 {O(1)}
Costbounds
Overall costbound: 24*Arg_0+122 {O(n)}
7: evalwcet2bb1in->evalwcet2bb2in: 10*Arg_0+50 {O(n)}
4: evalwcet2bb2in->evalwcet2bb1in: 10*Arg_0+50 {O(n)}
5: evalwcet2bb2in->evalwcet2bb4in: Arg_0+3 {O(n)}
6: evalwcet2bb2in->evalwcet2bb4in: Arg_0+5 {O(n)}
8: evalwcet2bb4in->evalwcet2bb5in: Arg_0+5 {O(n)}
2: evalwcet2bb5in->evalwcet2bb2in: Arg_0+5 {O(n)}
3: evalwcet2bb5in->evalwcet2returnin: 1 {O(1)}
1: evalwcet2entryin->evalwcet2bb5in: 1 {O(1)}
9: evalwcet2returnin->evalwcet2stop: 1 {O(1)}
0: evalwcet2start->evalwcet2entryin: 1 {O(1)}
Sizebounds
7: evalwcet2bb1in->evalwcet2bb2in, Arg_0: 4 {O(1)}
7: evalwcet2bb1in->evalwcet2bb2in, Arg_1: 10 {O(1)}
4: evalwcet2bb2in->evalwcet2bb1in, Arg_0: 4 {O(1)}
4: evalwcet2bb2in->evalwcet2bb1in, Arg_1: 9 {O(1)}
5: evalwcet2bb2in->evalwcet2bb4in, Arg_0: 2*Arg_0+9 {O(n)}
5: evalwcet2bb2in->evalwcet2bb4in, Arg_1: 0 {O(1)}
6: evalwcet2bb2in->evalwcet2bb4in, Arg_0: 4 {O(1)}
6: evalwcet2bb2in->evalwcet2bb4in, Arg_1: 10 {O(1)}
8: evalwcet2bb4in->evalwcet2bb5in, Arg_0: 2*Arg_0+9 {O(n)}
8: evalwcet2bb4in->evalwcet2bb5in, Arg_1: 10 {O(1)}
2: evalwcet2bb5in->evalwcet2bb2in, Arg_0: 2*Arg_0+9 {O(n)}
2: evalwcet2bb5in->evalwcet2bb2in, Arg_1: 0 {O(1)}
3: evalwcet2bb5in->evalwcet2returnin, Arg_0: 3*Arg_0+9 {O(n)}
3: evalwcet2bb5in->evalwcet2returnin, Arg_1: Arg_1+10 {O(n)}
1: evalwcet2entryin->evalwcet2bb5in, Arg_0: Arg_0 {O(n)}
1: evalwcet2entryin->evalwcet2bb5in, Arg_1: Arg_1 {O(n)}
9: evalwcet2returnin->evalwcet2stop, Arg_0: 3*Arg_0+9 {O(n)}
9: evalwcet2returnin->evalwcet2stop, Arg_1: Arg_1+10 {O(n)}
0: evalwcet2start->evalwcet2entryin, Arg_0: Arg_0 {O(n)}
0: evalwcet2start->evalwcet2entryin, Arg_1: Arg_1 {O(n)}