Initial Problem
Start: evalSequentialSinglestart
Program_Vars: Arg_0, Arg_1
Temp_Vars: C
Locations: evalSequentialSinglebb1in, evalSequentialSinglebb2in, evalSequentialSinglebb4in, evalSequentialSinglebb5in, evalSequentialSinglebbin, evalSequentialSingleentryin, evalSequentialSinglereturnin, evalSequentialSinglestart, evalSequentialSinglestop
Transitions:
3:evalSequentialSinglebb1in(Arg_0,Arg_1) -> evalSequentialSinglebb2in(Arg_0,Arg_1):|:Arg_0+1<=Arg_1
2:evalSequentialSinglebb1in(Arg_0,Arg_1) -> evalSequentialSinglebb5in(Arg_0,Arg_1):|:Arg_1<=Arg_0
6:evalSequentialSinglebb2in(Arg_0,Arg_1) -> evalSequentialSinglebb5in(Arg_0,Arg_1)
4:evalSequentialSinglebb2in(Arg_0,Arg_1) -> evalSequentialSinglebbin(Arg_0,Arg_1):|:C+1<=0
5:evalSequentialSinglebb2in(Arg_0,Arg_1) -> evalSequentialSinglebbin(Arg_0,Arg_1):|:1<=C
10:evalSequentialSinglebb4in(Arg_0,Arg_1) -> evalSequentialSinglebb5in(Arg_0+1,Arg_1)
8:evalSequentialSinglebb5in(Arg_0,Arg_1) -> evalSequentialSinglebb4in(Arg_0,Arg_1):|:Arg_0+1<=Arg_1
9:evalSequentialSinglebb5in(Arg_0,Arg_1) -> evalSequentialSinglereturnin(Arg_0,Arg_1):|:Arg_1<=Arg_0
7:evalSequentialSinglebbin(Arg_0,Arg_1) -> evalSequentialSinglebb1in(Arg_0+1,Arg_1)
1:evalSequentialSingleentryin(Arg_0,Arg_1) -> evalSequentialSinglebb1in(0,Arg_1)
11:evalSequentialSinglereturnin(Arg_0,Arg_1) -> evalSequentialSinglestop(Arg_0,Arg_1)
0:evalSequentialSinglestart(Arg_0,Arg_1) -> evalSequentialSingleentryin(Arg_0,Arg_1)
Preprocessing
Found invariant 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 for location evalSequentialSinglebbin
Found invariant 0<=Arg_0 for location evalSequentialSinglebb1in
Found invariant 0<=Arg_0 for location evalSequentialSinglebb5in
Found invariant 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 for location evalSequentialSinglebb4in
Found invariant Arg_1<=Arg_0 && 0<=Arg_0 for location evalSequentialSinglestop
Found invariant 1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 for location evalSequentialSinglebb2in
Found invariant Arg_1<=Arg_0 && 0<=Arg_0 for location evalSequentialSinglereturnin
Problem after Preprocessing
Start: evalSequentialSinglestart
Program_Vars: Arg_0, Arg_1
Temp_Vars: C
Locations: evalSequentialSinglebb1in, evalSequentialSinglebb2in, evalSequentialSinglebb4in, evalSequentialSinglebb5in, evalSequentialSinglebbin, evalSequentialSingleentryin, evalSequentialSinglereturnin, evalSequentialSinglestart, evalSequentialSinglestop
Transitions:
3:evalSequentialSinglebb1in(Arg_0,Arg_1) -> evalSequentialSinglebb2in(Arg_0,Arg_1):|:0<=Arg_0 && Arg_0+1<=Arg_1
2:evalSequentialSinglebb1in(Arg_0,Arg_1) -> evalSequentialSinglebb5in(Arg_0,Arg_1):|:0<=Arg_0 && Arg_1<=Arg_0
6:evalSequentialSinglebb2in(Arg_0,Arg_1) -> evalSequentialSinglebb5in(Arg_0,Arg_1):|:1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0
4:evalSequentialSinglebb2in(Arg_0,Arg_1) -> evalSequentialSinglebbin(Arg_0,Arg_1):|:1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && C+1<=0
5:evalSequentialSinglebb2in(Arg_0,Arg_1) -> evalSequentialSinglebbin(Arg_0,Arg_1):|:1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && 1<=C
10:evalSequentialSinglebb4in(Arg_0,Arg_1) -> evalSequentialSinglebb5in(Arg_0+1,Arg_1):|:1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0
8:evalSequentialSinglebb5in(Arg_0,Arg_1) -> evalSequentialSinglebb4in(Arg_0,Arg_1):|:0<=Arg_0 && Arg_0+1<=Arg_1
9:evalSequentialSinglebb5in(Arg_0,Arg_1) -> evalSequentialSinglereturnin(Arg_0,Arg_1):|:0<=Arg_0 && Arg_1<=Arg_0
7:evalSequentialSinglebbin(Arg_0,Arg_1) -> evalSequentialSinglebb1in(Arg_0+1,Arg_1):|:1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0
1:evalSequentialSingleentryin(Arg_0,Arg_1) -> evalSequentialSinglebb1in(0,Arg_1)
11:evalSequentialSinglereturnin(Arg_0,Arg_1) -> evalSequentialSinglestop(Arg_0,Arg_1):|:Arg_1<=Arg_0 && 0<=Arg_0
0:evalSequentialSinglestart(Arg_0,Arg_1) -> evalSequentialSingleentryin(Arg_0,Arg_1)
MPRF for transition 3:evalSequentialSinglebb1in(Arg_0,Arg_1) -> evalSequentialSinglebb2in(Arg_0,Arg_1):|:0<=Arg_0 && Arg_0+1<=Arg_1 of depth 1:
new bound:
Arg_1 {O(n)}
MPRF:
evalSequentialSinglebb2in [Arg_1-Arg_0-1 ]
evalSequentialSinglebbin [Arg_1-Arg_0-1 ]
evalSequentialSinglebb1in [Arg_1-Arg_0 ]
MPRF for transition 4:evalSequentialSinglebb2in(Arg_0,Arg_1) -> evalSequentialSinglebbin(Arg_0,Arg_1):|:1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && C+1<=0 of depth 1:
new bound:
Arg_1 {O(n)}
MPRF:
evalSequentialSinglebb2in [Arg_1-Arg_0 ]
evalSequentialSinglebbin [Arg_1-Arg_0-1 ]
evalSequentialSinglebb1in [Arg_1-Arg_0 ]
MPRF for transition 5:evalSequentialSinglebb2in(Arg_0,Arg_1) -> evalSequentialSinglebbin(Arg_0,Arg_1):|:1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 && 1<=C of depth 1:
new bound:
Arg_1 {O(n)}
MPRF:
evalSequentialSinglebb2in [Arg_1-Arg_0 ]
evalSequentialSinglebbin [Arg_1-Arg_0-1 ]
evalSequentialSinglebb1in [Arg_1-Arg_0 ]
MPRF for transition 7:evalSequentialSinglebbin(Arg_0,Arg_1) -> evalSequentialSinglebb1in(Arg_0+1,Arg_1):|:1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 of depth 1:
new bound:
Arg_1 {O(n)}
MPRF:
evalSequentialSinglebb2in [Arg_1-Arg_0 ]
evalSequentialSinglebbin [Arg_1-Arg_0 ]
evalSequentialSinglebb1in [Arg_1-Arg_0 ]
MPRF for transition 10:evalSequentialSinglebb4in(Arg_0,Arg_1) -> evalSequentialSinglebb5in(Arg_0+1,Arg_1):|:1<=Arg_1 && 1<=Arg_0+Arg_1 && 1+Arg_0<=Arg_1 && 0<=Arg_0 of depth 1:
new bound:
2*Arg_1 {O(n)}
MPRF:
evalSequentialSinglebb5in [Arg_1-Arg_0 ]
evalSequentialSinglebb4in [Arg_1-Arg_0 ]
MPRF for transition 8:evalSequentialSinglebb5in(Arg_0,Arg_1) -> evalSequentialSinglebb4in(Arg_0,Arg_1):|:0<=Arg_0 && Arg_0+1<=Arg_1 of depth 1:
new bound:
2*Arg_1 {O(n)}
MPRF:
evalSequentialSinglebb5in [Arg_1-Arg_0 ]
evalSequentialSinglebb4in [Arg_1-Arg_0-1 ]
All Bounds
Timebounds
Overall timebound:8*Arg_1+6 {O(n)}
2: evalSequentialSinglebb1in->evalSequentialSinglebb5in: 1 {O(1)}
3: evalSequentialSinglebb1in->evalSequentialSinglebb2in: Arg_1 {O(n)}
4: evalSequentialSinglebb2in->evalSequentialSinglebbin: Arg_1 {O(n)}
5: evalSequentialSinglebb2in->evalSequentialSinglebbin: Arg_1 {O(n)}
6: evalSequentialSinglebb2in->evalSequentialSinglebb5in: 1 {O(1)}
10: evalSequentialSinglebb4in->evalSequentialSinglebb5in: 2*Arg_1 {O(n)}
8: evalSequentialSinglebb5in->evalSequentialSinglebb4in: 2*Arg_1 {O(n)}
9: evalSequentialSinglebb5in->evalSequentialSinglereturnin: 1 {O(1)}
7: evalSequentialSinglebbin->evalSequentialSinglebb1in: Arg_1 {O(n)}
1: evalSequentialSingleentryin->evalSequentialSinglebb1in: 1 {O(1)}
11: evalSequentialSinglereturnin->evalSequentialSinglestop: 1 {O(1)}
0: evalSequentialSinglestart->evalSequentialSingleentryin: 1 {O(1)}
Costbounds
Overall costbound: 8*Arg_1+6 {O(n)}
2: evalSequentialSinglebb1in->evalSequentialSinglebb5in: 1 {O(1)}
3: evalSequentialSinglebb1in->evalSequentialSinglebb2in: Arg_1 {O(n)}
4: evalSequentialSinglebb2in->evalSequentialSinglebbin: Arg_1 {O(n)}
5: evalSequentialSinglebb2in->evalSequentialSinglebbin: Arg_1 {O(n)}
6: evalSequentialSinglebb2in->evalSequentialSinglebb5in: 1 {O(1)}
10: evalSequentialSinglebb4in->evalSequentialSinglebb5in: 2*Arg_1 {O(n)}
8: evalSequentialSinglebb5in->evalSequentialSinglebb4in: 2*Arg_1 {O(n)}
9: evalSequentialSinglebb5in->evalSequentialSinglereturnin: 1 {O(1)}
7: evalSequentialSinglebbin->evalSequentialSinglebb1in: Arg_1 {O(n)}
1: evalSequentialSingleentryin->evalSequentialSinglebb1in: 1 {O(1)}
11: evalSequentialSinglereturnin->evalSequentialSinglestop: 1 {O(1)}
0: evalSequentialSinglestart->evalSequentialSingleentryin: 1 {O(1)}
Sizebounds
2: evalSequentialSinglebb1in->evalSequentialSinglebb5in, Arg_0: Arg_1 {O(n)}
2: evalSequentialSinglebb1in->evalSequentialSinglebb5in, Arg_1: 2*Arg_1 {O(n)}
3: evalSequentialSinglebb1in->evalSequentialSinglebb2in, Arg_0: Arg_1 {O(n)}
3: evalSequentialSinglebb1in->evalSequentialSinglebb2in, Arg_1: Arg_1 {O(n)}
4: evalSequentialSinglebb2in->evalSequentialSinglebbin, Arg_0: Arg_1 {O(n)}
4: evalSequentialSinglebb2in->evalSequentialSinglebbin, Arg_1: Arg_1 {O(n)}
5: evalSequentialSinglebb2in->evalSequentialSinglebbin, Arg_0: Arg_1 {O(n)}
5: evalSequentialSinglebb2in->evalSequentialSinglebbin, Arg_1: Arg_1 {O(n)}
6: evalSequentialSinglebb2in->evalSequentialSinglebb5in, Arg_0: Arg_1 {O(n)}
6: evalSequentialSinglebb2in->evalSequentialSinglebb5in, Arg_1: Arg_1 {O(n)}
10: evalSequentialSinglebb4in->evalSequentialSinglebb5in, Arg_0: 3*Arg_1 {O(n)}
10: evalSequentialSinglebb4in->evalSequentialSinglebb5in, Arg_1: Arg_1 {O(n)}
8: evalSequentialSinglebb5in->evalSequentialSinglebb4in, Arg_0: 3*Arg_1 {O(n)}
8: evalSequentialSinglebb5in->evalSequentialSinglebb4in, Arg_1: Arg_1 {O(n)}
9: evalSequentialSinglebb5in->evalSequentialSinglereturnin, Arg_0: 4*Arg_1 {O(n)}
9: evalSequentialSinglebb5in->evalSequentialSinglereturnin, Arg_1: 3*Arg_1 {O(n)}
7: evalSequentialSinglebbin->evalSequentialSinglebb1in, Arg_0: Arg_1 {O(n)}
7: evalSequentialSinglebbin->evalSequentialSinglebb1in, Arg_1: Arg_1 {O(n)}
1: evalSequentialSingleentryin->evalSequentialSinglebb1in, Arg_0: 0 {O(1)}
1: evalSequentialSingleentryin->evalSequentialSinglebb1in, Arg_1: Arg_1 {O(n)}
11: evalSequentialSinglereturnin->evalSequentialSinglestop, Arg_0: 4*Arg_1 {O(n)}
11: evalSequentialSinglereturnin->evalSequentialSinglestop, Arg_1: 3*Arg_1 {O(n)}
0: evalSequentialSinglestart->evalSequentialSingleentryin, Arg_0: Arg_0 {O(n)}
0: evalSequentialSinglestart->evalSequentialSingleentryin, Arg_1: Arg_1 {O(n)}