* Step 1: Sum WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
a() -> b()
a() -> c()
div(x,y,0()) -> divisible(x,y)
div(0(),y,s(z)) -> false()
div(s(x),y,s(z)) -> div(x,y,z)
divisible(0(),s(y)) -> true()
divisible(s(x),s(y)) -> div(s(x),s(y),s(y))
ge(x,0()) -> true()
ge(0(),s(y)) -> false()
ge(s(x),s(y)) -> ge(x,y)
if(false(),x,y,z,u) -> if2(divisible(z,y),x,y,z,u)
if(true(),x,y,z,u) -> z
if2(false(),x,y,z,u) -> lcmIter(x,y,plus(x,z),u)
if2(true(),x,y,z,u) -> z
ifTimes(false(),x,y) -> plus(y,times(y,p(x)))
ifTimes(true(),x,y) -> 0()
lcm(x,y) -> lcmIter(x,y,0(),times(x,y))
lcmIter(x,y,z,u) -> if(or(ge(0(),x),ge(z,u)),x,y,z,u)
or(false(),y) -> y
or(true(),y) -> true()
p(0()) -> s(s(0()))
p(s(x)) -> x
plus(0(),y) -> y
plus(s(x),y) -> s(plus(x,y))
times(x,y) -> ifTimes(ge(0(),x),x,y)
- Signature:
{a/0,div/3,divisible/2,ge/2,if/5,if2/5,ifTimes/3,lcm/2,lcmIter/4,or/2,p/1,plus/2,times/2} / {0/0,b/0,c/0
,false/0,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {a,div,divisible,ge,if,if2,ifTimes,lcm,lcmIter,or,p,plus
,times} and constructors {0,b,c,false,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()
div(x,y,0()) -> divisible(x,y)
div(0(),y,s(z)) -> false()
div(s(x),y,s(z)) -> div(x,y,z)
divisible(0(),s(y)) -> true()
divisible(s(x),s(y)) -> div(s(x),s(y),s(y))
ge(x,0()) -> true()
ge(0(),s(y)) -> false()
ge(s(x),s(y)) -> ge(x,y)
if(false(),x,y,z,u) -> if2(divisible(z,y),x,y,z,u)
if(true(),x,y,z,u) -> z
if2(false(),x,y,z,u) -> lcmIter(x,y,plus(x,z),u)
if2(true(),x,y,z,u) -> z
ifTimes(false(),x,y) -> plus(y,times(y,p(x)))
ifTimes(true(),x,y) -> 0()
lcm(x,y) -> lcmIter(x,y,0(),times(x,y))
lcmIter(x,y,z,u) -> if(or(ge(0(),x),ge(z,u)),x,y,z,u)
or(false(),y) -> y
or(true(),y) -> true()
p(0()) -> s(s(0()))
p(s(x)) -> x
plus(0(),y) -> y
plus(s(x),y) -> s(plus(x,y))
times(x,y) -> ifTimes(ge(0(),x),x,y)
- Signature:
{a/0,div/3,divisible/2,ge/2,if/5,if2/5,ifTimes/3,lcm/2,lcmIter/4,or/2,p/1,plus/2,times/2} / {0/0,b/0,c/0
,false/0,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {a,div,divisible,ge,if,if2,ifTimes,lcm,lcmIter,or,p,plus
,times} and constructors {0,b,c,false,s,true}
+ Applied Processor:
DecreasingLoops {bound = AnyLoop, narrow = 10}
+ Details:
The system has following decreasing Loops:
div(x,y,z){x -> s(x),z -> s(z)} =
div(s(x),y,s(z)) ->^+ div(x,y,z)
= C[div(x,y,z) = div(x,y,z){}]
WORST_CASE(Omega(n^1),?)