* Step 1: Sum WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
count(n,x) -> if(isEmpty(n)
,isEmpty(left(n))
,right(n)
,node(left(left(n)),node(right(left(n)),right(n)))
,x
,inc(x))
if(false(),false(),n,m,x,y) -> count(m,x)
if(false(),true(),n,m,x,y) -> count(n,y)
if(true(),b,n,m,x,y) -> x
inc(0()) -> s(0())
inc(s(x)) -> s(inc(x))
isEmpty(empty()) -> true()
isEmpty(node(l,r)) -> false()
left(empty()) -> empty()
left(node(l,r)) -> l
nrOfNodes(n) -> count(n,0())
right(empty()) -> empty()
right(node(l,r)) -> r
- Signature:
{count/2,if/6,inc/1,isEmpty/1,left/1,nrOfNodes/1,right/1} / {0/0,empty/0,false/0,node/2,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {count,if,inc,isEmpty,left,nrOfNodes
,right} and constructors {0,empty,false,node,s,true}
+ Applied Processor:
Sum {left = someStrategy, right = someStrategy}
+ Details:
()
* Step 2: DecreasingLoops WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
count(n,x) -> if(isEmpty(n)
,isEmpty(left(n))
,right(n)
,node(left(left(n)),node(right(left(n)),right(n)))
,x
,inc(x))
if(false(),false(),n,m,x,y) -> count(m,x)
if(false(),true(),n,m,x,y) -> count(n,y)
if(true(),b,n,m,x,y) -> x
inc(0()) -> s(0())
inc(s(x)) -> s(inc(x))
isEmpty(empty()) -> true()
isEmpty(node(l,r)) -> false()
left(empty()) -> empty()
left(node(l,r)) -> l
nrOfNodes(n) -> count(n,0())
right(empty()) -> empty()
right(node(l,r)) -> r
- Signature:
{count/2,if/6,inc/1,isEmpty/1,left/1,nrOfNodes/1,right/1} / {0/0,empty/0,false/0,node/2,s/1,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {count,if,inc,isEmpty,left,nrOfNodes
,right} and constructors {0,empty,false,node,s,true}
+ Applied Processor:
DecreasingLoops {bound = AnyLoop, narrow = 10}
+ Details:
The system has following decreasing Loops:
inc(x){x -> s(x)} =
inc(s(x)) ->^+ s(inc(x))
= C[inc(x) = inc(x){}]
WORST_CASE(Omega(n^1),?)