WORST_CASE(?,O(n^1)) * Step 1: WeightGap 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: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following nonconstant growth matrix-interpretation: 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: all TcT has computed the following interpretation: p(0) = [0] p(<=) = [0] p(Cons) = [1] x1 + [1] x2 + [0] p(False) = [0] p(Nil) = [7] p(S) = [0] p(True) = [0] p(goal) = [1] x1 + [1] x2 + [0] p(merge) = [1] x1 + [1] x2 + [0] p(merge[Ite]) = [1] x1 + [1] x2 + [1] x3 + [0] Following rules are strictly oriented: merge(Cons(x,xs),Nil()) = [1] x + [1] xs + [7] > [1] x + [1] xs + [0] = Cons(x,xs) merge(Nil(),ys) = [1] ys + [7] > [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) goal(xs,ys) = [1] xs + [1] ys + [0] >= [1] xs + [1] ys + [0] = merge(xs,ys) merge(Cons(x',xs'),Cons(x,xs)) = [1] x + [1] x' + [1] xs + [1] xs' + [0] >= [1] x + [1] x' + [1] xs + [1] xs' + [0] = merge[Ite](<=(x',x),Cons(x',xs'),Cons(x,xs)) merge[Ite](False(),xs',Cons(x,xs)) = [1] x + [1] xs + [1] xs' + [0] >= [1] x + [1] xs + [1] xs' + [0] = Cons(x,merge(xs',xs)) merge[Ite](True(),Cons(x,xs),ys) = [1] x + [1] xs + [1] ys + [0] >= [1] x + [1] xs + [1] ys + [0] = Cons(x,merge(xs,ys)) Further, it can be verified that all rules not oriented are covered by the weightgap condition. * Step 2: WeightGap WORST_CASE(?,O(n^1)) + Considered Problem: - Strict TRS: goal(xs,ys) -> merge(xs,ys) 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) 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: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following nonconstant growth matrix-interpretation: 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: all TcT has computed the following interpretation: p(0) = [0] p(<=) = [4] p(Cons) = [1] x2 + [0] p(False) = [0] p(Nil) = [2] p(S) = [1] x1 + [2] p(True) = [0] p(goal) = [4] x1 + [5] x2 + [1] p(merge) = [2] x1 + [1] x2 + [0] p(merge[Ite]) = [1] x1 + [2] x2 + [1] x3 + [1] Following rules are strictly oriented: goal(xs,ys) = [4] xs + [5] ys + [1] > [2] xs + [1] ys + [0] = merge(xs,ys) Following rules are (at-least) weakly oriented: <=(0(),y) = [4] >= [0] = True() <=(S(x),0()) = [4] >= [0] = False() <=(S(x),S(y)) = [4] >= [4] = <=(x,y) merge(Cons(x,xs),Nil()) = [2] xs + [2] >= [1] xs + [0] = Cons(x,xs) merge(Cons(x',xs'),Cons(x,xs)) = [1] xs + [2] xs' + [0] >= [1] xs + [2] xs' + [5] = merge[Ite](<=(x',x),Cons(x',xs'),Cons(x,xs)) merge(Nil(),ys) = [1] ys + [4] >= [1] ys + [0] = ys merge[Ite](False(),xs',Cons(x,xs)) = [1] xs + [2] xs' + [1] >= [1] xs + [2] xs' + [0] = Cons(x,merge(xs',xs)) merge[Ite](True(),Cons(x,xs),ys) = [2] xs + [1] ys + [1] >= [2] xs + [1] ys + [0] = Cons(x,merge(xs,ys)) Further, it can be verified that all rules not oriented are covered by the weightgap condition. * Step 3: NaturalMI 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: 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) = [2] p(<=) = [0] p(Cons) = [1] x1 + [1] x2 + [1] p(False) = [0] p(Nil) = [1] p(S) = [0] p(True) = [0] p(goal) = [8] x1 + [5] x2 + [11] p(merge) = [8] x1 + [4] x2 + [8] p(merge[Ite]) = [8] x1 + [8] x2 + [4] x3 + [7] Following rules are strictly oriented: merge(Cons(x',xs'),Cons(x,xs)) = [4] x + [8] x' + [4] xs + [8] xs' + [20] > [4] x + [8] x' + [4] xs + [8] xs' + [19] = 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) = [8] xs + [5] ys + [11] >= [8] xs + [4] ys + [8] = merge(xs,ys) merge(Cons(x,xs),Nil()) = [8] x + [8] xs + [20] >= [1] x + [1] xs + [1] = Cons(x,xs) merge(Nil(),ys) = [4] ys + [16] >= [1] ys + [0] = ys merge[Ite](False(),xs',Cons(x,xs)) = [4] x + [4] xs + [8] xs' + [11] >= [1] x + [4] xs + [8] xs' + [9] = Cons(x,merge(xs',xs)) merge[Ite](True(),Cons(x,xs),ys) = [8] x + [8] xs + [4] ys + [15] >= [1] x + [8] xs + [4] ys + [9] = 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))