WORST_CASE(?,O(n^1)) * Step 1: Sum WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: goal(xs,ys) -> merge(xs,ys) merge(Cons(x,xs),Nil()) -> Cons(x,xs) merge(Cons(x',xs'),Cons(x,xs)) -> merge[Ite](<=(x',x),Cons(x',xs'),Cons(x,xs)) merge(Nil(),ys) -> ys - Weak TRS: <=(0(),y) -> True() <=(S(x),0()) -> False() <=(S(x),S(y)) -> <=(x,y) merge[Ite](False(),xs',Cons(x,xs)) -> Cons(x,merge(xs',xs)) merge[Ite](True(),Cons(x,xs),ys) -> Cons(x,merge(xs,ys)) - Signature: {<=/2,goal/2,merge/2,merge[Ite]/3} / {0/0,Cons/2,False/0,Nil/0,S/1,True/0} - Obligation: innermost runtime complexity wrt. defined symbols {<=,goal,merge,merge[Ite]} and constructors {0,Cons,False ,Nil,S,True} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () * Step 2: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: goal(xs,ys) -> merge(xs,ys) merge(Cons(x,xs),Nil()) -> Cons(x,xs) merge(Cons(x',xs'),Cons(x,xs)) -> merge[Ite](<=(x',x),Cons(x',xs'),Cons(x,xs)) merge(Nil(),ys) -> ys - Weak TRS: <=(0(),y) -> True() <=(S(x),0()) -> False() <=(S(x),S(y)) -> <=(x,y) merge[Ite](False(),xs',Cons(x,xs)) -> Cons(x,merge(xs',xs)) merge[Ite](True(),Cons(x,xs),ys) -> Cons(x,merge(xs,ys)) - Signature: {<=/2,goal/2,merge/2,merge[Ite]/3} / {0/0,Cons/2,False/0,Nil/0,S/1,True/0} - Obligation: innermost runtime complexity wrt. defined symbols {<=,goal,merge,merge[Ite]} and constructors {0,Cons,False ,Nil,S,True} + Applied Processor: NaturalPI {shape = Linear, restrict = Restrict, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a polynomial interpretation of kind constructor-based(linear): The following argument positions are considered usable: uargs(Cons) = {2}, uargs(merge[Ite]) = {1} Following symbols are considered usable: {<=,goal,merge,merge[Ite]} TcT has computed the following interpretation: p(0) = 1 p(<=) = 0 p(Cons) = x2 p(False) = 0 p(Nil) = 4 p(S) = 2 p(True) = 0 p(goal) = 1 + 4*x1 + 8*x2 p(merge) = 2*x1 + 4*x2 p(merge[Ite]) = 2*x1 + 2*x2 + 4*x3 Following rules are strictly oriented: goal(xs,ys) = 1 + 4*xs + 8*ys > 2*xs + 4*ys = merge(xs,ys) merge(Cons(x,xs),Nil()) = 16 + 2*xs > xs = Cons(x,xs) merge(Nil(),ys) = 8 + 4*ys > ys = ys Following rules are (at-least) weakly oriented: <=(0(),y) = 0 >= 0 = True() <=(S(x),0()) = 0 >= 0 = False() <=(S(x),S(y)) = 0 >= 0 = <=(x,y) merge(Cons(x',xs'),Cons(x,xs)) = 4*xs + 2*xs' >= 4*xs + 2*xs' = merge[Ite](<=(x',x),Cons(x',xs'),Cons(x,xs)) merge[Ite](False(),xs',Cons(x,xs)) = 4*xs + 2*xs' >= 4*xs + 2*xs' = Cons(x,merge(xs',xs)) merge[Ite](True(),Cons(x,xs),ys) = 2*xs + 4*ys >= 2*xs + 4*ys = Cons(x,merge(xs,ys)) * Step 3: NaturalPI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: merge(Cons(x',xs'),Cons(x,xs)) -> merge[Ite](<=(x',x),Cons(x',xs'),Cons(x,xs)) - Weak TRS: <=(0(),y) -> True() <=(S(x),0()) -> False() <=(S(x),S(y)) -> <=(x,y) goal(xs,ys) -> merge(xs,ys) merge(Cons(x,xs),Nil()) -> Cons(x,xs) merge(Nil(),ys) -> ys merge[Ite](False(),xs',Cons(x,xs)) -> Cons(x,merge(xs',xs)) merge[Ite](True(),Cons(x,xs),ys) -> Cons(x,merge(xs,ys)) - Signature: {<=/2,goal/2,merge/2,merge[Ite]/3} / {0/0,Cons/2,False/0,Nil/0,S/1,True/0} - Obligation: innermost runtime complexity wrt. defined symbols {<=,goal,merge,merge[Ite]} and constructors {0,Cons,False ,Nil,S,True} + Applied Processor: NaturalPI {shape = Linear, restrict = Restrict, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a polynomial interpretation of kind constructor-based(linear): The following argument positions are considered usable: uargs(Cons) = {2}, uargs(merge[Ite]) = {1} Following symbols are considered usable: {<=,goal,merge,merge[Ite]} TcT has computed the following interpretation: p(0) = 0 p(<=) = 0 p(Cons) = 2 + x2 p(False) = 0 p(Nil) = 0 p(S) = 1 + x1 p(True) = 0 p(goal) = 3 + 6*x1 + 13*x2 p(merge) = 2 + 6*x1 + 4*x2 p(merge[Ite]) = 8*x1 + 6*x2 + 4*x3 Following rules are strictly oriented: merge(Cons(x',xs'),Cons(x,xs)) = 22 + 4*xs + 6*xs' > 20 + 4*xs + 6*xs' = merge[Ite](<=(x',x),Cons(x',xs'),Cons(x,xs)) Following rules are (at-least) weakly oriented: <=(0(),y) = 0 >= 0 = True() <=(S(x),0()) = 0 >= 0 = False() <=(S(x),S(y)) = 0 >= 0 = <=(x,y) goal(xs,ys) = 3 + 6*xs + 13*ys >= 2 + 6*xs + 4*ys = merge(xs,ys) merge(Cons(x,xs),Nil()) = 14 + 6*xs >= 2 + xs = Cons(x,xs) merge(Nil(),ys) = 2 + 4*ys >= ys = ys merge[Ite](False(),xs',Cons(x,xs)) = 8 + 4*xs + 6*xs' >= 4 + 4*xs + 6*xs' = Cons(x,merge(xs',xs)) merge[Ite](True(),Cons(x,xs),ys) = 12 + 6*xs + 4*ys >= 4 + 6*xs + 4*ys = Cons(x,merge(xs,ys)) * Step 4: EmptyProcessor WORST_CASE(?,O(1)) + Considered Problem: - Weak TRS: <=(0(),y) -> True() <=(S(x),0()) -> False() <=(S(x),S(y)) -> <=(x,y) goal(xs,ys) -> merge(xs,ys) merge(Cons(x,xs),Nil()) -> Cons(x,xs) merge(Cons(x',xs'),Cons(x,xs)) -> merge[Ite](<=(x',x),Cons(x',xs'),Cons(x,xs)) merge(Nil(),ys) -> ys merge[Ite](False(),xs',Cons(x,xs)) -> Cons(x,merge(xs',xs)) merge[Ite](True(),Cons(x,xs),ys) -> Cons(x,merge(xs,ys)) - Signature: {<=/2,goal/2,merge/2,merge[Ite]/3} / {0/0,Cons/2,False/0,Nil/0,S/1,True/0} - Obligation: innermost runtime complexity wrt. defined symbols {<=,goal,merge,merge[Ite]} and constructors {0,Cons,False ,Nil,S,True} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(?,O(n^1))