* Step 1: Sum WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
double(0()) -> 0()
double(s(x)) -> s(s(double(x)))
greater(x,0()) -> first()
greater(0(),s(y)) -> second()
greater(s(x),s(y)) -> greater(x,y)
if(false(),x,y,z) -> true()
if(first(),x,y,z) -> if(le(s(x),y,s(z)),s(x),y,s(z))
if(second(),x,y,z) -> if(le(s(x),s(y),z),s(x),s(y),z)
le(0(),y,z) -> greater(y,z)
le(s(x),0(),z) -> false()
le(s(x),s(y),0()) -> false()
le(s(x),s(y),s(z)) -> le(x,y,z)
triple(x) -> if(le(x,x,double(x)),x,0(),0())
- Signature:
{double/1,greater/2,if/4,le/3,triple/1} / {0/0,false/0,first/0,s/1,second/0,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {double,greater,if,le,triple} and constructors {0,false
,first,s,second,true}
+ Applied Processor:
Sum {left = someStrategy, right = someStrategy}
+ Details:
()
* Step 2: DecreasingLoops WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
double(0()) -> 0()
double(s(x)) -> s(s(double(x)))
greater(x,0()) -> first()
greater(0(),s(y)) -> second()
greater(s(x),s(y)) -> greater(x,y)
if(false(),x,y,z) -> true()
if(first(),x,y,z) -> if(le(s(x),y,s(z)),s(x),y,s(z))
if(second(),x,y,z) -> if(le(s(x),s(y),z),s(x),s(y),z)
le(0(),y,z) -> greater(y,z)
le(s(x),0(),z) -> false()
le(s(x),s(y),0()) -> false()
le(s(x),s(y),s(z)) -> le(x,y,z)
triple(x) -> if(le(x,x,double(x)),x,0(),0())
- Signature:
{double/1,greater/2,if/4,le/3,triple/1} / {0/0,false/0,first/0,s/1,second/0,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {double,greater,if,le,triple} and constructors {0,false
,first,s,second,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),?)