Initial Problem
Start: evalSimpleMultiplestart
Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3
Temp_Vars:
Locations: evalSimpleMultiplebb1in, evalSimpleMultiplebb2in, evalSimpleMultiplebb3in, evalSimpleMultiplebbin, evalSimpleMultipleentryin, evalSimpleMultiplereturnin, evalSimpleMultiplestart, evalSimpleMultiplestop
Transitions:
6:evalSimpleMultiplebb1in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb3in(Arg_0+1,Arg_1,Arg_2,Arg_3)
7:evalSimpleMultiplebb2in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb3in(Arg_0,Arg_1+1,Arg_2,Arg_3)
2:evalSimpleMultiplebb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebbin(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_1+1<=Arg_2
3:evalSimpleMultiplebb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplereturnin(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_2<=Arg_1
4:evalSimpleMultiplebbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb1in(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_0+1<=Arg_3
5:evalSimpleMultiplebbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb2in(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_3<=Arg_0
1:evalSimpleMultipleentryin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb3in(0,0,Arg_2,Arg_3)
8:evalSimpleMultiplereturnin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplestop(Arg_0,Arg_1,Arg_2,Arg_3)
0:evalSimpleMultiplestart(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultipleentryin(Arg_0,Arg_1,Arg_2,Arg_3)
Show Graph
G
evalSimpleMultiplebb1in
evalSimpleMultiplebb1in
evalSimpleMultiplebb3in
evalSimpleMultiplebb3in
evalSimpleMultiplebb1in->evalSimpleMultiplebb3in
t₆
η (Arg_0) = Arg_0+1
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in->evalSimpleMultiplebb3in
t₇
η (Arg_1) = Arg_1+1
evalSimpleMultiplebbin
evalSimpleMultiplebbin
evalSimpleMultiplebb3in->evalSimpleMultiplebbin
t₂
τ = Arg_1+1<=Arg_2
evalSimpleMultiplereturnin
evalSimpleMultiplereturnin
evalSimpleMultiplebb3in->evalSimpleMultiplereturnin
t₃
τ = Arg_2<=Arg_1
evalSimpleMultiplebbin->evalSimpleMultiplebb1in
t₄
τ = Arg_0+1<=Arg_3
evalSimpleMultiplebbin->evalSimpleMultiplebb2in
t₅
τ = Arg_3<=Arg_0
evalSimpleMultipleentryin
evalSimpleMultipleentryin
evalSimpleMultipleentryin->evalSimpleMultiplebb3in
t₁
η (Arg_0) = 0
η (Arg_1) = 0
evalSimpleMultiplestop
evalSimpleMultiplestop
evalSimpleMultiplereturnin->evalSimpleMultiplestop
t₈
evalSimpleMultiplestart
evalSimpleMultiplestart
evalSimpleMultiplestart->evalSimpleMultipleentryin
t₀
Preprocessing
Found invariant Arg_3<=Arg_0 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 for location evalSimpleMultiplebb2in
Found invariant 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 for location evalSimpleMultiplebb3in
Found invariant Arg_2<=Arg_1 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 for location evalSimpleMultiplereturnin
Found invariant 1<=Arg_3 && 2<=Arg_2+Arg_3 && 1<=Arg_1+Arg_3 && 1<=Arg_0+Arg_3 && 1+Arg_0<=Arg_3 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 for location evalSimpleMultiplebb1in
Found invariant 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 for location evalSimpleMultiplebbin
Found invariant Arg_2<=Arg_1 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 for location evalSimpleMultiplestop
Problem after Preprocessing
Start: evalSimpleMultiplestart
Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3
Temp_Vars:
Locations: evalSimpleMultiplebb1in, evalSimpleMultiplebb2in, evalSimpleMultiplebb3in, evalSimpleMultiplebbin, evalSimpleMultipleentryin, evalSimpleMultiplereturnin, evalSimpleMultiplestart, evalSimpleMultiplestop
Transitions:
6:evalSimpleMultiplebb1in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb3in(Arg_0+1,Arg_1,Arg_2,Arg_3):|:1<=Arg_3 && 2<=Arg_2+Arg_3 && 1<=Arg_1+Arg_3 && 1<=Arg_0+Arg_3 && 1+Arg_0<=Arg_3 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
7:evalSimpleMultiplebb2in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb3in(Arg_0,Arg_1+1,Arg_2,Arg_3):|:Arg_3<=Arg_0 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
2:evalSimpleMultiplebb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebbin(Arg_0,Arg_1,Arg_2,Arg_3):|:0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_1+1<=Arg_2
3:evalSimpleMultiplebb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplereturnin(Arg_0,Arg_1,Arg_2,Arg_3):|:0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_2<=Arg_1
4:evalSimpleMultiplebbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb1in(Arg_0,Arg_1,Arg_2,Arg_3):|:1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_0+1<=Arg_3
5:evalSimpleMultiplebbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb2in(Arg_0,Arg_1,Arg_2,Arg_3):|:1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_3<=Arg_0
1:evalSimpleMultipleentryin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb3in(0,0,Arg_2,Arg_3)
8:evalSimpleMultiplereturnin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplestop(Arg_0,Arg_1,Arg_2,Arg_3):|:Arg_2<=Arg_1 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
0:evalSimpleMultiplestart(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultipleentryin(Arg_0,Arg_1,Arg_2,Arg_3)
Show Graph
G
evalSimpleMultiplebb1in
evalSimpleMultiplebb1in
evalSimpleMultiplebb3in
evalSimpleMultiplebb3in
evalSimpleMultiplebb1in->evalSimpleMultiplebb3in
t₆
η (Arg_0) = Arg_0+1
τ = 1<=Arg_3 && 2<=Arg_2+Arg_3 && 1<=Arg_1+Arg_3 && 1<=Arg_0+Arg_3 && 1+Arg_0<=Arg_3 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in->evalSimpleMultiplebb3in
t₇
η (Arg_1) = Arg_1+1
τ = Arg_3<=Arg_0 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplebbin
evalSimpleMultiplebbin
evalSimpleMultiplebb3in->evalSimpleMultiplebbin
t₂
τ = 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_1+1<=Arg_2
evalSimpleMultiplereturnin
evalSimpleMultiplereturnin
evalSimpleMultiplebb3in->evalSimpleMultiplereturnin
t₃
τ = 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_2<=Arg_1
evalSimpleMultiplebbin->evalSimpleMultiplebb1in
t₄
τ = 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_0+1<=Arg_3
evalSimpleMultiplebbin->evalSimpleMultiplebb2in
t₅
τ = 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_3<=Arg_0
evalSimpleMultipleentryin
evalSimpleMultipleentryin
evalSimpleMultipleentryin->evalSimpleMultiplebb3in
t₁
η (Arg_0) = 0
η (Arg_1) = 0
evalSimpleMultiplestop
evalSimpleMultiplestop
evalSimpleMultiplereturnin->evalSimpleMultiplestop
t₈
τ = Arg_2<=Arg_1 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplestart
evalSimpleMultiplestart
evalSimpleMultiplestart->evalSimpleMultipleentryin
t₀
MPRF for transition 6:evalSimpleMultiplebb1in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb3in(Arg_0+1,Arg_1,Arg_2,Arg_3):|:1<=Arg_3 && 2<=Arg_2+Arg_3 && 1<=Arg_1+Arg_3 && 1<=Arg_0+Arg_3 && 1+Arg_0<=Arg_3 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 of depth 1:
new bound:
Arg_3 {O(n)}
MPRF:
evalSimpleMultiplebb3in [Arg_3-Arg_0 ]
evalSimpleMultiplebb1in [Arg_3-Arg_0 ]
evalSimpleMultiplebbin [Arg_3-Arg_0 ]
evalSimpleMultiplebb2in [Arg_3-Arg_0 ]
Show Graph
G
evalSimpleMultiplebb1in
evalSimpleMultiplebb1in
evalSimpleMultiplebb3in
evalSimpleMultiplebb3in
evalSimpleMultiplebb1in->evalSimpleMultiplebb3in
t₆
η (Arg_0) = Arg_0+1
τ = 1<=Arg_3 && 2<=Arg_2+Arg_3 && 1<=Arg_1+Arg_3 && 1<=Arg_0+Arg_3 && 1+Arg_0<=Arg_3 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in->evalSimpleMultiplebb3in
t₇
η (Arg_1) = Arg_1+1
τ = Arg_3<=Arg_0 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplebbin
evalSimpleMultiplebbin
evalSimpleMultiplebb3in->evalSimpleMultiplebbin
t₂
τ = 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_1+1<=Arg_2
evalSimpleMultiplereturnin
evalSimpleMultiplereturnin
evalSimpleMultiplebb3in->evalSimpleMultiplereturnin
t₃
τ = 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_2<=Arg_1
evalSimpleMultiplebbin->evalSimpleMultiplebb1in
t₄
τ = 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_0+1<=Arg_3
evalSimpleMultiplebbin->evalSimpleMultiplebb2in
t₅
τ = 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_3<=Arg_0
evalSimpleMultipleentryin
evalSimpleMultipleentryin
evalSimpleMultipleentryin->evalSimpleMultiplebb3in
t₁
η (Arg_0) = 0
η (Arg_1) = 0
evalSimpleMultiplestop
evalSimpleMultiplestop
evalSimpleMultiplereturnin->evalSimpleMultiplestop
t₈
τ = Arg_2<=Arg_1 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplestart
evalSimpleMultiplestart
evalSimpleMultiplestart->evalSimpleMultipleentryin
t₀
MPRF for transition 7:evalSimpleMultiplebb2in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb3in(Arg_0,Arg_1+1,Arg_2,Arg_3):|:Arg_3<=Arg_0 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 of depth 1:
new bound:
Arg_2 {O(n)}
MPRF:
evalSimpleMultiplebb3in [Arg_2-Arg_1 ]
evalSimpleMultiplebb1in [Arg_2-Arg_1 ]
evalSimpleMultiplebbin [Arg_2-Arg_1 ]
evalSimpleMultiplebb2in [Arg_2-Arg_1 ]
Show Graph
G
evalSimpleMultiplebb1in
evalSimpleMultiplebb1in
evalSimpleMultiplebb3in
evalSimpleMultiplebb3in
evalSimpleMultiplebb1in->evalSimpleMultiplebb3in
t₆
η (Arg_0) = Arg_0+1
τ = 1<=Arg_3 && 2<=Arg_2+Arg_3 && 1<=Arg_1+Arg_3 && 1<=Arg_0+Arg_3 && 1+Arg_0<=Arg_3 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in->evalSimpleMultiplebb3in
t₇
η (Arg_1) = Arg_1+1
τ = Arg_3<=Arg_0 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplebbin
evalSimpleMultiplebbin
evalSimpleMultiplebb3in->evalSimpleMultiplebbin
t₂
τ = 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_1+1<=Arg_2
evalSimpleMultiplereturnin
evalSimpleMultiplereturnin
evalSimpleMultiplebb3in->evalSimpleMultiplereturnin
t₃
τ = 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_2<=Arg_1
evalSimpleMultiplebbin->evalSimpleMultiplebb1in
t₄
τ = 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_0+1<=Arg_3
evalSimpleMultiplebbin->evalSimpleMultiplebb2in
t₅
τ = 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_3<=Arg_0
evalSimpleMultipleentryin
evalSimpleMultipleentryin
evalSimpleMultipleentryin->evalSimpleMultiplebb3in
t₁
η (Arg_0) = 0
η (Arg_1) = 0
evalSimpleMultiplestop
evalSimpleMultiplestop
evalSimpleMultiplereturnin->evalSimpleMultiplestop
t₈
τ = Arg_2<=Arg_1 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplestart
evalSimpleMultiplestart
evalSimpleMultiplestart->evalSimpleMultipleentryin
t₀
MPRF for transition 4:evalSimpleMultiplebbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb1in(Arg_0,Arg_1,Arg_2,Arg_3):|:1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_0+1<=Arg_3 of depth 1:
new bound:
Arg_3 {O(n)}
MPRF:
evalSimpleMultiplebb3in [Arg_3-Arg_0 ]
evalSimpleMultiplebb1in [Arg_3-Arg_0-1 ]
evalSimpleMultiplebbin [Arg_3-Arg_0 ]
evalSimpleMultiplebb2in [Arg_3-Arg_0 ]
Show Graph
G
evalSimpleMultiplebb1in
evalSimpleMultiplebb1in
evalSimpleMultiplebb3in
evalSimpleMultiplebb3in
evalSimpleMultiplebb1in->evalSimpleMultiplebb3in
t₆
η (Arg_0) = Arg_0+1
τ = 1<=Arg_3 && 2<=Arg_2+Arg_3 && 1<=Arg_1+Arg_3 && 1<=Arg_0+Arg_3 && 1+Arg_0<=Arg_3 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in->evalSimpleMultiplebb3in
t₇
η (Arg_1) = Arg_1+1
τ = Arg_3<=Arg_0 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplebbin
evalSimpleMultiplebbin
evalSimpleMultiplebb3in->evalSimpleMultiplebbin
t₂
τ = 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_1+1<=Arg_2
evalSimpleMultiplereturnin
evalSimpleMultiplereturnin
evalSimpleMultiplebb3in->evalSimpleMultiplereturnin
t₃
τ = 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_2<=Arg_1
evalSimpleMultiplebbin->evalSimpleMultiplebb1in
t₄
τ = 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_0+1<=Arg_3
evalSimpleMultiplebbin->evalSimpleMultiplebb2in
t₅
τ = 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_3<=Arg_0
evalSimpleMultipleentryin
evalSimpleMultipleentryin
evalSimpleMultipleentryin->evalSimpleMultiplebb3in
t₁
η (Arg_0) = 0
η (Arg_1) = 0
evalSimpleMultiplestop
evalSimpleMultiplestop
evalSimpleMultiplereturnin->evalSimpleMultiplestop
t₈
τ = Arg_2<=Arg_1 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplestart
evalSimpleMultiplestart
evalSimpleMultiplestart->evalSimpleMultipleentryin
t₀
MPRF for transition 5:evalSimpleMultiplebbin(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebb2in(Arg_0,Arg_1,Arg_2,Arg_3):|:1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_3<=Arg_0 of depth 1:
new bound:
Arg_2 {O(n)}
MPRF:
evalSimpleMultiplebb3in [Arg_2-Arg_1 ]
evalSimpleMultiplebb1in [Arg_2-Arg_1 ]
evalSimpleMultiplebbin [Arg_2-Arg_1 ]
evalSimpleMultiplebb2in [Arg_2-Arg_1-1 ]
Show Graph
G
evalSimpleMultiplebb1in
evalSimpleMultiplebb1in
evalSimpleMultiplebb3in
evalSimpleMultiplebb3in
evalSimpleMultiplebb1in->evalSimpleMultiplebb3in
t₆
η (Arg_0) = Arg_0+1
τ = 1<=Arg_3 && 2<=Arg_2+Arg_3 && 1<=Arg_1+Arg_3 && 1<=Arg_0+Arg_3 && 1+Arg_0<=Arg_3 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in
evalSimpleMultiplebb2in->evalSimpleMultiplebb3in
t₇
η (Arg_1) = Arg_1+1
τ = Arg_3<=Arg_0 && 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplebbin
evalSimpleMultiplebbin
evalSimpleMultiplebb3in->evalSimpleMultiplebbin
t₂
τ = 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_1+1<=Arg_2
evalSimpleMultiplereturnin
evalSimpleMultiplereturnin
evalSimpleMultiplebb3in->evalSimpleMultiplereturnin
t₃
τ = 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_2<=Arg_1
evalSimpleMultiplebbin->evalSimpleMultiplebb1in
t₄
τ = 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_0+1<=Arg_3
evalSimpleMultiplebbin->evalSimpleMultiplebb2in
t₅
τ = 1<=Arg_2 && 1<=Arg_1+Arg_2 && 1+Arg_1<=Arg_2 && 1<=Arg_0+Arg_2 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_3<=Arg_0
evalSimpleMultipleentryin
evalSimpleMultipleentryin
evalSimpleMultipleentryin->evalSimpleMultiplebb3in
t₁
η (Arg_0) = 0
η (Arg_1) = 0
evalSimpleMultiplestop
evalSimpleMultiplestop
evalSimpleMultiplereturnin->evalSimpleMultiplestop
t₈
τ = Arg_2<=Arg_1 && 0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0
evalSimpleMultiplestart
evalSimpleMultiplestart
evalSimpleMultiplestart->evalSimpleMultipleentryin
t₀
knowledge_propagation leads to new time bound Arg_2+Arg_3+1 {O(n)} for transition 2:evalSimpleMultiplebb3in(Arg_0,Arg_1,Arg_2,Arg_3) -> evalSimpleMultiplebbin(Arg_0,Arg_1,Arg_2,Arg_3):|:0<=Arg_1 && 0<=Arg_0+Arg_1 && 0<=Arg_0 && Arg_1+1<=Arg_2
All Bounds
Timebounds
Overall timebound:3*Arg_2+3*Arg_3+5 {O(n)}
6: evalSimpleMultiplebb1in->evalSimpleMultiplebb3in: Arg_3 {O(n)}
7: evalSimpleMultiplebb2in->evalSimpleMultiplebb3in: Arg_2 {O(n)}
2: evalSimpleMultiplebb3in->evalSimpleMultiplebbin: Arg_2+Arg_3+1 {O(n)}
3: evalSimpleMultiplebb3in->evalSimpleMultiplereturnin: 1 {O(1)}
4: evalSimpleMultiplebbin->evalSimpleMultiplebb1in: Arg_3 {O(n)}
5: evalSimpleMultiplebbin->evalSimpleMultiplebb2in: Arg_2 {O(n)}
1: evalSimpleMultipleentryin->evalSimpleMultiplebb3in: 1 {O(1)}
8: evalSimpleMultiplereturnin->evalSimpleMultiplestop: 1 {O(1)}
0: evalSimpleMultiplestart->evalSimpleMultipleentryin: 1 {O(1)}
Costbounds
Overall costbound: 3*Arg_2+3*Arg_3+5 {O(n)}
6: evalSimpleMultiplebb1in->evalSimpleMultiplebb3in: Arg_3 {O(n)}
7: evalSimpleMultiplebb2in->evalSimpleMultiplebb3in: Arg_2 {O(n)}
2: evalSimpleMultiplebb3in->evalSimpleMultiplebbin: Arg_2+Arg_3+1 {O(n)}
3: evalSimpleMultiplebb3in->evalSimpleMultiplereturnin: 1 {O(1)}
4: evalSimpleMultiplebbin->evalSimpleMultiplebb1in: Arg_3 {O(n)}
5: evalSimpleMultiplebbin->evalSimpleMultiplebb2in: Arg_2 {O(n)}
1: evalSimpleMultipleentryin->evalSimpleMultiplebb3in: 1 {O(1)}
8: evalSimpleMultiplereturnin->evalSimpleMultiplestop: 1 {O(1)}
0: evalSimpleMultiplestart->evalSimpleMultipleentryin: 1 {O(1)}
Sizebounds
6: evalSimpleMultiplebb1in->evalSimpleMultiplebb3in, Arg_0: Arg_3 {O(n)}
6: evalSimpleMultiplebb1in->evalSimpleMultiplebb3in, Arg_1: Arg_2 {O(n)}
6: evalSimpleMultiplebb1in->evalSimpleMultiplebb3in, Arg_2: Arg_2 {O(n)}
6: evalSimpleMultiplebb1in->evalSimpleMultiplebb3in, Arg_3: Arg_3 {O(n)}
7: evalSimpleMultiplebb2in->evalSimpleMultiplebb3in, Arg_0: Arg_3 {O(n)}
7: evalSimpleMultiplebb2in->evalSimpleMultiplebb3in, Arg_1: Arg_2 {O(n)}
7: evalSimpleMultiplebb2in->evalSimpleMultiplebb3in, Arg_2: Arg_2 {O(n)}
7: evalSimpleMultiplebb2in->evalSimpleMultiplebb3in, Arg_3: Arg_3 {O(n)}
2: evalSimpleMultiplebb3in->evalSimpleMultiplebbin, Arg_0: Arg_3 {O(n)}
2: evalSimpleMultiplebb3in->evalSimpleMultiplebbin, Arg_1: Arg_2 {O(n)}
2: evalSimpleMultiplebb3in->evalSimpleMultiplebbin, Arg_2: Arg_2 {O(n)}
2: evalSimpleMultiplebb3in->evalSimpleMultiplebbin, Arg_3: Arg_3 {O(n)}
3: evalSimpleMultiplebb3in->evalSimpleMultiplereturnin, Arg_0: Arg_3 {O(n)}
3: evalSimpleMultiplebb3in->evalSimpleMultiplereturnin, Arg_1: Arg_2 {O(n)}
3: evalSimpleMultiplebb3in->evalSimpleMultiplereturnin, Arg_2: 2*Arg_2 {O(n)}
3: evalSimpleMultiplebb3in->evalSimpleMultiplereturnin, Arg_3: 2*Arg_3 {O(n)}
4: evalSimpleMultiplebbin->evalSimpleMultiplebb1in, Arg_0: Arg_3 {O(n)}
4: evalSimpleMultiplebbin->evalSimpleMultiplebb1in, Arg_1: Arg_2 {O(n)}
4: evalSimpleMultiplebbin->evalSimpleMultiplebb1in, Arg_2: Arg_2 {O(n)}
4: evalSimpleMultiplebbin->evalSimpleMultiplebb1in, Arg_3: Arg_3 {O(n)}
5: evalSimpleMultiplebbin->evalSimpleMultiplebb2in, Arg_0: Arg_3 {O(n)}
5: evalSimpleMultiplebbin->evalSimpleMultiplebb2in, Arg_1: Arg_2 {O(n)}
5: evalSimpleMultiplebbin->evalSimpleMultiplebb2in, Arg_2: Arg_2 {O(n)}
5: evalSimpleMultiplebbin->evalSimpleMultiplebb2in, Arg_3: Arg_3 {O(n)}
1: evalSimpleMultipleentryin->evalSimpleMultiplebb3in, Arg_0: 0 {O(1)}
1: evalSimpleMultipleentryin->evalSimpleMultiplebb3in, Arg_1: 0 {O(1)}
1: evalSimpleMultipleentryin->evalSimpleMultiplebb3in, Arg_2: Arg_2 {O(n)}
1: evalSimpleMultipleentryin->evalSimpleMultiplebb3in, Arg_3: Arg_3 {O(n)}
8: evalSimpleMultiplereturnin->evalSimpleMultiplestop, Arg_0: Arg_3 {O(n)}
8: evalSimpleMultiplereturnin->evalSimpleMultiplestop, Arg_1: Arg_2 {O(n)}
8: evalSimpleMultiplereturnin->evalSimpleMultiplestop, Arg_2: 2*Arg_2 {O(n)}
8: evalSimpleMultiplereturnin->evalSimpleMultiplestop, Arg_3: 2*Arg_3 {O(n)}
0: evalSimpleMultiplestart->evalSimpleMultipleentryin, Arg_0: Arg_0 {O(n)}
0: evalSimpleMultiplestart->evalSimpleMultipleentryin, Arg_1: Arg_1 {O(n)}
0: evalSimpleMultiplestart->evalSimpleMultipleentryin, Arg_2: Arg_2 {O(n)}
0: evalSimpleMultiplestart->evalSimpleMultipleentryin, Arg_3: Arg_3 {O(n)}