* Step 1: Sum WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: goal(xs) -> mergesort(xs) 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(),xs2) -> xs2 mergesort(Cons(x,Nil())) -> Cons(x,Nil()) mergesort(Cons(x',Cons(x,xs))) -> splitmerge(Cons(x',Cons(x,xs)),Nil(),Nil()) mergesort(Nil()) -> Nil() notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() splitmerge(Cons(x,xs),xs1,xs2) -> splitmerge(xs,Cons(x,xs2),xs1) splitmerge(Nil(),xs1,xs2) -> merge(mergesort(xs1),mergesort(xs2)) - Weak TRS: <=(0(),y) -> True() <=(S(x),0()) -> False() <=(S(x),S(y)) -> <=(x,y) merge[Ite](False(),xs1,Cons(x,xs)) -> Cons(x,merge(xs1,xs)) merge[Ite](True(),Cons(x,xs),xs2) -> Cons(x,merge(xs,xs2)) - Signature: {<=/2,goal/1,merge/2,merge[Ite]/3,mergesort/1,notEmpty/1,splitmerge/3} / {0/0,Cons/2,False/0,Nil/0,S/1 ,True/0} - Obligation: innermost runtime complexity wrt. defined symbols {<=,goal,merge,merge[Ite],mergesort,notEmpty ,splitmerge} and constructors {0,Cons,False,Nil,S,True} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () * Step 2: DecreasingLoops WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: goal(xs) -> mergesort(xs) 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(),xs2) -> xs2 mergesort(Cons(x,Nil())) -> Cons(x,Nil()) mergesort(Cons(x',Cons(x,xs))) -> splitmerge(Cons(x',Cons(x,xs)),Nil(),Nil()) mergesort(Nil()) -> Nil() notEmpty(Cons(x,xs)) -> True() notEmpty(Nil()) -> False() splitmerge(Cons(x,xs),xs1,xs2) -> splitmerge(xs,Cons(x,xs2),xs1) splitmerge(Nil(),xs1,xs2) -> merge(mergesort(xs1),mergesort(xs2)) - Weak TRS: <=(0(),y) -> True() <=(S(x),0()) -> False() <=(S(x),S(y)) -> <=(x,y) merge[Ite](False(),xs1,Cons(x,xs)) -> Cons(x,merge(xs1,xs)) merge[Ite](True(),Cons(x,xs),xs2) -> Cons(x,merge(xs,xs2)) - Signature: {<=/2,goal/1,merge/2,merge[Ite]/3,mergesort/1,notEmpty/1,splitmerge/3} / {0/0,Cons/2,False/0,Nil/0,S/1 ,True/0} - Obligation: innermost runtime complexity wrt. defined symbols {<=,goal,merge,merge[Ite],mergesort,notEmpty ,splitmerge} and constructors {0,Cons,False,Nil,S,True} + Applied Processor: DecreasingLoops {bound = AnyLoop, narrow = 10} + Details: The system has following decreasing Loops: splitmerge(y,z,u){y -> Cons(x,y)} = splitmerge(Cons(x,y),z,u) ->^+ splitmerge(y,Cons(x,u),z) = C[splitmerge(y,Cons(x,u),z) = splitmerge(y,z,u){z -> Cons(x,u),u -> z}] WORST_CASE(Omega(n^1),?)