* Step 1: Sum WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
*(x,0()) -> 0()
*(x,s(y)) -> +(*(x,y),x)
+(x,0()) -> x
+(x,s(y)) -> s(+(x,y))
-(x,0()) -> x
-(s(x),s(y)) -> -(x,y)
fact(x) -> iffact(x,ge(x,s(s(0()))))
ge(x,0()) -> true()
ge(0(),s(y)) -> false()
ge(s(x),s(y)) -> ge(x,y)
iffact(x,false()) -> s(0())
iffact(x,true()) -> *(x,fact(-(x,s(0()))))
- Signature:
{*/2,+/2,-/2,fact/1,ge/2,iffact/2} / {0/0,false/0,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {*,+,-,fact,ge,iffact} 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:
*(x,0()) -> 0()
*(x,s(y)) -> +(*(x,y),x)
+(x,0()) -> x
+(x,s(y)) -> s(+(x,y))
-(x,0()) -> x
-(s(x),s(y)) -> -(x,y)
fact(x) -> iffact(x,ge(x,s(s(0()))))
ge(x,0()) -> true()
ge(0(),s(y)) -> false()
ge(s(x),s(y)) -> ge(x,y)
iffact(x,false()) -> s(0())
iffact(x,true()) -> *(x,fact(-(x,s(0()))))
- Signature:
{*/2,+/2,-/2,fact/1,ge/2,iffact/2} / {0/0,false/0,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {*,+,-,fact,ge,iffact} and constructors {0,false,s,true}
+ Applied Processor:
DecreasingLoops {bound = AnyLoop, narrow = 10}
+ Details:
The system has following decreasing Loops:
*(x,y){y -> s(y)} =
*(x,s(y)) ->^+ +(*(x,y),x)
= C[*(x,y) = *(x,y){}]
WORST_CASE(Omega(n^1),?)