* Step 1: Sum WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
filter(s(s(X)),cons(Y,Z)) -> if(divides(s(s(X)),Y),filter(s(s(X)),Z),cons(Y,filter(X,sieve(Y))))
from(X) -> cons(X,from(s(X)))
head(cons(X,Y)) -> X
if(false(),X,Y) -> Y
if(true(),X,Y) -> X
primes() -> sieve(from(s(s(0()))))
sieve(cons(X,Y)) -> cons(X,filter(X,sieve(Y)))
tail(cons(X,Y)) -> Y
- Signature:
{filter/2,from/1,head/1,if/3,primes/0,sieve/1,tail/1} / {0/0,cons/2,divides/2,false/0,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {filter,from,head,if,primes,sieve
,tail} and constructors {0,cons,divides,false,s,true}
+ Applied Processor:
Sum {left = someStrategy, right = someStrategy}
+ Details:
()
* Step 2: DecreasingLoops WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
filter(s(s(X)),cons(Y,Z)) -> if(divides(s(s(X)),Y),filter(s(s(X)),Z),cons(Y,filter(X,sieve(Y))))
from(X) -> cons(X,from(s(X)))
head(cons(X,Y)) -> X
if(false(),X,Y) -> Y
if(true(),X,Y) -> X
primes() -> sieve(from(s(s(0()))))
sieve(cons(X,Y)) -> cons(X,filter(X,sieve(Y)))
tail(cons(X,Y)) -> Y
- Signature:
{filter/2,from/1,head/1,if/3,primes/0,sieve/1,tail/1} / {0/0,cons/2,divides/2,false/0,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {filter,from,head,if,primes,sieve
,tail} and constructors {0,cons,divides,false,s,true}
+ Applied Processor:
DecreasingLoops {bound = AnyLoop, narrow = 10}
+ Details:
The system has following decreasing Loops:
filter(s(s(x)),z){z -> cons(y,z)} =
filter(s(s(x)),cons(y,z)) ->^+ if(divides(s(s(x)),y),filter(s(s(x)),z),cons(y,filter(x,sieve(y))))
= C[filter(s(s(x)),z) = filter(s(s(x)),z){}]
WORST_CASE(Omega(n^1),?)