* Step 1: Sum WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
fac(x) -> loop(x,s(0()),s(0()))
if(false(),x,c,y) -> loop(x,s(c),times(y,s(c)))
if(true(),x,c,y) -> y
loop(x,c,y) -> if(lt(x,c),x,c,y)
lt(x,0()) -> false()
lt(0(),s(x)) -> true()
lt(s(x),s(y)) -> lt(x,y)
plus(0(),y) -> y
plus(s(x),y) -> s(plus(x,y))
times(0(),y) -> 0()
times(s(x),y) -> plus(y,times(x,y))
- Signature:
{fac/1,if/4,loop/3,lt/2,plus/2,times/2} / {0/0,false/0,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {fac,if,loop,lt,plus,times} and constructors {0,false,s
,true}
+ Applied Processor:
Sum {left = someStrategy, right = someStrategy}
+ Details:
()
* Step 2: DecreasingLoops WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
fac(x) -> loop(x,s(0()),s(0()))
if(false(),x,c,y) -> loop(x,s(c),times(y,s(c)))
if(true(),x,c,y) -> y
loop(x,c,y) -> if(lt(x,c),x,c,y)
lt(x,0()) -> false()
lt(0(),s(x)) -> true()
lt(s(x),s(y)) -> lt(x,y)
plus(0(),y) -> y
plus(s(x),y) -> s(plus(x,y))
times(0(),y) -> 0()
times(s(x),y) -> plus(y,times(x,y))
- Signature:
{fac/1,if/4,loop/3,lt/2,plus/2,times/2} / {0/0,false/0,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {fac,if,loop,lt,plus,times} and constructors {0,false,s
,true}
+ Applied Processor:
DecreasingLoops {bound = AnyLoop, narrow = 10}
+ Details:
The system has following decreasing Loops:
lt(x,y){x -> s(x),y -> s(y)} =
lt(s(x),s(y)) ->^+ lt(x,y)
= C[lt(x,y) = lt(x,y){}]
WORST_CASE(Omega(n^1),?)