* Step 1: Sum WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
*(x,+(y,z)) -> +(*(x,y),*(x,z))
*(#(),x) -> #()
*(*(x,y),z) -> *(x,*(y,z))
*(0(x),y) -> 0(*(x,y))
*(1(x),y) -> +(0(*(x,y)),y)
+(x,#()) -> x
+(#(),x) -> x
+(+(x,y),z) -> +(x,+(y,z))
+(0(x),0(y)) -> 0(+(x,y))
+(0(x),1(y)) -> 1(+(x,y))
+(1(x),0(y)) -> 1(+(x,y))
+(1(x),1(y)) -> 0(+(+(x,y),1(#())))
-(x,#()) -> x
-(#(),x) -> #()
-(0(x),0(y)) -> 0(-(x,y))
-(0(x),1(y)) -> 1(-(-(x,y),1(#())))
-(1(x),0(y)) -> 1(-(x,y))
-(1(x),1(y)) -> 0(-(x,y))
0(#()) -> #()
app(cons(x,l1),l2) -> cons(x,app(l1,l2))
app(nil(),l) -> l
eq(#(),#()) -> true()
eq(#(),0(y)) -> eq(#(),y)
eq(#(),1(y)) -> false()
eq(0(x),#()) -> eq(x,#())
eq(0(x),0(y)) -> eq(x,y)
eq(0(x),1(y)) -> false()
eq(1(x),#()) -> false()
eq(1(x),0(y)) -> false()
eq(1(x),1(y)) -> eq(x,y)
ge(x,#()) -> true()
ge(#(),0(x)) -> ge(#(),x)
ge(#(),1(x)) -> false()
ge(0(x),0(y)) -> ge(x,y)
ge(0(x),1(y)) -> not(ge(y,x))
ge(1(x),0(y)) -> ge(x,y)
ge(1(x),1(y)) -> ge(x,y)
if(false(),x,y) -> y
if(true(),x,y) -> x
ifinter(false(),x,l1,l2) -> inter(l1,l2)
ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2))
inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3))
inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1)
inter(x,nil()) -> nil()
inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3))
inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2)
inter(nil(),x) -> nil()
log(x) -> -(log'(x),1(#()))
log'(#()) -> #()
log'(0(x)) -> if(ge(x,1(#())),+(log'(x),1(#())),#())
log'(1(x)) -> +(log'(x),1(#()))
mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l))
mem(x,nil()) -> false()
not(false()) -> true()
not(true()) -> false()
prod(app(l1,l2)) -> *(prod(l1),prod(l2))
prod(cons(x,l)) -> *(x,prod(l))
prod(nil()) -> 1(#())
sum(app(l1,l2)) -> +(sum(l1),sum(l2))
sum(cons(x,l)) -> +(x,sum(l))
sum(nil()) -> 0(#())
- Signature:
{*/2,+/2,-/2,0/1,app/2,eq/2,ge/2,if/3,ifinter/4,inter/2,log/1,log'/1,mem/2,not/1,prod/1,sum/1} / {#/0,1/1
,cons/2,false/0,nil/0,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {*,+,-,0,app,eq,ge,if,ifinter,inter,log,log',mem,not,prod
,sum} and constructors {#,1,cons,false,nil,true}
+ Applied Processor:
Sum {left = someStrategy, right = someStrategy}
+ Details:
()
* Step 2: DecreasingLoops WORST_CASE(Omega(n^1),?)
+ Considered Problem:
- Strict TRS:
*(x,+(y,z)) -> +(*(x,y),*(x,z))
*(#(),x) -> #()
*(*(x,y),z) -> *(x,*(y,z))
*(0(x),y) -> 0(*(x,y))
*(1(x),y) -> +(0(*(x,y)),y)
+(x,#()) -> x
+(#(),x) -> x
+(+(x,y),z) -> +(x,+(y,z))
+(0(x),0(y)) -> 0(+(x,y))
+(0(x),1(y)) -> 1(+(x,y))
+(1(x),0(y)) -> 1(+(x,y))
+(1(x),1(y)) -> 0(+(+(x,y),1(#())))
-(x,#()) -> x
-(#(),x) -> #()
-(0(x),0(y)) -> 0(-(x,y))
-(0(x),1(y)) -> 1(-(-(x,y),1(#())))
-(1(x),0(y)) -> 1(-(x,y))
-(1(x),1(y)) -> 0(-(x,y))
0(#()) -> #()
app(cons(x,l1),l2) -> cons(x,app(l1,l2))
app(nil(),l) -> l
eq(#(),#()) -> true()
eq(#(),0(y)) -> eq(#(),y)
eq(#(),1(y)) -> false()
eq(0(x),#()) -> eq(x,#())
eq(0(x),0(y)) -> eq(x,y)
eq(0(x),1(y)) -> false()
eq(1(x),#()) -> false()
eq(1(x),0(y)) -> false()
eq(1(x),1(y)) -> eq(x,y)
ge(x,#()) -> true()
ge(#(),0(x)) -> ge(#(),x)
ge(#(),1(x)) -> false()
ge(0(x),0(y)) -> ge(x,y)
ge(0(x),1(y)) -> not(ge(y,x))
ge(1(x),0(y)) -> ge(x,y)
ge(1(x),1(y)) -> ge(x,y)
if(false(),x,y) -> y
if(true(),x,y) -> x
ifinter(false(),x,l1,l2) -> inter(l1,l2)
ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2))
inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3))
inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1)
inter(x,nil()) -> nil()
inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3))
inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2)
inter(nil(),x) -> nil()
log(x) -> -(log'(x),1(#()))
log'(#()) -> #()
log'(0(x)) -> if(ge(x,1(#())),+(log'(x),1(#())),#())
log'(1(x)) -> +(log'(x),1(#()))
mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l))
mem(x,nil()) -> false()
not(false()) -> true()
not(true()) -> false()
prod(app(l1,l2)) -> *(prod(l1),prod(l2))
prod(cons(x,l)) -> *(x,prod(l))
prod(nil()) -> 1(#())
sum(app(l1,l2)) -> +(sum(l1),sum(l2))
sum(cons(x,l)) -> +(x,sum(l))
sum(nil()) -> 0(#())
- Signature:
{*/2,+/2,-/2,0/1,app/2,eq/2,ge/2,if/3,ifinter/4,inter/2,log/1,log'/1,mem/2,not/1,prod/1,sum/1} / {#/0,1/1
,cons/2,false/0,nil/0,true/0}
- Obligation:
innermost runtime complexity wrt. defined symbols {*,+,-,0,app,eq,ge,if,ifinter,inter,log,log',mem,not,prod
,sum} and constructors {#,1,cons,false,nil,true}
+ Applied Processor:
DecreasingLoops {bound = AnyLoop, narrow = 10}
+ Details:
The system has following decreasing Loops:
*(x,y){x -> 1(x)} =
*(1(x),y) ->^+ +(0(*(x,y)),y)
= C[*(x,y) = *(x,y){}]
WORST_CASE(Omega(n^1),?)