Initial Problem
Start: evalfstart
Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3
Temp_Vars: E
Locations: evalfbb1in, evalfbb2in, evalfbb3in, evalfbb4in, evalfbb5in, evalfbbin, evalfentryin, evalfreturnin, evalfstart, evalfstop
Transitions:
10:evalfbb1in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb2in(Arg_0,Arg_1,Arg_2,Arg_3-1)
6:evalfbb2in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_2<=Arg_3
5:evalfbb2in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_3+1<=Arg_2
7:evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb1in(Arg_0,Arg_1,Arg_2,Arg_3):|:E+1<=0
8:evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb1in(Arg_0,Arg_1,Arg_2,Arg_3):|:1<=E
9:evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3)
11:evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb5in(Arg_3+1-Arg_2,Arg_2-1,Arg_2,Arg_3)
2:evalfbb5in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbbin(Arg_0,Arg_1,Arg_2,Arg_3):|:2<=Arg_1
3:evalfbb5in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfreturnin(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_1<=1
4:evalfbbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb2in(Arg_0,Arg_1,Arg_1-1,Arg_0+Arg_1-1)
1:evalfentryin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb5in(Arg_1,Arg_1,Arg_2,Arg_3)
12:evalfreturnin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfstop(Arg_0,Arg_1,Arg_2,Arg_3)
0:evalfstart(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfentryin(Arg_0,Arg_1,Arg_2,Arg_3)
Preprocessing
Found invariant Arg_1<=1 for location evalfreturnin
Found invariant 1<=Arg_3 && 2<=Arg_2+Arg_3 && Arg_2<=Arg_3 && 3<=Arg_1+Arg_3 && Arg_1<=1+Arg_3 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 for location evalfbb1in
Found invariant 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 for location evalfbb2in
Found invariant 2<=Arg_1 for location evalfbbin
Found invariant 1<=Arg_3 && 2<=Arg_2+Arg_3 && Arg_2<=Arg_3 && 3<=Arg_1+Arg_3 && Arg_1<=1+Arg_3 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 for location evalfbb3in
Found invariant Arg_1<=1 for location evalfstop
Found invariant 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 for location evalfbb4in
Problem after Preprocessing
Start: evalfstart
Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3
Temp_Vars: E
Locations: evalfbb1in, evalfbb2in, evalfbb3in, evalfbb4in, evalfbb5in, evalfbbin, evalfentryin, evalfreturnin, evalfstart, evalfstop
Transitions:
10:evalfbb1in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb2in(Arg_0,Arg_1,Arg_2,Arg_3-1):|:1<=Arg_3 && 2<=Arg_2+Arg_3 && Arg_2<=Arg_3 && 3<=Arg_1+Arg_3 && Arg_1<=1+Arg_3 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1
6:evalfbb2in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3):|:1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 && Arg_2<=Arg_3
5:evalfbb2in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3):|:1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 && Arg_3+1<=Arg_2
7:evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb1in(Arg_0,Arg_1,Arg_2,Arg_3):|:1<=Arg_3 && 2<=Arg_2+Arg_3 && Arg_2<=Arg_3 && 3<=Arg_1+Arg_3 && Arg_1<=1+Arg_3 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 && E+1<=0
8:evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb1in(Arg_0,Arg_1,Arg_2,Arg_3):|:1<=Arg_3 && 2<=Arg_2+Arg_3 && Arg_2<=Arg_3 && 3<=Arg_1+Arg_3 && Arg_1<=1+Arg_3 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 && 1<=E
9:evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3):|:1<=Arg_3 && 2<=Arg_2+Arg_3 && Arg_2<=Arg_3 && 3<=Arg_1+Arg_3 && Arg_1<=1+Arg_3 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1
11:evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb5in(Arg_3+1-Arg_2,Arg_2-1,Arg_2,Arg_3):|:1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1
2:evalfbb5in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbbin(Arg_0,Arg_1,Arg_2,Arg_3):|:2<=Arg_1
3:evalfbb5in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfreturnin(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_1<=1
4:evalfbbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb2in(Arg_0,Arg_1,Arg_1-1,Arg_0+Arg_1-1):|:2<=Arg_1
1:evalfentryin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb5in(Arg_1,Arg_1,Arg_2,Arg_3)
12:evalfreturnin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfstop(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_1<=1
0:evalfstart(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfentryin(Arg_0,Arg_1,Arg_2,Arg_3)
MPRF for transition 10:evalfbb1in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb2in(Arg_0,Arg_1,Arg_2,Arg_3-1):|:1<=Arg_3 && 2<=Arg_2+Arg_3 && Arg_2<=Arg_3 && 3<=Arg_1+Arg_3 && Arg_1<=1+Arg_3 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 of depth 1:
new bound:
3*Arg_1 {O(n)}
MPRF:
evalfbb1in [2*Arg_3-Arg_2 ]
evalfbb3in [2*Arg_3+1-Arg_2 ]
evalfbb4in [2*Arg_3+1-Arg_2 ]
evalfbb5in [2*Arg_0+Arg_1 ]
evalfbbin [2*Arg_0+Arg_1 ]
evalfbb2in [2*Arg_3+1-Arg_2 ]
MPRF for transition 5:evalfbb2in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3):|:1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 && Arg_3+1<=Arg_2 of depth 1:
new bound:
Arg_1+1 {O(n)}
MPRF:
evalfbb1in [Arg_2 ]
evalfbb3in [Arg_2 ]
evalfbb4in [Arg_2-2 ]
evalfbb5in [Arg_1-1 ]
evalfbbin [Arg_1-1 ]
evalfbb2in [Arg_2 ]
MPRF for transition 6:evalfbb2in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3):|:1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 && Arg_2<=Arg_3 of depth 1:
new bound:
2*Arg_1+1 {O(n)}
MPRF:
evalfbb1in [Arg_3-1 ]
evalfbb3in [Arg_3-1 ]
evalfbb4in [Arg_1+Arg_3-Arg_2-2 ]
evalfbb5in [Arg_0+Arg_1-1 ]
evalfbbin [Arg_0+Arg_1-1 ]
evalfbb2in [Arg_3 ]
MPRF for transition 7:evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb1in(Arg_0,Arg_1,Arg_2,Arg_3):|:1<=Arg_3 && 2<=Arg_2+Arg_3 && Arg_2<=Arg_3 && 3<=Arg_1+Arg_3 && Arg_1<=1+Arg_3 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 && E+1<=0 of depth 1:
new bound:
2*Arg_1 {O(n)}
MPRF:
evalfbb1in [Arg_3-1 ]
evalfbb3in [Arg_3 ]
evalfbb4in [Arg_3 ]
evalfbb5in [Arg_0+Arg_1 ]
evalfbbin [Arg_0+Arg_1 ]
evalfbb2in [Arg_3 ]
MPRF for transition 8:evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb1in(Arg_0,Arg_1,Arg_2,Arg_3):|:1<=Arg_3 && 2<=Arg_2+Arg_3 && Arg_2<=Arg_3 && 3<=Arg_1+Arg_3 && Arg_1<=1+Arg_3 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 && 1<=E of depth 1:
new bound:
2*Arg_1 {O(n)}
MPRF:
evalfbb1in [Arg_3-1 ]
evalfbb3in [Arg_3 ]
evalfbb4in [Arg_3 ]
evalfbb5in [Arg_0+Arg_1 ]
evalfbbin [Arg_0+Arg_1 ]
evalfbb2in [Arg_3 ]
MPRF for transition 9:evalfbb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3):|:1<=Arg_3 && 2<=Arg_2+Arg_3 && Arg_2<=Arg_3 && 3<=Arg_1+Arg_3 && Arg_1<=1+Arg_3 && 1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 of depth 1:
new bound:
2*Arg_1+1 {O(n)}
MPRF:
evalfbb1in [Arg_3 ]
evalfbb3in [Arg_3 ]
evalfbb4in [Arg_3-1 ]
evalfbb5in [Arg_0+Arg_1-1 ]
evalfbbin [Arg_0+Arg_1-1 ]
evalfbb2in [Arg_3 ]
MPRF for transition 11:evalfbb4in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb5in(Arg_3+1-Arg_2,Arg_2-1,Arg_2,Arg_3):|:1+Arg_2<=Arg_1 && 1<=Arg_2 && 3<=Arg_1+Arg_2 && Arg_1<=1+Arg_2 && 2<=Arg_1 of depth 1:
new bound:
Arg_1+1 {O(n)}
MPRF:
evalfbb1in [Arg_2+1 ]
evalfbb3in [Arg_1 ]
evalfbb4in [Arg_1 ]
evalfbb5in [Arg_1+1 ]
evalfbbin [Arg_1 ]
evalfbb2in [Arg_1 ]
MPRF for transition 2:evalfbb5in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbbin(Arg_0,Arg_1,Arg_2,Arg_3):|:2<=Arg_1 of depth 1:
new bound:
Arg_1 {O(n)}
MPRF:
evalfbb1in [Arg_1-1 ]
evalfbb3in [Arg_2 ]
evalfbb4in [Arg_2 ]
evalfbb5in [Arg_1 ]
evalfbbin [Arg_1-1 ]
evalfbb2in [Arg_2 ]
MPRF for transition 4:evalfbbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalfbb2in(Arg_0,Arg_1,Arg_1-1,Arg_0+Arg_1-1):|:2<=Arg_1 of depth 1:
new bound:
Arg_1+2 {O(n)}
MPRF:
evalfbb1in [Arg_2+1 ]
evalfbb3in [Arg_1 ]
evalfbb4in [Arg_2+1 ]
evalfbb5in [Arg_1+2 ]
evalfbbin [Arg_1+2 ]
evalfbb2in [Arg_1 ]
All Bounds
Timebounds
Overall timebound:15*Arg_1+10 {O(n)}
10: evalfbb1in->evalfbb2in: 3*Arg_1 {O(n)}
5: evalfbb2in->evalfbb4in: Arg_1+1 {O(n)}
6: evalfbb2in->evalfbb3in: 2*Arg_1+1 {O(n)}
7: evalfbb3in->evalfbb1in: 2*Arg_1 {O(n)}
8: evalfbb3in->evalfbb1in: 2*Arg_1 {O(n)}
9: evalfbb3in->evalfbb4in: 2*Arg_1+1 {O(n)}
11: evalfbb4in->evalfbb5in: Arg_1+1 {O(n)}
2: evalfbb5in->evalfbbin: Arg_1 {O(n)}
3: evalfbb5in->evalfreturnin: 1 {O(1)}
4: evalfbbin->evalfbb2in: Arg_1+2 {O(n)}
1: evalfentryin->evalfbb5in: 1 {O(1)}
12: evalfreturnin->evalfstop: 1 {O(1)}
0: evalfstart->evalfentryin: 1 {O(1)}
Costbounds
Overall costbound: 15*Arg_1+10 {O(n)}
10: evalfbb1in->evalfbb2in: 3*Arg_1 {O(n)}
5: evalfbb2in->evalfbb4in: Arg_1+1 {O(n)}
6: evalfbb2in->evalfbb3in: 2*Arg_1+1 {O(n)}
7: evalfbb3in->evalfbb1in: 2*Arg_1 {O(n)}
8: evalfbb3in->evalfbb1in: 2*Arg_1 {O(n)}
9: evalfbb3in->evalfbb4in: 2*Arg_1+1 {O(n)}
11: evalfbb4in->evalfbb5in: Arg_1+1 {O(n)}
2: evalfbb5in->evalfbbin: Arg_1 {O(n)}
3: evalfbb5in->evalfreturnin: 1 {O(1)}
4: evalfbbin->evalfbb2in: Arg_1+2 {O(n)}
1: evalfentryin->evalfbb5in: 1 {O(1)}
12: evalfreturnin->evalfstop: 1 {O(1)}
0: evalfstart->evalfentryin: 1 {O(1)}
Sizebounds
10: evalfbb1in->evalfbb2in, Arg_0: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
10: evalfbb1in->evalfbb2in, Arg_1: Arg_1 {O(n)}
10: evalfbb1in->evalfbb2in, Arg_2: Arg_1 {O(n)}
10: evalfbb1in->evalfbb2in, Arg_3: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
5: evalfbb2in->evalfbb4in, Arg_0: 8*Arg_1*Arg_1+20*Arg_1 {O(n^2)}
5: evalfbb2in->evalfbb4in, Arg_1: Arg_1 {O(n)}
5: evalfbb2in->evalfbb4in, Arg_2: 2*Arg_1 {O(n)}
5: evalfbb2in->evalfbb4in, Arg_3: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
6: evalfbb2in->evalfbb3in, Arg_0: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
6: evalfbb2in->evalfbb3in, Arg_1: Arg_1 {O(n)}
6: evalfbb2in->evalfbb3in, Arg_2: Arg_1 {O(n)}
6: evalfbb2in->evalfbb3in, Arg_3: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
7: evalfbb3in->evalfbb1in, Arg_0: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
7: evalfbb3in->evalfbb1in, Arg_1: Arg_1 {O(n)}
7: evalfbb3in->evalfbb1in, Arg_2: Arg_1 {O(n)}
7: evalfbb3in->evalfbb1in, Arg_3: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
8: evalfbb3in->evalfbb1in, Arg_0: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
8: evalfbb3in->evalfbb1in, Arg_1: Arg_1 {O(n)}
8: evalfbb3in->evalfbb1in, Arg_2: Arg_1 {O(n)}
8: evalfbb3in->evalfbb1in, Arg_3: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
9: evalfbb3in->evalfbb4in, Arg_0: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
9: evalfbb3in->evalfbb4in, Arg_1: Arg_1 {O(n)}
9: evalfbb3in->evalfbb4in, Arg_2: Arg_1 {O(n)}
9: evalfbb3in->evalfbb4in, Arg_3: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
11: evalfbb4in->evalfbb5in, Arg_0: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
11: evalfbb4in->evalfbb5in, Arg_1: Arg_1 {O(n)}
11: evalfbb4in->evalfbb5in, Arg_2: 3*Arg_1 {O(n)}
11: evalfbb4in->evalfbb5in, Arg_3: 8*Arg_1*Arg_1+20*Arg_1 {O(n^2)}
2: evalfbb5in->evalfbbin, Arg_0: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
2: evalfbb5in->evalfbbin, Arg_1: Arg_1 {O(n)}
2: evalfbb5in->evalfbbin, Arg_2: 3*Arg_1+Arg_2 {O(n)}
2: evalfbb5in->evalfbbin, Arg_3: 8*Arg_1*Arg_1+20*Arg_1+Arg_3 {O(n^2)}
3: evalfbb5in->evalfreturnin, Arg_0: 4*Arg_1*Arg_1+11*Arg_1 {O(n^2)}
3: evalfbb5in->evalfreturnin, Arg_1: 2*Arg_1 {O(n)}
3: evalfbb5in->evalfreturnin, Arg_2: 3*Arg_1+Arg_2 {O(n)}
3: evalfbb5in->evalfreturnin, Arg_3: 8*Arg_1*Arg_1+20*Arg_1+Arg_3 {O(n^2)}
4: evalfbbin->evalfbb2in, Arg_0: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
4: evalfbbin->evalfbb2in, Arg_1: Arg_1 {O(n)}
4: evalfbbin->evalfbb2in, Arg_2: Arg_1 {O(n)}
4: evalfbbin->evalfbb2in, Arg_3: 4*Arg_1*Arg_1+10*Arg_1 {O(n^2)}
1: evalfentryin->evalfbb5in, Arg_0: Arg_1 {O(n)}
1: evalfentryin->evalfbb5in, Arg_1: Arg_1 {O(n)}
1: evalfentryin->evalfbb5in, Arg_2: Arg_2 {O(n)}
1: evalfentryin->evalfbb5in, Arg_3: Arg_3 {O(n)}
12: evalfreturnin->evalfstop, Arg_0: 4*Arg_1*Arg_1+11*Arg_1 {O(n^2)}
12: evalfreturnin->evalfstop, Arg_1: 2*Arg_1 {O(n)}
12: evalfreturnin->evalfstop, Arg_2: 3*Arg_1+Arg_2 {O(n)}
12: evalfreturnin->evalfstop, Arg_3: 8*Arg_1*Arg_1+20*Arg_1+Arg_3 {O(n^2)}
0: evalfstart->evalfentryin, Arg_0: Arg_0 {O(n)}
0: evalfstart->evalfentryin, Arg_1: Arg_1 {O(n)}
0: evalfstart->evalfentryin, Arg_2: Arg_2 {O(n)}
0: evalfstart->evalfentryin, Arg_3: Arg_3 {O(n)}