WORST_CASE(?,O(n^1)) * Step 1: NaturalMI 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: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: 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) = [1] x1 + [1] x2 + [0] p(False) = [0] p(Nil) = [2] p(S) = [1] x1 + [0] p(True) = [0] p(goal) = [2] x1 + [9] x2 + [8] p(merge) = [2] x1 + [9] x2 + [0] p(merge[Ite]) = [8] x1 + [2] x2 + [9] x3 + [0] Following rules are strictly oriented: goal(xs,ys) = [2] xs + [9] ys + [8] > [2] xs + [9] ys + [0] = merge(xs,ys) merge(Cons(x,xs),Nil()) = [2] x + [2] xs + [18] > [1] x + [1] xs + [0] = Cons(x,xs) merge(Nil(),ys) = [9] ys + [4] > [1] ys + [0] = 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)) = [9] x + [2] x' + [9] xs + [2] xs' + [0] >= [9] x + [2] x' + [9] xs + [2] xs' + [0] = merge[Ite](<=(x',x),Cons(x',xs'),Cons(x,xs)) merge[Ite](False(),xs',Cons(x,xs)) = [9] x + [9] xs + [2] xs' + [0] >= [1] x + [9] xs + [2] xs' + [0] = Cons(x,merge(xs',xs)) merge[Ite](True(),Cons(x,xs),ys) = [2] x + [2] xs + [9] ys + [0] >= [1] x + [2] xs + [9] ys + [0] = Cons(x,merge(xs,ys)) * Step 2: 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) = 1 p(<=) = 0 p(Cons) = 1 + x2 p(False) = 0 p(Nil) = 1 p(S) = 1 p(True) = 0 p(goal) = 10 + 8*x1 + 8*x2 p(merge) = 2 + 8*x1 + 8*x2 p(merge[Ite]) = x1 + 8*x2 + 8*x3 Following rules are strictly oriented: merge(Cons(x',xs'),Cons(x,xs)) = 18 + 8*xs + 8*xs' > 16 + 8*xs + 8*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) = 10 + 8*xs + 8*ys >= 2 + 8*xs + 8*ys = merge(xs,ys) merge(Cons(x,xs),Nil()) = 18 + 8*xs >= 1 + xs = Cons(x,xs) merge(Nil(),ys) = 10 + 8*ys >= ys = ys merge[Ite](False(),xs',Cons(x,xs)) = 8 + 8*xs + 8*xs' >= 3 + 8*xs + 8*xs' = Cons(x,merge(xs',xs)) merge[Ite](True(),Cons(x,xs),ys) = 8 + 8*xs + 8*ys >= 3 + 8*xs + 8*ys = Cons(x,merge(xs,ys)) * Step 3: 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))