Start: evalDis1start
Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3
Temp_Vars:
Locations: evalDis1bb1in, evalDis1bb2in, evalDis1bb3in, evalDis1bbin, evalDis1entryin, evalDis1returnin, evalDis1start, evalDis1stop
Transitions:
6:evalDis1bb1in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bb3in(Arg_0,Arg_1,Arg_2,Arg_3+1)
7:evalDis1bb2in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bb3in(Arg_0,Arg_1+1,Arg_2,Arg_3)
2:evalDis1bb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bbin(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_1+1<=Arg_0
3:evalDis1bb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1returnin(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_0<=Arg_1
4:evalDis1bbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bb1in(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_3+1<=Arg_2
5:evalDis1bbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bb2in(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_2<=Arg_3
1:evalDis1entryin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bb3in(Arg_1,Arg_0,Arg_3,Arg_2)
8:evalDis1returnin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1stop(Arg_0,Arg_1,Arg_2,Arg_3)
0:evalDis1start(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1entryin(Arg_0,Arg_1,Arg_2,Arg_3)
Found invariant Arg_0<=Arg_1 for location evalDis1stop
Found invariant 1+Arg_1<=Arg_0 for location evalDis1bbin
Found invariant Arg_0<=Arg_1 for location evalDis1returnin
Found invariant 1+Arg_3<=Arg_2 && 1+Arg_1<=Arg_0 for location evalDis1bb1in
Found invariant Arg_2<=Arg_3 && 1+Arg_1<=Arg_0 for location evalDis1bb2in
Start: evalDis1start
Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3
Temp_Vars:
Locations: evalDis1bb1in, evalDis1bb2in, evalDis1bb3in, evalDis1bbin, evalDis1entryin, evalDis1returnin, evalDis1start, evalDis1stop
Transitions:
6:evalDis1bb1in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bb3in(Arg_0,Arg_1,Arg_2,Arg_3+1):|:1+Arg_3<=Arg_2 && 1+Arg_1<=Arg_0
7:evalDis1bb2in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bb3in(Arg_0,Arg_1+1,Arg_2,Arg_3):|:Arg_2<=Arg_3 && 1+Arg_1<=Arg_0
2:evalDis1bb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bbin(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_1+1<=Arg_0
3:evalDis1bb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1returnin(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_0<=Arg_1
4:evalDis1bbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bb1in(Arg_0,Arg_1,Arg_2,Arg_3):|:1+Arg_1<=Arg_0 && Arg_3+1<=Arg_2
5:evalDis1bbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bb2in(Arg_0,Arg_1,Arg_2,Arg_3):|:1+Arg_1<=Arg_0 && Arg_2<=Arg_3
1:evalDis1entryin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bb3in(Arg_1,Arg_0,Arg_3,Arg_2)
8:evalDis1returnin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1stop(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_0<=Arg_1
0:evalDis1start(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1entryin(Arg_0,Arg_1,Arg_2,Arg_3)
new bound:
Arg_2+Arg_3 {O(n)}
MPRF:
evalDis1bb3in [Arg_2-Arg_3 ]
evalDis1bb1in [Arg_2-Arg_3 ]
evalDis1bbin [Arg_2-Arg_3 ]
evalDis1bb2in [Arg_2-Arg_3 ]
new bound:
Arg_0+Arg_1 {O(n)}
MPRF:
evalDis1bb3in [Arg_0-Arg_1 ]
evalDis1bb1in [Arg_0-Arg_1 ]
evalDis1bbin [Arg_0-Arg_1 ]
evalDis1bb2in [Arg_0-Arg_1 ]
new bound:
Arg_2+Arg_3 {O(n)}
MPRF:
evalDis1bb3in [Arg_2-Arg_3 ]
evalDis1bb1in [Arg_2-Arg_3-1 ]
evalDis1bbin [Arg_2-Arg_3 ]
evalDis1bb2in [Arg_2-Arg_3 ]
new bound:
Arg_0+Arg_1 {O(n)}
MPRF:
evalDis1bb3in [Arg_0-Arg_1 ]
evalDis1bb1in [Arg_0-Arg_1 ]
evalDis1bbin [Arg_0-Arg_1 ]
evalDis1bb2in [Arg_0-Arg_1-1 ]
knowledge_propagation leads to new time bound Arg_0+Arg_1+Arg_2+Arg_3+1 {O(n)} for transition 2:evalDis1bb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalDis1bbin(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_1+1<=Arg_0
Overall timebound:3*Arg_0+3*Arg_1+3*Arg_2+3*Arg_3+5 {O(n)}
6: evalDis1bb1in->evalDis1bb3in: Arg_2+Arg_3 {O(n)}
7: evalDis1bb2in->evalDis1bb3in: Arg_0+Arg_1 {O(n)}
2: evalDis1bb3in->evalDis1bbin: Arg_0+Arg_1+Arg_2+Arg_3+1 {O(n)}
3: evalDis1bb3in->evalDis1returnin: 1 {O(1)}
4: evalDis1bbin->evalDis1bb1in: Arg_2+Arg_3 {O(n)}
5: evalDis1bbin->evalDis1bb2in: Arg_0+Arg_1 {O(n)}
1: evalDis1entryin->evalDis1bb3in: 1 {O(1)}
8: evalDis1returnin->evalDis1stop: 1 {O(1)}
0: evalDis1start->evalDis1entryin: 1 {O(1)}
Overall costbound: 3*Arg_0+3*Arg_1+3*Arg_2+3*Arg_3+5 {O(n)}
6: evalDis1bb1in->evalDis1bb3in: Arg_2+Arg_3 {O(n)}
7: evalDis1bb2in->evalDis1bb3in: Arg_0+Arg_1 {O(n)}
2: evalDis1bb3in->evalDis1bbin: Arg_0+Arg_1+Arg_2+Arg_3+1 {O(n)}
3: evalDis1bb3in->evalDis1returnin: 1 {O(1)}
4: evalDis1bbin->evalDis1bb1in: Arg_2+Arg_3 {O(n)}
5: evalDis1bbin->evalDis1bb2in: Arg_0+Arg_1 {O(n)}
1: evalDis1entryin->evalDis1bb3in: 1 {O(1)}
8: evalDis1returnin->evalDis1stop: 1 {O(1)}
0: evalDis1start->evalDis1entryin: 1 {O(1)}
6: evalDis1bb1in->evalDis1bb3in, Arg_0: Arg_1 {O(n)}
6: evalDis1bb1in->evalDis1bb3in, Arg_1: 2*Arg_0+Arg_1 {O(n)}
6: evalDis1bb1in->evalDis1bb3in, Arg_2: Arg_3 {O(n)}
6: evalDis1bb1in->evalDis1bb3in, Arg_3: 2*Arg_2+Arg_3 {O(n)}
7: evalDis1bb2in->evalDis1bb3in, Arg_0: Arg_1 {O(n)}
7: evalDis1bb2in->evalDis1bb3in, Arg_1: 2*Arg_0+Arg_1 {O(n)}
7: evalDis1bb2in->evalDis1bb3in, Arg_2: Arg_3 {O(n)}
7: evalDis1bb2in->evalDis1bb3in, Arg_3: 2*Arg_2+Arg_3 {O(n)}
2: evalDis1bb3in->evalDis1bbin, Arg_0: Arg_1 {O(n)}
2: evalDis1bb3in->evalDis1bbin, Arg_1: 2*Arg_0+Arg_1 {O(n)}
2: evalDis1bb3in->evalDis1bbin, Arg_2: Arg_3 {O(n)}
2: evalDis1bb3in->evalDis1bbin, Arg_3: 2*Arg_2+Arg_3 {O(n)}
3: evalDis1bb3in->evalDis1returnin, Arg_0: 2*Arg_1 {O(n)}
3: evalDis1bb3in->evalDis1returnin, Arg_1: 3*Arg_0+Arg_1 {O(n)}
3: evalDis1bb3in->evalDis1returnin, Arg_2: 2*Arg_3 {O(n)}
3: evalDis1bb3in->evalDis1returnin, Arg_3: 3*Arg_2+Arg_3 {O(n)}
4: evalDis1bbin->evalDis1bb1in, Arg_0: Arg_1 {O(n)}
4: evalDis1bbin->evalDis1bb1in, Arg_1: 2*Arg_0+Arg_1 {O(n)}
4: evalDis1bbin->evalDis1bb1in, Arg_2: Arg_3 {O(n)}
4: evalDis1bbin->evalDis1bb1in, Arg_3: 2*Arg_2+Arg_3 {O(n)}
5: evalDis1bbin->evalDis1bb2in, Arg_0: Arg_1 {O(n)}
5: evalDis1bbin->evalDis1bb2in, Arg_1: 2*Arg_0+Arg_1 {O(n)}
5: evalDis1bbin->evalDis1bb2in, Arg_2: Arg_3 {O(n)}
5: evalDis1bbin->evalDis1bb2in, Arg_3: 2*Arg_2+Arg_3 {O(n)}
1: evalDis1entryin->evalDis1bb3in, Arg_0: Arg_1 {O(n)}
1: evalDis1entryin->evalDis1bb3in, Arg_1: Arg_0 {O(n)}
1: evalDis1entryin->evalDis1bb3in, Arg_2: Arg_3 {O(n)}
1: evalDis1entryin->evalDis1bb3in, Arg_3: Arg_2 {O(n)}
8: evalDis1returnin->evalDis1stop, Arg_0: 2*Arg_1 {O(n)}
8: evalDis1returnin->evalDis1stop, Arg_1: 3*Arg_0+Arg_1 {O(n)}
8: evalDis1returnin->evalDis1stop, Arg_2: 2*Arg_3 {O(n)}
8: evalDis1returnin->evalDis1stop, Arg_3: 3*Arg_2+Arg_3 {O(n)}
0: evalDis1start->evalDis1entryin, Arg_0: Arg_0 {O(n)}
0: evalDis1start->evalDis1entryin, Arg_1: Arg_1 {O(n)}
0: evalDis1start->evalDis1entryin, Arg_2: Arg_2 {O(n)}
0: evalDis1start->evalDis1entryin, Arg_3: Arg_3 {O(n)}