* Step 1: Sum WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
check(0()) -> zero()
check(s(0())) -> odd()
check(s(s(0()))) -> even()
check(s(s(s(x)))) -> check(s(x))
half(0()) -> 0()
half(s(0())) -> 0()
half(s(s(x))) -> s(half(x))
if(even(),x,y,z,u) -> plus(timesIter(half(x),y,half(z)),timesIter(half(x),y,half(s(z))))
if(odd(),x,y,z,u) -> timesIter(p(x),y,u)
if(zero(),x,y,z,u) -> z
p(0()) -> 0()
p(s(x)) -> x
plus(0(),y) -> y
plus(s(x),y) -> s(plus(x,y))
times(x,y) -> timesIter(x,y,0())
timesIter(x,y,z) -> if(check(x),x,y,z,plus(z,y))
- Signature:
{check/1,half/1,if/5,p/1,plus/2,times/2,timesIter/3} / {0/0,even/0,odd/0,s/1,zero/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {check,half,if,p,plus,times,timesIter} and constructors {0
,even,odd,s,zero}
+ Applied Processor:
Sum {left = someStrategy, right = someStrategy}
+ Details:
()
* Step 2: DecreasingLoops WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
check(0()) -> zero()
check(s(0())) -> odd()
check(s(s(0()))) -> even()
check(s(s(s(x)))) -> check(s(x))
half(0()) -> 0()
half(s(0())) -> 0()
half(s(s(x))) -> s(half(x))
if(even(),x,y,z,u) -> plus(timesIter(half(x),y,half(z)),timesIter(half(x),y,half(s(z))))
if(odd(),x,y,z,u) -> timesIter(p(x),y,u)
if(zero(),x,y,z,u) -> z
p(0()) -> 0()
p(s(x)) -> x
plus(0(),y) -> y
plus(s(x),y) -> s(plus(x,y))
times(x,y) -> timesIter(x,y,0())
timesIter(x,y,z) -> if(check(x),x,y,z,plus(z,y))
- Signature:
{check/1,half/1,if/5,p/1,plus/2,times/2,timesIter/3} / {0/0,even/0,odd/0,s/1,zero/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {check,half,if,p,plus,times,timesIter} and constructors {0
,even,odd,s,zero}
+ Applied Processor:
DecreasingLoops {bound = AnyLoop, narrow = 10}
+ Details:
The system has following decreasing Loops:
check(s(x)){x -> s(s(x))} =
check(s(s(s(x)))) ->^+ check(s(x))
= C[check(s(x)) = check(s(x)){}]
WORST_CASE(Omega(n^1),?)