* Step 1: Sum WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
a() -> b()
a() -> c()
double(0()) -> 0()
double(s(x)) -> s(s(double(x)))
droplast(cons(x,cons(y,xs))) -> cons(x,droplast(cons(y,xs)))
droplast(cons(x,nil())) -> nil()
droplast(nil()) -> nil()
if(false(),x,y,z) -> loop(x,double(y),s(z))
if(true(),x,y,z) -> z
ifmap(false(),xs,ys) -> mapIter(droplast(xs),cons(log(last(xs)),ys))
ifmap(true(),xs,ys) -> ys
isempty(cons(x,xs)) -> false()
isempty(nil()) -> true()
last(cons(x,cons(y,xs))) -> last(cons(y,xs))
last(cons(x,nil())) -> x
last(nil()) -> error()
le(0(),y) -> true()
le(s(x),0()) -> false()
le(s(x),s(y)) -> le(x,y)
log(0()) -> logError()
log(s(x)) -> loop(s(x),s(0()),0())
loop(x,s(y),z) -> if(le(x,s(y)),x,s(y),z)
mapIter(xs,ys) -> ifmap(isempty(xs),xs,ys)
maplog(xs) -> mapIter(xs,nil())
- Signature:
{a/0,double/1,droplast/1,if/4,ifmap/3,isempty/1,last/1,le/2,log/1,loop/3,mapIter/2,maplog/1} / {0/0,b/0,c/0
,cons/2,error/0,false/0,logError/0,nil/0,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {a,double,droplast,if,ifmap,isempty,last,le,log,loop
,mapIter,maplog} and constructors {0,b,c,cons,error,false,logError,nil,s,true}
+ Applied Processor:
Sum {left = someStrategy, right = someStrategy}
+ Details:
()
* Step 2: DecreasingLoops WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
a() -> b()
a() -> c()
double(0()) -> 0()
double(s(x)) -> s(s(double(x)))
droplast(cons(x,cons(y,xs))) -> cons(x,droplast(cons(y,xs)))
droplast(cons(x,nil())) -> nil()
droplast(nil()) -> nil()
if(false(),x,y,z) -> loop(x,double(y),s(z))
if(true(),x,y,z) -> z
ifmap(false(),xs,ys) -> mapIter(droplast(xs),cons(log(last(xs)),ys))
ifmap(true(),xs,ys) -> ys
isempty(cons(x,xs)) -> false()
isempty(nil()) -> true()
last(cons(x,cons(y,xs))) -> last(cons(y,xs))
last(cons(x,nil())) -> x
last(nil()) -> error()
le(0(),y) -> true()
le(s(x),0()) -> false()
le(s(x),s(y)) -> le(x,y)
log(0()) -> logError()
log(s(x)) -> loop(s(x),s(0()),0())
loop(x,s(y),z) -> if(le(x,s(y)),x,s(y),z)
mapIter(xs,ys) -> ifmap(isempty(xs),xs,ys)
maplog(xs) -> mapIter(xs,nil())
- Signature:
{a/0,double/1,droplast/1,if/4,ifmap/3,isempty/1,last/1,le/2,log/1,loop/3,mapIter/2,maplog/1} / {0/0,b/0,c/0
,cons/2,error/0,false/0,logError/0,nil/0,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {a,double,droplast,if,ifmap,isempty,last,le,log,loop
,mapIter,maplog} and constructors {0,b,c,cons,error,false,logError,nil,s,true}
+ Applied Processor:
DecreasingLoops {bound = AnyLoop, narrow = 10}
+ Details:
The system has following decreasing Loops:
double(x){x -> s(x)} =
double(s(x)) ->^+ s(s(double(x)))
= C[double(x) = double(x){}]
WORST_CASE(Omega(n^1),?)