* Step 1: Sum WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict TRS:
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            sortAll(@l) -> sortAll#1(@l)
            sortAll#1(::(@x,@xs)) -> sortAll#2(@x,@xs)
            sortAll#1(nil()) -> nil()
            sortAll#2(tuple#2(@vals,@key),@xs) -> ::(tuple#2(quicksort(@vals),@key),sortAll(@xs))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitAndSort(@l) -> sortAll(split(@l))
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and,#ckgt,#compare,#eq,#equal,#greater,append,append#1
            ,insert,insert#1,insert#2,insert#3,insert#4,quicksort,quicksort#1,quicksort#2,sortAll,sortAll#1,sortAll#2
            ,split,split#1,splitAndSort,splitqs,splitqs#1,splitqs#2,splitqs#3} and constructors {#0,#EQ,#GT,#LT,#false
            ,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Sum {left = someStrategy, right = someStrategy}
    + Details:
        ()
* Step 2: DependencyPairs WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict TRS:
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            sortAll(@l) -> sortAll#1(@l)
            sortAll#1(::(@x,@xs)) -> sortAll#2(@x,@xs)
            sortAll#1(nil()) -> nil()
            sortAll#2(tuple#2(@vals,@key),@xs) -> ::(tuple#2(quicksort(@vals),@key),sortAll(@xs))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitAndSort(@l) -> sortAll(split(@l))
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and,#ckgt,#compare,#eq,#equal,#greater,append,append#1
            ,insert,insert#1,insert#2,insert#3,insert#4,quicksort,quicksort#1,quicksort#2,sortAll,sortAll#1,sortAll#2
            ,split,split#1,splitAndSort,splitqs,splitqs#1,splitqs#2,splitqs#3} and constructors {#0,#EQ,#GT,#LT,#false
            ,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        DependencyPairs {dpKind_ = DT}
    + Details:
        We add the following dependency tuples:
        
        Strict DPs
          #equal#(@x,@y) -> c_1(#eq#(@x,@y))
          #greater#(@x,@y) -> c_2(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
          append#1#(nil(),@ys) -> c_5()
          insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
          insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          insert#2#(nil(),@keyX,@valX,@x) -> c_9()
          insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                               ,@key1
                                                                               ,@ls
                                                                               ,@valX
                                                                               ,@vals1
                                                                               ,@x)
                                                                     ,#equal#(@key1,@keyX))
          insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          insert#4#(#true(),@key1,@ls,@valX,@vals1,@x) -> c_12()
          quicksort#(@l) -> c_13(quicksort#1#(@l))
          quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          quicksort#1#(nil()) -> c_15()
          quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                   ,quicksort#(@xs)
                                                   ,quicksort#(@ys))
          sortAll#(@l) -> c_17(sortAll#1#(@l))
          sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          sortAll#1#(nil()) -> c_19()
          sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          split#(@l) -> c_21(split#1#(@l))
          split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
          split#1#(nil()) -> c_23()
          splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
          splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x),splitqs#(@pivot,@xs))
          splitqs#1#(nil(),@pivot) -> c_27()
          splitqs#2#(tuple#2(@ls,@rs),@pivot,@x) -> c_28(splitqs#3#(#greater(@x,@pivot),@ls,@rs,@x)
                                                        ,#greater#(@x,@pivot))
          splitqs#3#(#false(),@ls,@rs,@x) -> c_29()
          splitqs#3#(#true(),@ls,@rs,@x) -> c_30()
        Weak DPs
          #and#(#false(),#false()) -> c_31()
          #and#(#false(),#true()) -> c_32()
          #and#(#true(),#false()) -> c_33()
          #and#(#true(),#true()) -> c_34()
          #ckgt#(#EQ()) -> c_35()
          #ckgt#(#GT()) -> c_36()
          #ckgt#(#LT()) -> c_37()
          #compare#(#0(),#0()) -> c_38()
          #compare#(#0(),#neg(@y)) -> c_39()
          #compare#(#0(),#pos(@y)) -> c_40()
          #compare#(#0(),#s(@y)) -> c_41()
          #compare#(#neg(@x),#0()) -> c_42()
          #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x))
          #compare#(#neg(@x),#pos(@y)) -> c_44()
          #compare#(#pos(@x),#0()) -> c_45()
          #compare#(#pos(@x),#neg(@y)) -> c_46()
          #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y))
          #compare#(#s(@x),#0()) -> c_48()
          #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y))
          #eq#(#0(),#0()) -> c_50()
          #eq#(#0(),#neg(@y)) -> c_51()
          #eq#(#0(),#pos(@y)) -> c_52()
          #eq#(#0(),#s(@y)) -> c_53()
          #eq#(#neg(@x),#0()) -> c_54()
          #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y))
          #eq#(#neg(@x),#pos(@y)) -> c_56()
          #eq#(#pos(@x),#0()) -> c_57()
          #eq#(#pos(@x),#neg(@y)) -> c_58()
          #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y))
          #eq#(#s(@x),#0()) -> c_60()
          #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y))
          #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                   ,#eq#(@x_1,@y_1)
                                                   ,#eq#(@x_2,@y_2))
          #eq#(::(@x_1,@x_2),nil()) -> c_63()
          #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64()
          #eq#(nil(),::(@y_1,@y_2)) -> c_65()
          #eq#(nil(),nil()) -> c_66()
          #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67()
          #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68()
          #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69()
          #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                             ,#eq#(@x_1,@y_1)
                                                             ,#eq#(@x_2,@y_2))
        
        and mark the set of starting terms.
* Step 3: UsableRules WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            #equal#(@x,@y) -> c_1(#eq#(@x,@y))
            #greater#(@x,@y) -> c_2(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
            append#1#(nil(),@ys) -> c_5()
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#2#(nil(),@keyX,@valX,@x) -> c_9()
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x)
                                                                       ,#equal#(@key1,@keyX))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            insert#4#(#true(),@key1,@ls,@valX,@vals1,@x) -> c_12()
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#1#(nil()) -> c_15()
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#1#(nil()) -> c_19()
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            split#1#(nil()) -> c_23()
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x),splitqs#(@pivot,@xs))
            splitqs#1#(nil(),@pivot) -> c_27()
            splitqs#2#(tuple#2(@ls,@rs),@pivot,@x) -> c_28(splitqs#3#(#greater(@x,@pivot),@ls,@rs,@x)
                                                          ,#greater#(@x,@pivot))
            splitqs#3#(#false(),@ls,@rs,@x) -> c_29()
            splitqs#3#(#true(),@ls,@rs,@x) -> c_30()
        - Weak DPs:
            #and#(#false(),#false()) -> c_31()
            #and#(#false(),#true()) -> c_32()
            #and#(#true(),#false()) -> c_33()
            #and#(#true(),#true()) -> c_34()
            #ckgt#(#EQ()) -> c_35()
            #ckgt#(#GT()) -> c_36()
            #ckgt#(#LT()) -> c_37()
            #compare#(#0(),#0()) -> c_38()
            #compare#(#0(),#neg(@y)) -> c_39()
            #compare#(#0(),#pos(@y)) -> c_40()
            #compare#(#0(),#s(@y)) -> c_41()
            #compare#(#neg(@x),#0()) -> c_42()
            #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_44()
            #compare#(#pos(@x),#0()) -> c_45()
            #compare#(#pos(@x),#neg(@y)) -> c_46()
            #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_48()
            #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y))
            #eq#(#0(),#0()) -> c_50()
            #eq#(#0(),#neg(@y)) -> c_51()
            #eq#(#0(),#pos(@y)) -> c_52()
            #eq#(#0(),#s(@y)) -> c_53()
            #eq#(#neg(@x),#0()) -> c_54()
            #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_56()
            #eq#(#pos(@x),#0()) -> c_57()
            #eq#(#pos(@x),#neg(@y)) -> c_58()
            #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_60()
            #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                     ,#eq#(@x_1,@y_1)
                                                     ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_63()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64()
            #eq#(nil(),::(@y_1,@y_2)) -> c_65()
            #eq#(nil(),nil()) -> c_66()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                               ,#eq#(@x_1,@y_1)
                                                               ,#eq#(@x_2,@y_2))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            sortAll(@l) -> sortAll#1(@l)
            sortAll#1(::(@x,@xs)) -> sortAll#2(@x,@xs)
            sortAll#1(nil()) -> nil()
            sortAll#2(tuple#2(@vals,@key),@xs) -> ::(tuple#2(quicksort(@vals),@key),sortAll(@xs))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitAndSort(@l) -> sortAll(split(@l))
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/2,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/2,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #and(#false(),#false()) -> #false()
          #and(#false(),#true()) -> #false()
          #and(#true(),#false()) -> #false()
          #and(#true(),#true()) -> #true()
          #ckgt(#EQ()) -> #false()
          #ckgt(#GT()) -> #true()
          #ckgt(#LT()) -> #false()
          #compare(#0(),#0()) -> #EQ()
          #compare(#0(),#neg(@y)) -> #GT()
          #compare(#0(),#pos(@y)) -> #LT()
          #compare(#0(),#s(@y)) -> #LT()
          #compare(#neg(@x),#0()) -> #LT()
          #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
          #compare(#neg(@x),#pos(@y)) -> #LT()
          #compare(#pos(@x),#0()) -> #GT()
          #compare(#pos(@x),#neg(@y)) -> #GT()
          #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
          #compare(#s(@x),#0()) -> #GT()
          #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
          #eq(#0(),#0()) -> #true()
          #eq(#0(),#neg(@y)) -> #false()
          #eq(#0(),#pos(@y)) -> #false()
          #eq(#0(),#s(@y)) -> #false()
          #eq(#neg(@x),#0()) -> #false()
          #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
          #eq(#neg(@x),#pos(@y)) -> #false()
          #eq(#pos(@x),#0()) -> #false()
          #eq(#pos(@x),#neg(@y)) -> #false()
          #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
          #eq(#s(@x),#0()) -> #false()
          #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #eq(::(@x_1,@x_2),nil()) -> #false()
          #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
          #eq(nil(),::(@y_1,@y_2)) -> #false()
          #eq(nil(),nil()) -> #true()
          #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
          #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #equal(@x,@y) -> #eq(@x,@y)
          #greater(@x,@y) -> #ckgt(#compare(@x,@y))
          append(@l,@ys) -> append#1(@l,@ys)
          append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
          append#1(nil(),@ys) -> @ys
          insert(@x,@l) -> insert#1(@x,@l,@x)
          insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
          insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
          insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
          insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                        ,@key1
                                                                        ,@ls
                                                                        ,@valX
                                                                        ,@vals1
                                                                        ,@x)
          insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
          insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
          quicksort(@l) -> quicksort#1(@l)
          quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
          quicksort#1(nil()) -> nil()
          quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
          split(@l) -> split#1(@l)
          split#1(::(@x,@xs)) -> insert(@x,split(@xs))
          split#1(nil()) -> nil()
          splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
          splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
          splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
          splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
          splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
          splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
          #and#(#false(),#false()) -> c_31()
          #and#(#false(),#true()) -> c_32()
          #and#(#true(),#false()) -> c_33()
          #and#(#true(),#true()) -> c_34()
          #ckgt#(#EQ()) -> c_35()
          #ckgt#(#GT()) -> c_36()
          #ckgt#(#LT()) -> c_37()
          #compare#(#0(),#0()) -> c_38()
          #compare#(#0(),#neg(@y)) -> c_39()
          #compare#(#0(),#pos(@y)) -> c_40()
          #compare#(#0(),#s(@y)) -> c_41()
          #compare#(#neg(@x),#0()) -> c_42()
          #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x))
          #compare#(#neg(@x),#pos(@y)) -> c_44()
          #compare#(#pos(@x),#0()) -> c_45()
          #compare#(#pos(@x),#neg(@y)) -> c_46()
          #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y))
          #compare#(#s(@x),#0()) -> c_48()
          #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y))
          #eq#(#0(),#0()) -> c_50()
          #eq#(#0(),#neg(@y)) -> c_51()
          #eq#(#0(),#pos(@y)) -> c_52()
          #eq#(#0(),#s(@y)) -> c_53()
          #eq#(#neg(@x),#0()) -> c_54()
          #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y))
          #eq#(#neg(@x),#pos(@y)) -> c_56()
          #eq#(#pos(@x),#0()) -> c_57()
          #eq#(#pos(@x),#neg(@y)) -> c_58()
          #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y))
          #eq#(#s(@x),#0()) -> c_60()
          #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y))
          #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                   ,#eq#(@x_1,@y_1)
                                                   ,#eq#(@x_2,@y_2))
          #eq#(::(@x_1,@x_2),nil()) -> c_63()
          #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64()
          #eq#(nil(),::(@y_1,@y_2)) -> c_65()
          #eq#(nil(),nil()) -> c_66()
          #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67()
          #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68()
          #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69()
          #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                             ,#eq#(@x_1,@y_1)
                                                             ,#eq#(@x_2,@y_2))
          #equal#(@x,@y) -> c_1(#eq#(@x,@y))
          #greater#(@x,@y) -> c_2(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
          append#1#(nil(),@ys) -> c_5()
          insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
          insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          insert#2#(nil(),@keyX,@valX,@x) -> c_9()
          insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                               ,@key1
                                                                               ,@ls
                                                                               ,@valX
                                                                               ,@vals1
                                                                               ,@x)
                                                                     ,#equal#(@key1,@keyX))
          insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          insert#4#(#true(),@key1,@ls,@valX,@vals1,@x) -> c_12()
          quicksort#(@l) -> c_13(quicksort#1#(@l))
          quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          quicksort#1#(nil()) -> c_15()
          quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                   ,quicksort#(@xs)
                                                   ,quicksort#(@ys))
          sortAll#(@l) -> c_17(sortAll#1#(@l))
          sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          sortAll#1#(nil()) -> c_19()
          sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          split#(@l) -> c_21(split#1#(@l))
          split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
          split#1#(nil()) -> c_23()
          splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
          splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x),splitqs#(@pivot,@xs))
          splitqs#1#(nil(),@pivot) -> c_27()
          splitqs#2#(tuple#2(@ls,@rs),@pivot,@x) -> c_28(splitqs#3#(#greater(@x,@pivot),@ls,@rs,@x)
                                                        ,#greater#(@x,@pivot))
          splitqs#3#(#false(),@ls,@rs,@x) -> c_29()
          splitqs#3#(#true(),@ls,@rs,@x) -> c_30()
* Step 4: PredecessorEstimation WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            #equal#(@x,@y) -> c_1(#eq#(@x,@y))
            #greater#(@x,@y) -> c_2(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
            append#1#(nil(),@ys) -> c_5()
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#2#(nil(),@keyX,@valX,@x) -> c_9()
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x)
                                                                       ,#equal#(@key1,@keyX))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            insert#4#(#true(),@key1,@ls,@valX,@vals1,@x) -> c_12()
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#1#(nil()) -> c_15()
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#1#(nil()) -> c_19()
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            split#1#(nil()) -> c_23()
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x),splitqs#(@pivot,@xs))
            splitqs#1#(nil(),@pivot) -> c_27()
            splitqs#2#(tuple#2(@ls,@rs),@pivot,@x) -> c_28(splitqs#3#(#greater(@x,@pivot),@ls,@rs,@x)
                                                          ,#greater#(@x,@pivot))
            splitqs#3#(#false(),@ls,@rs,@x) -> c_29()
            splitqs#3#(#true(),@ls,@rs,@x) -> c_30()
        - Weak DPs:
            #and#(#false(),#false()) -> c_31()
            #and#(#false(),#true()) -> c_32()
            #and#(#true(),#false()) -> c_33()
            #and#(#true(),#true()) -> c_34()
            #ckgt#(#EQ()) -> c_35()
            #ckgt#(#GT()) -> c_36()
            #ckgt#(#LT()) -> c_37()
            #compare#(#0(),#0()) -> c_38()
            #compare#(#0(),#neg(@y)) -> c_39()
            #compare#(#0(),#pos(@y)) -> c_40()
            #compare#(#0(),#s(@y)) -> c_41()
            #compare#(#neg(@x),#0()) -> c_42()
            #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_44()
            #compare#(#pos(@x),#0()) -> c_45()
            #compare#(#pos(@x),#neg(@y)) -> c_46()
            #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_48()
            #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y))
            #eq#(#0(),#0()) -> c_50()
            #eq#(#0(),#neg(@y)) -> c_51()
            #eq#(#0(),#pos(@y)) -> c_52()
            #eq#(#0(),#s(@y)) -> c_53()
            #eq#(#neg(@x),#0()) -> c_54()
            #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_56()
            #eq#(#pos(@x),#0()) -> c_57()
            #eq#(#pos(@x),#neg(@y)) -> c_58()
            #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_60()
            #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                     ,#eq#(@x_1,@y_1)
                                                     ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_63()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64()
            #eq#(nil(),::(@y_1,@y_2)) -> c_65()
            #eq#(nil(),nil()) -> c_66()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                               ,#eq#(@x_1,@y_1)
                                                               ,#eq#(@x_2,@y_2))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/2,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/2,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {1,2,5,9,12,15,19,23,27,29,30}
        by application of
          Pre({1,2,5,9,12,15,19,23,27,29,30}) = {3,7,10,13,17,21,25,28}.
        Here rules are labelled as follows:
          1: #equal#(@x,@y) -> c_1(#eq#(@x,@y))
          2: #greater#(@x,@y) -> c_2(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          3: append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          4: append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
          5: append#1#(nil(),@ys) -> c_5()
          6: insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          7: insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
          8: insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          9: insert#2#(nil(),@keyX,@valX,@x) -> c_9()
          10: insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x)
                                                                         ,#equal#(@key1,@keyX))
          11: insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          12: insert#4#(#true(),@key1,@ls,@valX,@vals1,@x) -> c_12()
          13: quicksort#(@l) -> c_13(quicksort#1#(@l))
          14: quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          15: quicksort#1#(nil()) -> c_15()
          16: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                       ,quicksort#(@xs)
                                                       ,quicksort#(@ys))
          17: sortAll#(@l) -> c_17(sortAll#1#(@l))
          18: sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          19: sortAll#1#(nil()) -> c_19()
          20: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          21: split#(@l) -> c_21(split#1#(@l))
          22: split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
          23: split#1#(nil()) -> c_23()
          24: splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
          25: splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          26: splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x),splitqs#(@pivot,@xs))
          27: splitqs#1#(nil(),@pivot) -> c_27()
          28: splitqs#2#(tuple#2(@ls,@rs),@pivot,@x) -> c_28(splitqs#3#(#greater(@x,@pivot),@ls,@rs,@x)
                                                            ,#greater#(@x,@pivot))
          29: splitqs#3#(#false(),@ls,@rs,@x) -> c_29()
          30: splitqs#3#(#true(),@ls,@rs,@x) -> c_30()
          31: #and#(#false(),#false()) -> c_31()
          32: #and#(#false(),#true()) -> c_32()
          33: #and#(#true(),#false()) -> c_33()
          34: #and#(#true(),#true()) -> c_34()
          35: #ckgt#(#EQ()) -> c_35()
          36: #ckgt#(#GT()) -> c_36()
          37: #ckgt#(#LT()) -> c_37()
          38: #compare#(#0(),#0()) -> c_38()
          39: #compare#(#0(),#neg(@y)) -> c_39()
          40: #compare#(#0(),#pos(@y)) -> c_40()
          41: #compare#(#0(),#s(@y)) -> c_41()
          42: #compare#(#neg(@x),#0()) -> c_42()
          43: #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x))
          44: #compare#(#neg(@x),#pos(@y)) -> c_44()
          45: #compare#(#pos(@x),#0()) -> c_45()
          46: #compare#(#pos(@x),#neg(@y)) -> c_46()
          47: #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y))
          48: #compare#(#s(@x),#0()) -> c_48()
          49: #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y))
          50: #eq#(#0(),#0()) -> c_50()
          51: #eq#(#0(),#neg(@y)) -> c_51()
          52: #eq#(#0(),#pos(@y)) -> c_52()
          53: #eq#(#0(),#s(@y)) -> c_53()
          54: #eq#(#neg(@x),#0()) -> c_54()
          55: #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y))
          56: #eq#(#neg(@x),#pos(@y)) -> c_56()
          57: #eq#(#pos(@x),#0()) -> c_57()
          58: #eq#(#pos(@x),#neg(@y)) -> c_58()
          59: #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y))
          60: #eq#(#s(@x),#0()) -> c_60()
          61: #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y))
          62: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                       ,#eq#(@x_1,@y_1)
                                                       ,#eq#(@x_2,@y_2))
          63: #eq#(::(@x_1,@x_2),nil()) -> c_63()
          64: #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64()
          65: #eq#(nil(),::(@y_1,@y_2)) -> c_65()
          66: #eq#(nil(),nil()) -> c_66()
          67: #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67()
          68: #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68()
          69: #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69()
          70: #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                 ,#eq#(@x_1,@y_1)
                                                                 ,#eq#(@x_2,@y_2))
* Step 5: PredecessorEstimation WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x)
                                                                       ,#equal#(@key1,@keyX))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x),splitqs#(@pivot,@xs))
            splitqs#2#(tuple#2(@ls,@rs),@pivot,@x) -> c_28(splitqs#3#(#greater(@x,@pivot),@ls,@rs,@x)
                                                          ,#greater#(@x,@pivot))
        - Weak DPs:
            #and#(#false(),#false()) -> c_31()
            #and#(#false(),#true()) -> c_32()
            #and#(#true(),#false()) -> c_33()
            #and#(#true(),#true()) -> c_34()
            #ckgt#(#EQ()) -> c_35()
            #ckgt#(#GT()) -> c_36()
            #ckgt#(#LT()) -> c_37()
            #compare#(#0(),#0()) -> c_38()
            #compare#(#0(),#neg(@y)) -> c_39()
            #compare#(#0(),#pos(@y)) -> c_40()
            #compare#(#0(),#s(@y)) -> c_41()
            #compare#(#neg(@x),#0()) -> c_42()
            #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_44()
            #compare#(#pos(@x),#0()) -> c_45()
            #compare#(#pos(@x),#neg(@y)) -> c_46()
            #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_48()
            #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y))
            #eq#(#0(),#0()) -> c_50()
            #eq#(#0(),#neg(@y)) -> c_51()
            #eq#(#0(),#pos(@y)) -> c_52()
            #eq#(#0(),#s(@y)) -> c_53()
            #eq#(#neg(@x),#0()) -> c_54()
            #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_56()
            #eq#(#pos(@x),#0()) -> c_57()
            #eq#(#pos(@x),#neg(@y)) -> c_58()
            #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_60()
            #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                     ,#eq#(@x_1,@y_1)
                                                     ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_63()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64()
            #eq#(nil(),::(@y_1,@y_2)) -> c_65()
            #eq#(nil(),nil()) -> c_66()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                               ,#eq#(@x_1,@y_1)
                                                               ,#eq#(@x_2,@y_2))
            #equal#(@x,@y) -> c_1(#eq#(@x,@y))
            #greater#(@x,@y) -> c_2(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            append#1#(nil(),@ys) -> c_5()
            insert#2#(nil(),@keyX,@valX,@x) -> c_9()
            insert#4#(#true(),@key1,@ls,@valX,@vals1,@x) -> c_12()
            quicksort#1#(nil()) -> c_15()
            sortAll#1#(nil()) -> c_19()
            split#1#(nil()) -> c_23()
            splitqs#1#(nil(),@pivot) -> c_27()
            splitqs#3#(#false(),@ls,@rs,@x) -> c_29()
            splitqs#3#(#true(),@ls,@rs,@x) -> c_30()
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/2,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/2,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {19}
        by application of
          Pre({19}) = {18}.
        Here rules are labelled as follows:
          1: append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          2: append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
          3: insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          4: insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
          5: insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          6: insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                  ,@key1
                                                                                  ,@ls
                                                                                  ,@valX
                                                                                  ,@vals1
                                                                                  ,@x)
                                                                        ,#equal#(@key1,@keyX))
          7: insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          8: quicksort#(@l) -> c_13(quicksort#1#(@l))
          9: quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          10: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                       ,quicksort#(@xs)
                                                       ,quicksort#(@ys))
          11: sortAll#(@l) -> c_17(sortAll#1#(@l))
          12: sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          13: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          14: split#(@l) -> c_21(split#1#(@l))
          15: split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
          16: splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
          17: splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          18: splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x),splitqs#(@pivot,@xs))
          19: splitqs#2#(tuple#2(@ls,@rs),@pivot,@x) -> c_28(splitqs#3#(#greater(@x,@pivot),@ls,@rs,@x)
                                                            ,#greater#(@x,@pivot))
          20: #and#(#false(),#false()) -> c_31()
          21: #and#(#false(),#true()) -> c_32()
          22: #and#(#true(),#false()) -> c_33()
          23: #and#(#true(),#true()) -> c_34()
          24: #ckgt#(#EQ()) -> c_35()
          25: #ckgt#(#GT()) -> c_36()
          26: #ckgt#(#LT()) -> c_37()
          27: #compare#(#0(),#0()) -> c_38()
          28: #compare#(#0(),#neg(@y)) -> c_39()
          29: #compare#(#0(),#pos(@y)) -> c_40()
          30: #compare#(#0(),#s(@y)) -> c_41()
          31: #compare#(#neg(@x),#0()) -> c_42()
          32: #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x))
          33: #compare#(#neg(@x),#pos(@y)) -> c_44()
          34: #compare#(#pos(@x),#0()) -> c_45()
          35: #compare#(#pos(@x),#neg(@y)) -> c_46()
          36: #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y))
          37: #compare#(#s(@x),#0()) -> c_48()
          38: #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y))
          39: #eq#(#0(),#0()) -> c_50()
          40: #eq#(#0(),#neg(@y)) -> c_51()
          41: #eq#(#0(),#pos(@y)) -> c_52()
          42: #eq#(#0(),#s(@y)) -> c_53()
          43: #eq#(#neg(@x),#0()) -> c_54()
          44: #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y))
          45: #eq#(#neg(@x),#pos(@y)) -> c_56()
          46: #eq#(#pos(@x),#0()) -> c_57()
          47: #eq#(#pos(@x),#neg(@y)) -> c_58()
          48: #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y))
          49: #eq#(#s(@x),#0()) -> c_60()
          50: #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y))
          51: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                       ,#eq#(@x_1,@y_1)
                                                       ,#eq#(@x_2,@y_2))
          52: #eq#(::(@x_1,@x_2),nil()) -> c_63()
          53: #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64()
          54: #eq#(nil(),::(@y_1,@y_2)) -> c_65()
          55: #eq#(nil(),nil()) -> c_66()
          56: #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67()
          57: #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68()
          58: #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69()
          59: #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                 ,#eq#(@x_1,@y_1)
                                                                 ,#eq#(@x_2,@y_2))
          60: #equal#(@x,@y) -> c_1(#eq#(@x,@y))
          61: #greater#(@x,@y) -> c_2(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          62: append#1#(nil(),@ys) -> c_5()
          63: insert#2#(nil(),@keyX,@valX,@x) -> c_9()
          64: insert#4#(#true(),@key1,@ls,@valX,@vals1,@x) -> c_12()
          65: quicksort#1#(nil()) -> c_15()
          66: sortAll#1#(nil()) -> c_19()
          67: split#1#(nil()) -> c_23()
          68: splitqs#1#(nil(),@pivot) -> c_27()
          69: splitqs#3#(#false(),@ls,@rs,@x) -> c_29()
          70: splitqs#3#(#true(),@ls,@rs,@x) -> c_30()
* Step 6: RemoveWeakSuffixes WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x)
                                                                       ,#equal#(@key1,@keyX))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x),splitqs#(@pivot,@xs))
        - Weak DPs:
            #and#(#false(),#false()) -> c_31()
            #and#(#false(),#true()) -> c_32()
            #and#(#true(),#false()) -> c_33()
            #and#(#true(),#true()) -> c_34()
            #ckgt#(#EQ()) -> c_35()
            #ckgt#(#GT()) -> c_36()
            #ckgt#(#LT()) -> c_37()
            #compare#(#0(),#0()) -> c_38()
            #compare#(#0(),#neg(@y)) -> c_39()
            #compare#(#0(),#pos(@y)) -> c_40()
            #compare#(#0(),#s(@y)) -> c_41()
            #compare#(#neg(@x),#0()) -> c_42()
            #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x))
            #compare#(#neg(@x),#pos(@y)) -> c_44()
            #compare#(#pos(@x),#0()) -> c_45()
            #compare#(#pos(@x),#neg(@y)) -> c_46()
            #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y))
            #compare#(#s(@x),#0()) -> c_48()
            #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y))
            #eq#(#0(),#0()) -> c_50()
            #eq#(#0(),#neg(@y)) -> c_51()
            #eq#(#0(),#pos(@y)) -> c_52()
            #eq#(#0(),#s(@y)) -> c_53()
            #eq#(#neg(@x),#0()) -> c_54()
            #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y))
            #eq#(#neg(@x),#pos(@y)) -> c_56()
            #eq#(#pos(@x),#0()) -> c_57()
            #eq#(#pos(@x),#neg(@y)) -> c_58()
            #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y))
            #eq#(#s(@x),#0()) -> c_60()
            #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y))
            #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                     ,#eq#(@x_1,@y_1)
                                                     ,#eq#(@x_2,@y_2))
            #eq#(::(@x_1,@x_2),nil()) -> c_63()
            #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64()
            #eq#(nil(),::(@y_1,@y_2)) -> c_65()
            #eq#(nil(),nil()) -> c_66()
            #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67()
            #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68()
            #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69()
            #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                               ,#eq#(@x_1,@y_1)
                                                               ,#eq#(@x_2,@y_2))
            #equal#(@x,@y) -> c_1(#eq#(@x,@y))
            #greater#(@x,@y) -> c_2(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
            append#1#(nil(),@ys) -> c_5()
            insert#2#(nil(),@keyX,@valX,@x) -> c_9()
            insert#4#(#true(),@key1,@ls,@valX,@vals1,@x) -> c_12()
            quicksort#1#(nil()) -> c_15()
            sortAll#1#(nil()) -> c_19()
            split#1#(nil()) -> c_23()
            splitqs#1#(nil(),@pivot) -> c_27()
            splitqs#2#(tuple#2(@ls,@rs),@pivot,@x) -> c_28(splitqs#3#(#greater(@x,@pivot),@ls,@rs,@x)
                                                          ,#greater#(@x,@pivot))
            splitqs#3#(#false(),@ls,@rs,@x) -> c_29()
            splitqs#3#(#true(),@ls,@rs,@x) -> c_30()
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/2,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/2,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:append#(@l,@ys) -> c_3(append#1#(@l,@ys))
             -->_1 append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys)):2
             -->_1 append#1#(nil(),@ys) -> c_5():61
          
          2:S:append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
             -->_1 append#(@l,@ys) -> c_3(append#1#(@l,@ys)):1
          
          3:S:insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
             -->_1 insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x)):4
          
          4:S:insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
             -->_1 insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x)):5
             -->_1 insert#2#(nil(),@keyX,@valX,@x) -> c_9():62
          
          5:S:insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
             -->_1 insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                        ,@key1
                                                                                        ,@ls
                                                                                        ,@valX
                                                                                        ,@vals1
                                                                                        ,@x)
                                                                              ,#equal#(@key1,@keyX)):6
          
          6:S:insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x)
                                                                         ,#equal#(@key1,@keyX))
             -->_2 #equal#(@x,@y) -> c_1(#eq#(@x,@y)):59
             -->_1 insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls)):7
             -->_1 insert#4#(#true(),@key1,@ls,@valX,@vals1,@x) -> c_12():63
          
          7:S:insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):3
          
          8:S:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):9
             -->_1 quicksort#1#(nil()) -> c_15():64
          
          9:S:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):17
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                            ,quicksort#(@xs)
                                                            ,quicksort#(@ys)):10
          
          10:S:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                        ,quicksort#(@xs)
                                                        ,quicksort#(@ys))
             -->_3 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
             -->_1 append#(@l,@ys) -> c_3(append#1#(@l,@ys)):1
          
          11:S:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):12
             -->_1 sortAll#1#(nil()) -> c_19():65
          
          12:S:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):13
          
          13:S:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):11
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
          
          14:S:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs)):15
             -->_1 split#1#(nil()) -> c_23():66
          
          15:S:split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
             -->_2 split#(@l) -> c_21(split#1#(@l)):14
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):3
          
          16:S:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_2 split#(@l) -> c_21(split#1#(@l)):14
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):11
          
          17:S:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x)
                                                        ,splitqs#(@pivot,@xs)):18
             -->_1 splitqs#1#(nil(),@pivot) -> c_27():67
          
          18:S:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x),splitqs#(@pivot,@xs))
             -->_1 splitqs#2#(tuple#2(@ls,@rs),@pivot,@x) -> c_28(splitqs#3#(#greater(@x,@pivot),@ls,@rs,@x)
                                                                 ,#greater#(@x,@pivot)):68
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):17
          
          19:W:#and#(#false(),#false()) -> c_31()
             
          
          20:W:#and#(#false(),#true()) -> c_32()
             
          
          21:W:#and#(#true(),#false()) -> c_33()
             
          
          22:W:#and#(#true(),#true()) -> c_34()
             
          
          23:W:#ckgt#(#EQ()) -> c_35()
             
          
          24:W:#ckgt#(#GT()) -> c_36()
             
          
          25:W:#ckgt#(#LT()) -> c_37()
             
          
          26:W:#compare#(#0(),#0()) -> c_38()
             
          
          27:W:#compare#(#0(),#neg(@y)) -> c_39()
             
          
          28:W:#compare#(#0(),#pos(@y)) -> c_40()
             
          
          29:W:#compare#(#0(),#s(@y)) -> c_41()
             
          
          30:W:#compare#(#neg(@x),#0()) -> c_42()
             
          
          31:W:#compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x))
             -->_1 #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y)):37
             -->_1 #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y)):35
             -->_1 #compare#(#s(@x),#0()) -> c_48():36
             -->_1 #compare#(#pos(@x),#neg(@y)) -> c_46():34
             -->_1 #compare#(#pos(@x),#0()) -> c_45():33
             -->_1 #compare#(#neg(@x),#pos(@y)) -> c_44():32
             -->_1 #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x)):31
             -->_1 #compare#(#neg(@x),#0()) -> c_42():30
             -->_1 #compare#(#0(),#s(@y)) -> c_41():29
             -->_1 #compare#(#0(),#pos(@y)) -> c_40():28
             -->_1 #compare#(#0(),#neg(@y)) -> c_39():27
             -->_1 #compare#(#0(),#0()) -> c_38():26
          
          32:W:#compare#(#neg(@x),#pos(@y)) -> c_44()
             
          
          33:W:#compare#(#pos(@x),#0()) -> c_45()
             
          
          34:W:#compare#(#pos(@x),#neg(@y)) -> c_46()
             
          
          35:W:#compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y))
             -->_1 #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y)):37
             -->_1 #compare#(#s(@x),#0()) -> c_48():36
             -->_1 #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y)):35
             -->_1 #compare#(#pos(@x),#neg(@y)) -> c_46():34
             -->_1 #compare#(#pos(@x),#0()) -> c_45():33
             -->_1 #compare#(#neg(@x),#pos(@y)) -> c_44():32
             -->_1 #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x)):31
             -->_1 #compare#(#neg(@x),#0()) -> c_42():30
             -->_1 #compare#(#0(),#s(@y)) -> c_41():29
             -->_1 #compare#(#0(),#pos(@y)) -> c_40():28
             -->_1 #compare#(#0(),#neg(@y)) -> c_39():27
             -->_1 #compare#(#0(),#0()) -> c_38():26
          
          36:W:#compare#(#s(@x),#0()) -> c_48()
             
          
          37:W:#compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y))
             -->_1 #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y)):37
             -->_1 #compare#(#s(@x),#0()) -> c_48():36
             -->_1 #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y)):35
             -->_1 #compare#(#pos(@x),#neg(@y)) -> c_46():34
             -->_1 #compare#(#pos(@x),#0()) -> c_45():33
             -->_1 #compare#(#neg(@x),#pos(@y)) -> c_44():32
             -->_1 #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x)):31
             -->_1 #compare#(#neg(@x),#0()) -> c_42():30
             -->_1 #compare#(#0(),#s(@y)) -> c_41():29
             -->_1 #compare#(#0(),#pos(@y)) -> c_40():28
             -->_1 #compare#(#0(),#neg(@y)) -> c_39():27
             -->_1 #compare#(#0(),#0()) -> c_38():26
          
          38:W:#eq#(#0(),#0()) -> c_50()
             
          
          39:W:#eq#(#0(),#neg(@y)) -> c_51()
             
          
          40:W:#eq#(#0(),#pos(@y)) -> c_52()
             
          
          41:W:#eq#(#0(),#s(@y)) -> c_53()
             
          
          42:W:#eq#(#neg(@x),#0()) -> c_54()
             
          
          43:W:#eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y))
             -->_1 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                      ,#eq#(@x_1,@y_1)
                                                                      ,#eq#(@x_2,@y_2)):58
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):50
             -->_1 #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y)):49
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y)):47
             -->_1 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69():57
             -->_1 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68():56
             -->_1 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67():55
             -->_1 #eq#(nil(),nil()) -> c_66():54
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_65():53
             -->_1 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64():52
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_63():51
             -->_1 #eq#(#s(@x),#0()) -> c_60():48
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_58():46
             -->_1 #eq#(#pos(@x),#0()) -> c_57():45
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_56():44
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y)):43
             -->_1 #eq#(#neg(@x),#0()) -> c_54():42
             -->_1 #eq#(#0(),#s(@y)) -> c_53():41
             -->_1 #eq#(#0(),#pos(@y)) -> c_52():40
             -->_1 #eq#(#0(),#neg(@y)) -> c_51():39
             -->_1 #eq#(#0(),#0()) -> c_50():38
          
          44:W:#eq#(#neg(@x),#pos(@y)) -> c_56()
             
          
          45:W:#eq#(#pos(@x),#0()) -> c_57()
             
          
          46:W:#eq#(#pos(@x),#neg(@y)) -> c_58()
             
          
          47:W:#eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y))
             -->_1 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                      ,#eq#(@x_1,@y_1)
                                                                      ,#eq#(@x_2,@y_2)):58
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):50
             -->_1 #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y)):49
             -->_1 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69():57
             -->_1 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68():56
             -->_1 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67():55
             -->_1 #eq#(nil(),nil()) -> c_66():54
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_65():53
             -->_1 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64():52
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_63():51
             -->_1 #eq#(#s(@x),#0()) -> c_60():48
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y)):47
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_58():46
             -->_1 #eq#(#pos(@x),#0()) -> c_57():45
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_56():44
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y)):43
             -->_1 #eq#(#neg(@x),#0()) -> c_54():42
             -->_1 #eq#(#0(),#s(@y)) -> c_53():41
             -->_1 #eq#(#0(),#pos(@y)) -> c_52():40
             -->_1 #eq#(#0(),#neg(@y)) -> c_51():39
             -->_1 #eq#(#0(),#0()) -> c_50():38
          
          48:W:#eq#(#s(@x),#0()) -> c_60()
             
          
          49:W:#eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y))
             -->_1 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                      ,#eq#(@x_1,@y_1)
                                                                      ,#eq#(@x_2,@y_2)):58
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):50
             -->_1 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69():57
             -->_1 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68():56
             -->_1 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67():55
             -->_1 #eq#(nil(),nil()) -> c_66():54
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_65():53
             -->_1 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64():52
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_63():51
             -->_1 #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y)):49
             -->_1 #eq#(#s(@x),#0()) -> c_60():48
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y)):47
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_58():46
             -->_1 #eq#(#pos(@x),#0()) -> c_57():45
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_56():44
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y)):43
             -->_1 #eq#(#neg(@x),#0()) -> c_54():42
             -->_1 #eq#(#0(),#s(@y)) -> c_53():41
             -->_1 #eq#(#0(),#pos(@y)) -> c_52():40
             -->_1 #eq#(#0(),#neg(@y)) -> c_51():39
             -->_1 #eq#(#0(),#0()) -> c_50():38
          
          50:W:#eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                        ,#eq#(@x_1,@y_1)
                                                        ,#eq#(@x_2,@y_2))
             -->_3 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                      ,#eq#(@x_1,@y_1)
                                                                      ,#eq#(@x_2,@y_2)):58
             -->_2 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                      ,#eq#(@x_1,@y_1)
                                                                      ,#eq#(@x_2,@y_2)):58
             -->_3 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69():57
             -->_2 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69():57
             -->_3 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68():56
             -->_2 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68():56
             -->_3 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67():55
             -->_2 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67():55
             -->_3 #eq#(nil(),nil()) -> c_66():54
             -->_2 #eq#(nil(),nil()) -> c_66():54
             -->_3 #eq#(nil(),::(@y_1,@y_2)) -> c_65():53
             -->_2 #eq#(nil(),::(@y_1,@y_2)) -> c_65():53
             -->_3 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64():52
             -->_2 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64():52
             -->_3 #eq#(::(@x_1,@x_2),nil()) -> c_63():51
             -->_2 #eq#(::(@x_1,@x_2),nil()) -> c_63():51
             -->_3 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):50
             -->_2 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):50
             -->_3 #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y)):49
             -->_2 #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y)):49
             -->_3 #eq#(#s(@x),#0()) -> c_60():48
             -->_2 #eq#(#s(@x),#0()) -> c_60():48
             -->_3 #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y)):47
             -->_2 #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y)):47
             -->_3 #eq#(#pos(@x),#neg(@y)) -> c_58():46
             -->_2 #eq#(#pos(@x),#neg(@y)) -> c_58():46
             -->_3 #eq#(#pos(@x),#0()) -> c_57():45
             -->_2 #eq#(#pos(@x),#0()) -> c_57():45
             -->_3 #eq#(#neg(@x),#pos(@y)) -> c_56():44
             -->_2 #eq#(#neg(@x),#pos(@y)) -> c_56():44
             -->_3 #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y)):43
             -->_2 #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y)):43
             -->_3 #eq#(#neg(@x),#0()) -> c_54():42
             -->_2 #eq#(#neg(@x),#0()) -> c_54():42
             -->_3 #eq#(#0(),#s(@y)) -> c_53():41
             -->_2 #eq#(#0(),#s(@y)) -> c_53():41
             -->_3 #eq#(#0(),#pos(@y)) -> c_52():40
             -->_2 #eq#(#0(),#pos(@y)) -> c_52():40
             -->_3 #eq#(#0(),#neg(@y)) -> c_51():39
             -->_2 #eq#(#0(),#neg(@y)) -> c_51():39
             -->_3 #eq#(#0(),#0()) -> c_50():38
             -->_2 #eq#(#0(),#0()) -> c_50():38
             -->_1 #and#(#true(),#true()) -> c_34():22
             -->_1 #and#(#true(),#false()) -> c_33():21
             -->_1 #and#(#false(),#true()) -> c_32():20
             -->_1 #and#(#false(),#false()) -> c_31():19
          
          51:W:#eq#(::(@x_1,@x_2),nil()) -> c_63()
             
          
          52:W:#eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64()
             
          
          53:W:#eq#(nil(),::(@y_1,@y_2)) -> c_65()
             
          
          54:W:#eq#(nil(),nil()) -> c_66()
             
          
          55:W:#eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67()
             
          
          56:W:#eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68()
             
          
          57:W:#eq#(tuple#2(@x_1,@x_2),nil()) -> c_69()
             
          
          58:W:#eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                  ,#eq#(@x_1,@y_1)
                                                                  ,#eq#(@x_2,@y_2))
             -->_3 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                      ,#eq#(@x_1,@y_1)
                                                                      ,#eq#(@x_2,@y_2)):58
             -->_2 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                      ,#eq#(@x_1,@y_1)
                                                                      ,#eq#(@x_2,@y_2)):58
             -->_3 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69():57
             -->_2 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69():57
             -->_3 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68():56
             -->_2 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68():56
             -->_3 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67():55
             -->_2 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67():55
             -->_3 #eq#(nil(),nil()) -> c_66():54
             -->_2 #eq#(nil(),nil()) -> c_66():54
             -->_3 #eq#(nil(),::(@y_1,@y_2)) -> c_65():53
             -->_2 #eq#(nil(),::(@y_1,@y_2)) -> c_65():53
             -->_3 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64():52
             -->_2 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64():52
             -->_3 #eq#(::(@x_1,@x_2),nil()) -> c_63():51
             -->_2 #eq#(::(@x_1,@x_2),nil()) -> c_63():51
             -->_3 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):50
             -->_2 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):50
             -->_3 #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y)):49
             -->_2 #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y)):49
             -->_3 #eq#(#s(@x),#0()) -> c_60():48
             -->_2 #eq#(#s(@x),#0()) -> c_60():48
             -->_3 #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y)):47
             -->_2 #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y)):47
             -->_3 #eq#(#pos(@x),#neg(@y)) -> c_58():46
             -->_2 #eq#(#pos(@x),#neg(@y)) -> c_58():46
             -->_3 #eq#(#pos(@x),#0()) -> c_57():45
             -->_2 #eq#(#pos(@x),#0()) -> c_57():45
             -->_3 #eq#(#neg(@x),#pos(@y)) -> c_56():44
             -->_2 #eq#(#neg(@x),#pos(@y)) -> c_56():44
             -->_3 #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y)):43
             -->_2 #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y)):43
             -->_3 #eq#(#neg(@x),#0()) -> c_54():42
             -->_2 #eq#(#neg(@x),#0()) -> c_54():42
             -->_3 #eq#(#0(),#s(@y)) -> c_53():41
             -->_2 #eq#(#0(),#s(@y)) -> c_53():41
             -->_3 #eq#(#0(),#pos(@y)) -> c_52():40
             -->_2 #eq#(#0(),#pos(@y)) -> c_52():40
             -->_3 #eq#(#0(),#neg(@y)) -> c_51():39
             -->_2 #eq#(#0(),#neg(@y)) -> c_51():39
             -->_3 #eq#(#0(),#0()) -> c_50():38
             -->_2 #eq#(#0(),#0()) -> c_50():38
             -->_1 #and#(#true(),#true()) -> c_34():22
             -->_1 #and#(#true(),#false()) -> c_33():21
             -->_1 #and#(#false(),#true()) -> c_32():20
             -->_1 #and#(#false(),#false()) -> c_31():19
          
          59:W:#equal#(@x,@y) -> c_1(#eq#(@x,@y))
             -->_1 #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                      ,#eq#(@x_1,@y_1)
                                                                      ,#eq#(@x_2,@y_2)):58
             -->_1 #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69():57
             -->_1 #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68():56
             -->_1 #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67():55
             -->_1 #eq#(nil(),nil()) -> c_66():54
             -->_1 #eq#(nil(),::(@y_1,@y_2)) -> c_65():53
             -->_1 #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64():52
             -->_1 #eq#(::(@x_1,@x_2),nil()) -> c_63():51
             -->_1 #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                            ,#eq#(@x_1,@y_1)
                                                            ,#eq#(@x_2,@y_2)):50
             -->_1 #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y)):49
             -->_1 #eq#(#s(@x),#0()) -> c_60():48
             -->_1 #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y)):47
             -->_1 #eq#(#pos(@x),#neg(@y)) -> c_58():46
             -->_1 #eq#(#pos(@x),#0()) -> c_57():45
             -->_1 #eq#(#neg(@x),#pos(@y)) -> c_56():44
             -->_1 #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y)):43
             -->_1 #eq#(#neg(@x),#0()) -> c_54():42
             -->_1 #eq#(#0(),#s(@y)) -> c_53():41
             -->_1 #eq#(#0(),#pos(@y)) -> c_52():40
             -->_1 #eq#(#0(),#neg(@y)) -> c_51():39
             -->_1 #eq#(#0(),#0()) -> c_50():38
          
          60:W:#greater#(@x,@y) -> c_2(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
             -->_2 #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y)):37
             -->_2 #compare#(#s(@x),#0()) -> c_48():36
             -->_2 #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y)):35
             -->_2 #compare#(#pos(@x),#neg(@y)) -> c_46():34
             -->_2 #compare#(#pos(@x),#0()) -> c_45():33
             -->_2 #compare#(#neg(@x),#pos(@y)) -> c_44():32
             -->_2 #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x)):31
             -->_2 #compare#(#neg(@x),#0()) -> c_42():30
             -->_2 #compare#(#0(),#s(@y)) -> c_41():29
             -->_2 #compare#(#0(),#pos(@y)) -> c_40():28
             -->_2 #compare#(#0(),#neg(@y)) -> c_39():27
             -->_2 #compare#(#0(),#0()) -> c_38():26
             -->_1 #ckgt#(#LT()) -> c_37():25
             -->_1 #ckgt#(#GT()) -> c_36():24
             -->_1 #ckgt#(#EQ()) -> c_35():23
          
          61:W:append#1#(nil(),@ys) -> c_5()
             
          
          62:W:insert#2#(nil(),@keyX,@valX,@x) -> c_9()
             
          
          63:W:insert#4#(#true(),@key1,@ls,@valX,@vals1,@x) -> c_12()
             
          
          64:W:quicksort#1#(nil()) -> c_15()
             
          
          65:W:sortAll#1#(nil()) -> c_19()
             
          
          66:W:split#1#(nil()) -> c_23()
             
          
          67:W:splitqs#1#(nil(),@pivot) -> c_27()
             
          
          68:W:splitqs#2#(tuple#2(@ls,@rs),@pivot,@x) -> c_28(splitqs#3#(#greater(@x,@pivot),@ls,@rs,@x)
                                                             ,#greater#(@x,@pivot))
             -->_1 splitqs#3#(#true(),@ls,@rs,@x) -> c_30():70
             -->_1 splitqs#3#(#false(),@ls,@rs,@x) -> c_29():69
             -->_2 #greater#(@x,@y) -> c_2(#ckgt#(#compare(@x,@y)),#compare#(@x,@y)):60
          
          69:W:splitqs#3#(#false(),@ls,@rs,@x) -> c_29()
             
          
          70:W:splitqs#3#(#true(),@ls,@rs,@x) -> c_30()
             
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          66: split#1#(nil()) -> c_23()
          65: sortAll#1#(nil()) -> c_19()
          64: quicksort#1#(nil()) -> c_15()
          67: splitqs#1#(nil(),@pivot) -> c_27()
          68: splitqs#2#(tuple#2(@ls,@rs),@pivot,@x) -> c_28(splitqs#3#(#greater(@x,@pivot),@ls,@rs,@x)
                                                            ,#greater#(@x,@pivot))
          60: #greater#(@x,@y) -> c_2(#ckgt#(#compare(@x,@y)),#compare#(@x,@y))
          23: #ckgt#(#EQ()) -> c_35()
          24: #ckgt#(#GT()) -> c_36()
          25: #ckgt#(#LT()) -> c_37()
          37: #compare#(#s(@x),#s(@y)) -> c_49(#compare#(@x,@y))
          35: #compare#(#pos(@x),#pos(@y)) -> c_47(#compare#(@x,@y))
          31: #compare#(#neg(@x),#neg(@y)) -> c_43(#compare#(@y,@x))
          26: #compare#(#0(),#0()) -> c_38()
          27: #compare#(#0(),#neg(@y)) -> c_39()
          28: #compare#(#0(),#pos(@y)) -> c_40()
          29: #compare#(#0(),#s(@y)) -> c_41()
          30: #compare#(#neg(@x),#0()) -> c_42()
          32: #compare#(#neg(@x),#pos(@y)) -> c_44()
          33: #compare#(#pos(@x),#0()) -> c_45()
          34: #compare#(#pos(@x),#neg(@y)) -> c_46()
          36: #compare#(#s(@x),#0()) -> c_48()
          69: splitqs#3#(#false(),@ls,@rs,@x) -> c_29()
          70: splitqs#3#(#true(),@ls,@rs,@x) -> c_30()
          62: insert#2#(nil(),@keyX,@valX,@x) -> c_9()
          63: insert#4#(#true(),@key1,@ls,@valX,@vals1,@x) -> c_12()
          59: #equal#(@x,@y) -> c_1(#eq#(@x,@y))
          58: #eq#(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_70(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                                 ,#eq#(@x_1,@y_1)
                                                                 ,#eq#(@x_2,@y_2))
          50: #eq#(::(@x_1,@x_2),::(@y_1,@y_2)) -> c_62(#and#(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
                                                       ,#eq#(@x_1,@y_1)
                                                       ,#eq#(@x_2,@y_2))
          49: #eq#(#s(@x),#s(@y)) -> c_61(#eq#(@x,@y))
          47: #eq#(#pos(@x),#pos(@y)) -> c_59(#eq#(@x,@y))
          43: #eq#(#neg(@x),#neg(@y)) -> c_55(#eq#(@x,@y))
          19: #and#(#false(),#false()) -> c_31()
          20: #and#(#false(),#true()) -> c_32()
          21: #and#(#true(),#false()) -> c_33()
          22: #and#(#true(),#true()) -> c_34()
          38: #eq#(#0(),#0()) -> c_50()
          39: #eq#(#0(),#neg(@y)) -> c_51()
          40: #eq#(#0(),#pos(@y)) -> c_52()
          41: #eq#(#0(),#s(@y)) -> c_53()
          42: #eq#(#neg(@x),#0()) -> c_54()
          44: #eq#(#neg(@x),#pos(@y)) -> c_56()
          45: #eq#(#pos(@x),#0()) -> c_57()
          46: #eq#(#pos(@x),#neg(@y)) -> c_58()
          48: #eq#(#s(@x),#0()) -> c_60()
          51: #eq#(::(@x_1,@x_2),nil()) -> c_63()
          52: #eq#(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> c_64()
          53: #eq#(nil(),::(@y_1,@y_2)) -> c_65()
          54: #eq#(nil(),nil()) -> c_66()
          55: #eq#(nil(),tuple#2(@y_1,@y_2)) -> c_67()
          56: #eq#(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> c_68()
          57: #eq#(tuple#2(@x_1,@x_2),nil()) -> c_69()
          61: append#1#(nil(),@ys) -> c_5()
* Step 7: SimplifyRHS WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x)
                                                                       ,#equal#(@key1,@keyX))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x),splitqs#(@pivot,@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/2,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/2,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:append#(@l,@ys) -> c_3(append#1#(@l,@ys))
             -->_1 append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys)):2
          
          2:S:append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
             -->_1 append#(@l,@ys) -> c_3(append#1#(@l,@ys)):1
          
          3:S:insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
             -->_1 insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x)):4
          
          4:S:insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
             -->_1 insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x)):5
          
          5:S:insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
             -->_1 insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                        ,@key1
                                                                                        ,@ls
                                                                                        ,@valX
                                                                                        ,@vals1
                                                                                        ,@x)
                                                                              ,#equal#(@key1,@keyX)):6
          
          6:S:insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x)
                                                                         ,#equal#(@key1,@keyX))
             -->_1 insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls)):7
          
          7:S:insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):3
          
          8:S:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):9
          
          9:S:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):17
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                            ,quicksort#(@xs)
                                                            ,quicksort#(@ys)):10
          
          10:S:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                        ,quicksort#(@xs)
                                                        ,quicksort#(@ys))
             -->_3 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
             -->_1 append#(@l,@ys) -> c_3(append#1#(@l,@ys)):1
          
          11:S:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):12
          
          12:S:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):13
          
          13:S:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):11
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
          
          14:S:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs)):15
          
          15:S:split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
             -->_2 split#(@l) -> c_21(split#1#(@l)):14
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):3
          
          16:S:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_2 split#(@l) -> c_21(split#1#(@l)):14
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):11
          
          17:S:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x)
                                                        ,splitqs#(@pivot,@xs)):18
          
          18:S:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#2#(splitqs(@pivot,@xs),@pivot,@x),splitqs#(@pivot,@xs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):17
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                               ,@key1
                                                                               ,@ls
                                                                               ,@valX
                                                                               ,@vals1
                                                                               ,@x))
          splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
* Step 8: Decompose WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        We analyse the complexity of following sub-problems (R) and (S).
        Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
        
        Problem (R)
          - Strict DPs:
              append#(@l,@ys) -> c_3(append#1#(@l,@ys))
              append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
          - Weak DPs:
              insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
              insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
              insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
              insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x))
              insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
              quicksort#(@l) -> c_13(quicksort#1#(@l))
              quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
              quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                       ,quicksort#(@xs)
                                                       ,quicksort#(@ys))
              sortAll#(@l) -> c_17(sortAll#1#(@l))
              sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
              sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
              split#(@l) -> c_21(split#1#(@l))
              split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
              splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
              splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
              splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
          - Weak TRS:
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #ckgt(#EQ()) -> #false()
              #ckgt(#GT()) -> #true()
              #ckgt(#LT()) -> #false()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #greater(@x,@y) -> #ckgt(#compare(@x,@y))
              append(@l,@ys) -> append#1(@l,@ys)
              append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
              append#1(nil(),@ys) -> @ys
              insert(@x,@l) -> insert#1(@x,@l,@x)
              insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
              insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
              insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
              insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                            ,@key1
                                                                            ,@ls
                                                                            ,@valX
                                                                            ,@vals1
                                                                            ,@x)
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
              insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
              quicksort(@l) -> quicksort#1(@l)
              quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
              quicksort#1(nil()) -> nil()
              quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
              split(@l) -> split#1(@l)
              split#1(::(@x,@xs)) -> insert(@x,split(@xs))
              split#1(nil()) -> nil()
              splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
              splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
              splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
              splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
              splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
              splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
          - Signature:
              {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
              ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
              ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2
              ,#eq#/2,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5
              ,insert#4#/6,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1
              ,split#1#/1,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0
              ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1
              ,c_9/0,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0
              ,c_24/2,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0
              ,c_39/0,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0
              ,c_54/0,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0
              ,c_69/0,c_70/3}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
              ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
              ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
              ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
              insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
              insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
              insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x))
              insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
              quicksort#(@l) -> c_13(quicksort#1#(@l))
              quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
              quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                       ,quicksort#(@xs)
                                                       ,quicksort#(@ys))
              sortAll#(@l) -> c_17(sortAll#1#(@l))
              sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
              sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
              split#(@l) -> c_21(split#1#(@l))
              split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
              splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
              splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
              splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
          - Weak DPs:
              append#(@l,@ys) -> c_3(append#1#(@l,@ys))
              append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
          - Weak TRS:
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #ckgt(#EQ()) -> #false()
              #ckgt(#GT()) -> #true()
              #ckgt(#LT()) -> #false()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #greater(@x,@y) -> #ckgt(#compare(@x,@y))
              append(@l,@ys) -> append#1(@l,@ys)
              append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
              append#1(nil(),@ys) -> @ys
              insert(@x,@l) -> insert#1(@x,@l,@x)
              insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
              insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
              insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
              insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                            ,@key1
                                                                            ,@ls
                                                                            ,@valX
                                                                            ,@vals1
                                                                            ,@x)
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
              insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
              quicksort(@l) -> quicksort#1(@l)
              quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
              quicksort#1(nil()) -> nil()
              quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
              split(@l) -> split#1(@l)
              split#1(::(@x,@xs)) -> insert(@x,split(@xs))
              split#1(nil()) -> nil()
              splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
              splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
              splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
              splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
              splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
              splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
          - Signature:
              {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
              ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
              ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2
              ,#eq#/2,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5
              ,insert#4#/6,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1
              ,split#1#/1,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0
              ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1
              ,c_9/0,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0
              ,c_24/2,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0
              ,c_39/0,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0
              ,c_54/0,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0
              ,c_69/0,c_70/3}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
              ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
              ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
              ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
** Step 8.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        - Weak DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:append#(@l,@ys) -> c_3(append#1#(@l,@ys))
             -->_1 append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys)):2
          
          2:S:append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
             -->_1 append#(@l,@ys) -> c_3(append#1#(@l,@ys)):1
          
          3:W:insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
             -->_1 insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x)):4
          
          4:W:insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
             -->_1 insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x)):5
          
          5:W:insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
             -->_1 insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                        ,@key1
                                                                                        ,@ls
                                                                                        ,@valX
                                                                                        ,@vals1
                                                                                        ,@x)):6
          
          6:W:insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x))
             -->_1 insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls)):7
          
          7:W:insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):3
          
          8:W:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):9
          
          9:W:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):17
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                            ,quicksort#(@xs)
                                                            ,quicksort#(@ys)):10
          
          10:W:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                        ,quicksort#(@xs)
                                                        ,quicksort#(@ys))
             -->_1 append#(@l,@ys) -> c_3(append#1#(@l,@ys)):1
             -->_3 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
          
          11:W:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):12
          
          12:W:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):13
          
          13:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):11
          
          14:W:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs)):15
          
          15:W:split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):3
             -->_2 split#(@l) -> c_21(split#1#(@l)):14
          
          16:W:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):11
             -->_2 split#(@l) -> c_21(split#1#(@l)):14
          
          17:W:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs)):18
          
          18:W:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
             -->_1 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):17
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          14: split#(@l) -> c_21(split#1#(@l))
          15: split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
          17: splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          18: splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
          3: insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          7: insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          6: insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                  ,@key1
                                                                                  ,@ls
                                                                                  ,@valX
                                                                                  ,@vals1
                                                                                  ,@x))
          5: insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          4: insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
** Step 8.a:2: SimplifyRHS WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        - Weak DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:append#(@l,@ys) -> c_3(append#1#(@l,@ys))
             -->_1 append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys)):2
          
          2:S:append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
             -->_1 append#(@l,@ys) -> c_3(append#1#(@l,@ys)):1
          
          8:W:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):9
          
          9:W:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                            ,quicksort#(@xs)
                                                            ,quicksort#(@ys)):10
          
          10:W:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                        ,quicksort#(@xs)
                                                        ,quicksort#(@ys))
             -->_1 append#(@l,@ys) -> c_3(append#1#(@l,@ys)):1
             -->_3 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
          
          11:W:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):12
          
          12:W:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):13
          
          13:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):11
          
          16:W:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):11
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
          splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
** Step 8.a:3: DecomposeDG WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        - Weak DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing}
    + Details:
        We decompose the input problem according to the dependency graph into the upper component
          sortAll#(@l) -> c_17(sortAll#1#(@l))
          sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        and a lower component
          append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
          quicksort#(@l) -> c_13(quicksort#1#(@l))
          quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
          quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                   ,quicksort#(@xs)
                                                   ,quicksort#(@ys))
        Further, following extension rules are added to the lower component.
          sortAll#(@l) -> sortAll#1#(@l)
          sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          splitAndSort#(@l) -> sortAll#(split(@l))
*** Step 8.a:3.a:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          
        Consider the set of all dependency pairs
          1: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          2: sortAll#(@l) -> c_17(sortAll#1#(@l))
          3: sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          4: splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,3,4}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
**** Step 8.a:3.a:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_17) = {1},
          uargs(c_18) = {1},
          uargs(c_20) = {2},
          uargs(c_24) = {1}
        
        Following symbols are considered usable:
          {#and,#eq,#equal,insert,insert#1,insert#2,insert#3,insert#4,split,split#1,#and#,#ckgt#,#compare#,#eq#
          ,#equal#,#greater#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#
          ,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
          ,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                           
                    p(#EQ) = [0]                           
                    p(#GT) = [0]                           
                    p(#LT) = [0]                           
                   p(#and) = [1] x2 + [0]                  
                  p(#ckgt) = [0]                           
               p(#compare) = [5]                           
                    p(#eq) = [1]                           
                 p(#equal) = [1]                           
                 p(#false) = [1]                           
               p(#greater) = [0]                           
                   p(#neg) = [1] x1 + [0]                  
                   p(#pos) = [1] x1 + [0]                  
                     p(#s) = [1]                           
                  p(#true) = [1]                           
                     p(::) = [1] x1 + [1] x2 + [3]         
                 p(append) = [0]                           
               p(append#1) = [0]                           
                 p(insert) = [1] x2 + [4]                  
               p(insert#1) = [1] x2 + [4]                  
               p(insert#2) = [1] x1 + [4]                  
               p(insert#3) = [1] x1 + [1] x3 + [7]         
               p(insert#4) = [2] x1 + [1] x3 + [6]         
                    p(nil) = [4]                           
              p(quicksort) = [6]                           
            p(quicksort#1) = [1] x1 + [5]                  
            p(quicksort#2) = [0]                           
                p(sortAll) = [0]                           
              p(sortAll#1) = [4]                           
              p(sortAll#2) = [0]                           
                  p(split) = [3] x1 + [0]                  
                p(split#1) = [3] x1 + [0]                  
           p(splitAndSort) = [0]                           
                p(splitqs) = [4]                           
              p(splitqs#1) = [7]                           
              p(splitqs#2) = [3] x1 + [0]                  
              p(splitqs#3) = [0]                           
                p(tuple#2) = [1]                           
                  p(#and#) = [0]                           
                 p(#ckgt#) = [0]                           
              p(#compare#) = [0]                           
                   p(#eq#) = [0]                           
                p(#equal#) = [0]                           
              p(#greater#) = [0]                           
                p(append#) = [0]                           
              p(append#1#) = [0]                           
                p(insert#) = [0]                           
              p(insert#1#) = [0]                           
              p(insert#2#) = [0]                           
              p(insert#3#) = [0]                           
              p(insert#4#) = [0]                           
             p(quicksort#) = [0]                           
           p(quicksort#1#) = [0]                           
           p(quicksort#2#) = [0]                           
               p(sortAll#) = [2] x1 + [0]                  
             p(sortAll#1#) = [2] x1 + [0]                  
             p(sortAll#2#) = [2] x1 + [2] x2 + [0]         
                 p(split#) = [0]                           
               p(split#1#) = [0]                           
          p(splitAndSort#) = [6] x1 + [0]                  
               p(splitqs#) = [0]                           
             p(splitqs#1#) = [0]                           
             p(splitqs#2#) = [0]                           
             p(splitqs#3#) = [0]                           
                    p(c_1) = [0]                           
                    p(c_2) = [0]                           
                    p(c_3) = [0]                           
                    p(c_4) = [0]                           
                    p(c_5) = [0]                           
                    p(c_6) = [0]                           
                    p(c_7) = [0]                           
                    p(c_8) = [0]                           
                    p(c_9) = [0]                           
                   p(c_10) = [0]                           
                   p(c_11) = [0]                           
                   p(c_12) = [0]                           
                   p(c_13) = [0]                           
                   p(c_14) = [0]                           
                   p(c_15) = [0]                           
                   p(c_16) = [0]                           
                   p(c_17) = [1] x1 + [0]                  
                   p(c_18) = [1] x1 + [6]                  
                   p(c_19) = [0]                           
                   p(c_20) = [1] x2 + [0]                  
                   p(c_21) = [0]                           
                   p(c_22) = [1] x2 + [0]                  
                   p(c_23) = [0]                           
                   p(c_24) = [1] x1 + [0]                  
                   p(c_25) = [2] x1 + [0]                  
                   p(c_26) = [4] x1 + [0]                  
                   p(c_27) = [0]                           
                   p(c_28) = [0]                           
                   p(c_29) = [0]                           
                   p(c_30) = [0]                           
                   p(c_31) = [0]                           
                   p(c_32) = [0]                           
                   p(c_33) = [0]                           
                   p(c_34) = [0]                           
                   p(c_35) = [0]                           
                   p(c_36) = [0]                           
                   p(c_37) = [0]                           
                   p(c_38) = [0]                           
                   p(c_39) = [0]                           
                   p(c_40) = [0]                           
                   p(c_41) = [0]                           
                   p(c_42) = [0]                           
                   p(c_43) = [0]                           
                   p(c_44) = [0]                           
                   p(c_45) = [0]                           
                   p(c_46) = [0]                           
                   p(c_47) = [0]                           
                   p(c_48) = [0]                           
                   p(c_49) = [2] x1 + [0]                  
                   p(c_50) = [0]                           
                   p(c_51) = [0]                           
                   p(c_52) = [0]                           
                   p(c_53) = [0]                           
                   p(c_54) = [0]                           
                   p(c_55) = [0]                           
                   p(c_56) = [0]                           
                   p(c_57) = [0]                           
                   p(c_58) = [0]                           
                   p(c_59) = [0]                           
                   p(c_60) = [0]                           
                   p(c_61) = [0]                           
                   p(c_62) = [1] x1 + [1] x2 + [0]         
                   p(c_63) = [0]                           
                   p(c_64) = [0]                           
                   p(c_65) = [0]                           
                   p(c_66) = [0]                           
                   p(c_67) = [0]                           
                   p(c_68) = [0]                           
                   p(c_69) = [0]                           
                   p(c_70) = [1] x1 + [4] x2 + [4] x3 + [0]
        
        Following rules are strictly oriented:
        sortAll#2#(tuple#2(@vals,@key),@xs) = [2] @xs + [2]                        
                                            > [2] @xs + [0]                        
                                            = c_20(quicksort#(@vals),sortAll#(@xs))
        
        
        Following rules are (at-least) weakly oriented:
                                              sortAll#(@l) =  [2] @l + [0]                                           
                                                           >= [2] @l + [0]                                           
                                                           =  c_17(sortAll#1#(@l))                                   
        
                                    sortAll#1#(::(@x,@xs)) =  [2] @x + [2] @xs + [6]                                 
                                                           >= [2] @x + [2] @xs + [6]                                 
                                                           =  c_18(sortAll#2#(@x,@xs))                               
        
                                         splitAndSort#(@l) =  [6] @l + [0]                                           
                                                           >= [6] @l + [0]                                           
                                                           =  c_24(sortAll#(split(@l)))                              
        
                                   #and(#false(),#false()) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                    #and(#false(),#true()) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                    #and(#true(),#false()) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                     #and(#true(),#true()) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #true()                                                
        
                                            #eq(#0(),#0()) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #true()                                                
        
                                        #eq(#0(),#neg(@y)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                        #eq(#0(),#pos(@y)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                          #eq(#0(),#s(@y)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                        #eq(#neg(@x),#0()) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                    #eq(#neg(@x),#neg(@y)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #eq(@x,@y)                                             
        
                                    #eq(#neg(@x),#pos(@y)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                        #eq(#pos(@x),#0()) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                    #eq(#pos(@x),#neg(@y)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                    #eq(#pos(@x),#pos(@y)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #eq(@x,@y)                                             
        
                                          #eq(#s(@x),#0()) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                        #eq(#s(@x),#s(@y)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #eq(@x,@y)                                             
        
                          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))                    
        
                                  #eq(::(@x_1,@x_2),nil()) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                     #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                  #eq(nil(),::(@y_1,@y_2)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                                          #eq(nil(),nil()) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #true()                                                
        
                             #eq(nil(),tuple#2(@y_1,@y_2)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                     #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                             #eq(tuple#2(@x_1,@x_2),nil()) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #false()                                               
        
                #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))                    
        
                                             #equal(@x,@y) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  #eq(@x,@y)                                             
        
                                             insert(@x,@l) =  [1] @l + [4]                                           
                                                           >= [1] @l + [4]                                           
                                                           =  insert#1(@x,@l,@x)                                     
        
                      insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1] @l + [4]                                           
                                                           >= [1] @l + [4]                                           
                                                           =  insert#2(@l,@keyX,@valX,@x)                            
        
                      insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [1] @l1 + [1] @ls + [7]                                
                                                           >= [1] @l1 + [1] @ls + [7]                                
                                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)                       
        
                            insert#2(nil(),@keyX,@valX,@x) =  [8]                                                    
                                                           >= [8]                                                    
                                                           =  ::(tuple#2(::(@valX,nil()),@keyX),nil())               
        
        insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1] @ls + [8]                                          
                                                           >= [1] @ls + [8]                                          
                                                           =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)
        
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1] @ls + [8]                                          
                                                           >= [1] @ls + [8]                                          
                                                           =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))               
        
               insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1] @ls + [8]                                          
                                                           >= [1] @ls + [4]                                          
                                                           =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                
        
                                                 split(@l) =  [3] @l + [0]                                           
                                                           >= [3] @l + [0]                                           
                                                           =  split#1(@l)                                            
        
                                       split#1(::(@x,@xs)) =  [3] @x + [3] @xs + [9]                                 
                                                           >= [3] @xs + [4]                                          
                                                           =  insert(@x,split(@xs))                                  
        
                                            split#1(nil()) =  [12]                                                   
                                                           >= [4]                                                    
                                                           =  nil()                                                  
        
**** Step 8.a:3.a:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

**** Step 8.a:3.a:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):2
          
          2:W:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):3
          
          3:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
          4:W:splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          4: splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
          1: sortAll#(@l) -> c_17(sortAll#1#(@l))
          3: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          2: sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
**** Step 8.a:3.a:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

*** Step 8.a:3.b:1: DecomposeDG WORST_CASE(?,O(n^4))
    + Considered Problem:
        - Strict DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        - Weak DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing}
    + Details:
        We decompose the input problem according to the dependency graph into the upper component
          quicksort#(@l) -> c_13(quicksort#1#(@l))
          quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
          quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                   ,quicksort#(@xs)
                                                   ,quicksort#(@ys))
          sortAll#(@l) -> sortAll#1#(@l)
          sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          splitAndSort#(@l) -> sortAll#(split(@l))
        and a lower component
          append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        Further, following extension rules are added to the lower component.
          quicksort#(@l) -> quicksort#1#(@l)
          quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
          quicksort#2#(tuple#2(@xs,@ys),@z) -> append#(quicksort(@xs),::(@z,quicksort(@ys)))
          quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
          quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
          sortAll#(@l) -> sortAll#1#(@l)
          sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          splitAndSort#(@l) -> sortAll#(split(@l))
**** Step 8.a:3.b:1.a:1: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
        - Weak DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                      ,quicksort#(@xs)
                                                      ,quicksort#(@ys))
          
        Consider the set of all dependency pairs
          1: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                      ,quicksort#(@xs)
                                                      ,quicksort#(@ys))
          2: quicksort#(@l) -> c_13(quicksort#1#(@l))
          3: quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
          4: sortAll#(@l) -> sortAll#1#(@l)
          5: sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          6: sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          7: sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          8: splitAndSort#(@l) -> sortAll#(split(@l))
        Processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,8}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
***** Step 8.a:3.b:1.a:1.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
        - Weak DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 2 non-zero interpretation-entries in the diagonal of the component-wise maxima):
        The following argument positions are considered usable:
          uargs(c_13) = {1},
          uargs(c_14) = {1},
          uargs(c_16) = {1,2,3}
        
        Following symbols are considered usable:
          {#and,#eq,#equal,insert,insert#1,insert#2,insert#3,insert#4,split,split#1,splitqs,splitqs#1,splitqs#2
          ,splitqs#3,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#,append#1#,insert#,insert#1#,insert#2#
          ,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#
          ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(#EQ) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(#GT) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(#LT) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(#and) = [0]                                       
                             [0]                                       
                             [1]                                       
                  p(#ckgt) = [1]                                       
                             [1]                                       
                             [1]                                       
               p(#compare) = [0 1 0]      [0]                          
                             [0 0 0] x2 + [0]                          
                             [0 0 0]      [0]                          
                    p(#eq) = [0]                                       
                             [0]                                       
                             [1]                                       
                 p(#equal) = [0 0 0]      [0 0 0]      [0]             
                             [0 0 1] x1 + [1 0 1] x2 + [0]             
                             [1 0 0]      [0 0 1]      [1]             
                 p(#false) = [0]                                       
                             [0]                                       
                             [0]                                       
               p(#greater) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(#neg) = [0 0 0]      [0]                          
                             [0 0 1] x1 + [0]                          
                             [0 0 0]      [0]                          
                   p(#pos) = [0 0 0]      [0]                          
                             [0 0 1] x1 + [0]                          
                             [0 0 0]      [0]                          
                     p(#s) = [0]                                       
                             [0]                                       
                             [0]                                       
                  p(#true) = [0]                                       
                             [0]                                       
                             [0]                                       
                     p(::) = [0 1 0]      [1 0 0]      [0]             
                             [0 0 0] x1 + [0 1 1] x2 + [0]             
                             [0 0 0]      [0 0 0]      [1]             
                 p(append) = [0 1 0]      [0 1 0]      [0]             
                             [0 0 0] x1 + [1 0 1] x2 + [1]             
                             [0 0 0]      [0 0 0]      [0]             
               p(append#1) = [1]                                       
                             [0]                                       
                             [0]                                       
                 p(insert) = [1 0 0]      [1]                          
                             [0 1 1] x2 + [0]                          
                             [0 0 0]      [1]                          
               p(insert#1) = [1 0 0]      [1]                          
                             [0 1 1] x2 + [0]                          
                             [0 0 0]      [1]                          
               p(insert#2) = [1 0 0]      [1]                          
                             [0 1 1] x1 + [0]                          
                             [0 0 0]      [1]                          
               p(insert#3) = [0 1 0]      [1 0 0]      [1]             
                             [0 0 0] x1 + [0 1 1] x3 + [1]             
                             [0 0 0]      [0 0 0]      [1]             
               p(insert#4) = [1 0 0]      [0 1 1]      [1]             
                             [0 1 1] x3 + [0 0 0] x5 + [1]             
                             [0 0 0]      [0 0 0]      [1]             
                    p(nil) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(quicksort) = [0 0 1]      [1]                          
                             [0 0 0] x1 + [1]                          
                             [0 0 0]      [0]                          
            p(quicksort#1) = [0 0 0]      [0]                          
                             [0 0 1] x1 + [0]                          
                             [0 1 0]      [0]                          
            p(quicksort#2) = [0]                                       
                             [1]                                       
                             [0]                                       
                p(sortAll) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(sortAll#1) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(sortAll#2) = [0]                                       
                             [0]                                       
                             [0]                                       
                  p(split) = [0 1 1]      [1]                          
                             [0 1 0] x1 + [0]                          
                             [0 0 1]      [0]                          
                p(split#1) = [0 1 1]      [1]                          
                             [0 1 0] x1 + [0]                          
                             [0 0 1]      [0]                          
           p(splitAndSort) = [0]                                       
                             [0]                                       
                             [0]                                       
                p(splitqs) = [0 0 0]      [0 1 1]      [0]             
                             [1 1 1] x1 + [0 1 1] x2 + [1]             
                             [0 0 0]      [1 0 0]      [0]             
              p(splitqs#1) = [0 1 1]      [0 0 0]      [0]             
                             [0 1 1] x1 + [0 0 1] x2 + [1]             
                             [0 0 0]      [0 0 0]      [0]             
              p(splitqs#2) = [1 0 0]      [0 0 0]      [1]             
                             [1 0 0] x1 + [0 0 1] x2 + [1]             
                             [0 0 0]      [0 0 0]      [0]             
              p(splitqs#3) = [0 1 1]      [0 1 1]      [1]             
                             [0 1 1] x2 + [0 1 0] x3 + [1]             
                             [0 0 0]      [0 0 0]      [0]             
                p(tuple#2) = [0 1 1]      [0 1 1]      [0]             
                             [0 1 1] x1 + [0 0 0] x2 + [0]             
                             [0 0 0]      [0 0 0]      [0]             
                  p(#and#) = [0]                                       
                             [0]                                       
                             [0]                                       
                 p(#ckgt#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(#compare#) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(#eq#) = [0]                                       
                             [0]                                       
                             [0]                                       
                p(#equal#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(#greater#) = [0]                                       
                             [0]                                       
                             [0]                                       
                p(append#) = [0]                                       
                             [0]                                       
                             [1]                                       
              p(append#1#) = [0]                                       
                             [0]                                       
                             [0]                                       
                p(insert#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(insert#1#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(insert#2#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(insert#3#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(insert#4#) = [0]                                       
                             [0]                                       
                             [0]                                       
             p(quicksort#) = [0 1 1]      [0]                          
                             [0 0 0] x1 + [0]                          
                             [0 0 0]      [1]                          
           p(quicksort#1#) = [0 1 1]      [0]                          
                             [0 0 0] x1 + [1]                          
                             [1 0 1]      [0]                          
           p(quicksort#2#) = [1 0 0]      [0 0 0]      [1]             
                             [0 0 0] x1 + [0 1 0] x2 + [0]             
                             [0 0 0]      [0 0 0]      [0]             
               p(sortAll#) = [1 0 0]      [0]                          
                             [0 0 0] x1 + [0]                          
                             [0 0 0]      [1]                          
             p(sortAll#1#) = [1 0 0]      [0]                          
                             [0 0 0] x1 + [0]                          
                             [0 0 0]      [1]                          
             p(sortAll#2#) = [0 1 0]      [1 0 0]      [0]             
                             [0 0 0] x1 + [0 0 0] x2 + [0]             
                             [0 0 0]      [0 0 0]      [1]             
                 p(split#) = [0]                                       
                             [0]                                       
                             [0]                                       
               p(split#1#) = [0]                                       
                             [0]                                       
                             [0]                                       
          p(splitAndSort#) = [0 1 1]      [1]                          
                             [0 0 1] x1 + [0]                          
                             [1 0 0]      [1]                          
               p(splitqs#) = [0]                                       
                             [0]                                       
                             [0]                                       
             p(splitqs#1#) = [0]                                       
                             [0]                                       
                             [0]                                       
             p(splitqs#2#) = [0]                                       
                             [0]                                       
                             [0]                                       
             p(splitqs#3#) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_1) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_2) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_3) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_4) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_5) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_6) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_7) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_8) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_9) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_10) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_11) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_12) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_13) = [1 0 0]      [0]                          
                             [0 0 0] x1 + [0]                          
                             [0 1 0]      [0]                          
                   p(c_14) = [1 0 0]      [0]                          
                             [0 0 0] x1 + [0]                          
                             [0 1 0]      [0]                          
                   p(c_15) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_16) = [1 0 0]      [1 0 0]      [1 0 0]      [0]
                             [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                             [0 0 0]      [0 0 0]      [0 0 0]      [0]
                   p(c_17) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_18) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_19) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_20) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_21) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_22) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_23) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_24) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_25) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_26) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_27) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_28) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_29) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_30) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_31) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_32) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_33) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_34) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_35) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_36) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_37) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_38) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_39) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_40) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_41) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_42) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_43) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_44) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_45) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_46) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_47) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_48) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_49) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_50) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_51) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_52) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_53) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_54) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_55) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_56) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_57) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_58) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_59) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_60) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_61) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_62) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_63) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_64) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_65) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_66) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_67) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_68) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_69) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_70) = [0]                                       
                             [0]                                       
                             [0]                                       
        
        Following rules are strictly oriented:
        quicksort#2#(tuple#2(@xs,@ys),@z) = [0 1 1]       [0 1 1]       [0 0 0]      [1]                                       
                                            [0 0 0] @xs + [0 0 0] @ys + [0 1 0] @z + [0]                                       
                                            [0 0 0]       [0 0 0]       [0 0 0]      [0]                                       
                                          > [0 1 1]       [0 1 1]       [0]                                                    
                                            [0 0 0] @xs + [0 0 0] @ys + [0]                                                    
                                            [0 0 0]       [0 0 0]       [0]                                                    
                                          = c_16(append#(quicksort(@xs),::(@z,quicksort(@ys))),quicksort#(@xs),quicksort#(@ys))
        
        
        Following rules are (at-least) weakly oriented:
                                            quicksort#(@l) =  [0 1 1]      [0]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [0 1 1]      [0]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  c_13(quicksort#1#(@l))                                 
        
                                  quicksort#1#(::(@z,@zs)) =  [0 0 0]      [0 1 1]       [1]                         
                                                              [0 0 0] @z + [0 0 0] @zs + [1]                         
                                                              [0 1 0]      [1 0 0]       [1]                         
                                                           >= [0 0 0]      [0 1 1]       [1]                         
                                                              [0 0 0] @z + [0 0 0] @zs + [0]                         
                                                              [0 1 0]      [0 0 0]       [0]                         
                                                           =  c_14(quicksort#2#(splitqs(@z,@zs),@z))                 
        
                                              sortAll#(@l) =  [1 0 0]      [0]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [1 0 0]      [0]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  sortAll#1#(@l)                                         
        
                                    sortAll#1#(::(@x,@xs)) =  [0 1 0]      [1 0 0]       [0]                         
                                                              [0 0 0] @x + [0 0 0] @xs + [0]                         
                                                              [0 0 0]      [0 0 0]       [1]                         
                                                           >= [0 1 0]      [1 0 0]       [0]                         
                                                              [0 0 0] @x + [0 0 0] @xs + [0]                         
                                                              [0 0 0]      [0 0 0]       [1]                         
                                                           =  sortAll#2#(@x,@xs)                                     
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 1 1]         [1 0 0]       [0]                      
                                                              [0 0 0] @vals + [0 0 0] @xs + [0]                      
                                                              [0 0 0]         [0 0 0]       [1]                      
                                                           >= [0 1 1]         [0]                                    
                                                              [0 0 0] @vals + [0]                                    
                                                              [0 0 0]         [1]                                    
                                                           =  quicksort#(@vals)                                      
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 1 1]         [1 0 0]       [0]                      
                                                              [0 0 0] @vals + [0 0 0] @xs + [0]                      
                                                              [0 0 0]         [0 0 0]       [1]                      
                                                           >= [1 0 0]       [0]                                      
                                                              [0 0 0] @xs + [0]                                      
                                                              [0 0 0]       [1]                                      
                                                           =  sortAll#(@xs)                                          
        
                                         splitAndSort#(@l) =  [0 1 1]      [1]                                       
                                                              [0 0 1] @l + [0]                                       
                                                              [1 0 0]      [1]                                       
                                                           >= [0 1 1]      [1]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  sortAll#(split(@l))                                    
        
                                   #and(#false(),#false()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                    #and(#false(),#true()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                    #and(#true(),#false()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                     #and(#true(),#true()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #true()                                                
        
                                            #eq(#0(),#0()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #true()                                                
        
                                        #eq(#0(),#neg(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                        #eq(#0(),#pos(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                          #eq(#0(),#s(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                        #eq(#neg(@x),#0()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                    #eq(#neg(@x),#neg(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           =  #eq(@x,@y)                                             
        
                                    #eq(#neg(@x),#pos(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                        #eq(#pos(@x),#0()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                    #eq(#pos(@x),#neg(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                    #eq(#pos(@x),#pos(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           =  #eq(@x,@y)                                             
        
                                          #eq(#s(@x),#0()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                        #eq(#s(@x),#s(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           =  #eq(@x,@y)                                             
        
                          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           =  #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))                    
        
                                  #eq(::(@x_1,@x_2),nil()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                     #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                  #eq(nil(),::(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                          #eq(nil(),nil()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #true()                                                
        
                             #eq(nil(),tuple#2(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                     #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                             #eq(tuple#2(@x_1,@x_2),nil()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           =  #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))                    
        
                                             #equal(@x,@y) =  [0 0 0]      [0 0 0]      [0]                          
                                                              [0 0 1] @x + [1 0 1] @y + [0]                          
                                                              [1 0 0]      [0 0 1]      [1]                          
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           =  #eq(@x,@y)                                             
        
                                             insert(@x,@l) =  [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  insert#1(@x,@l,@x)                                     
        
                      insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  insert#2(@l,@keyX,@valX,@x)                            
        
                      insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [0 1 0]       [1 0 0]       [1]                        
                                                              [0 0 0] @l1 + [0 1 1] @ls + [1]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           >= [0 1 0]       [1 0 0]       [1]                        
                                                              [0 0 0] @l1 + [0 1 1] @ls + [1]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)                       
        
                            insert#2(nil(),@keyX,@valX,@x) =  [1]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [1]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           =  ::(tuple#2(::(@valX,nil()),@keyX),nil())               
        
        insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)
        
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))               
        
               insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [0]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                
        
                                                 split(@l) =  [0 1 1]      [1]                                       
                                                              [0 1 0] @l + [0]                                       
                                                              [0 0 1]      [0]                                       
                                                           >= [0 1 1]      [1]                                       
                                                              [0 1 0] @l + [0]                                       
                                                              [0 0 1]      [0]                                       
                                                           =  split#1(@l)                                            
        
                                       split#1(::(@x,@xs)) =  [0 1 1]       [2]                                      
                                                              [0 1 1] @xs + [0]                                      
                                                              [0 0 0]       [1]                                      
                                                           >= [0 1 1]       [2]                                      
                                                              [0 1 1] @xs + [0]                                      
                                                              [0 0 0]       [1]                                      
                                                           =  insert(@x,split(@xs))                                  
        
                                            split#1(nil()) =  [1]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  nil()                                                  
        
                                        splitqs(@pivot,@l) =  [0 1 1]      [0 0 0]          [0]                      
                                                              [0 1 1] @l + [1 1 1] @pivot + [1]                      
                                                              [1 0 0]      [0 0 0]          [0]                      
                                                           >= [0 1 1]      [0 0 0]          [0]                      
                                                              [0 1 1] @l + [0 0 1] @pivot + [1]                      
                                                              [0 0 0]      [0 0 0]          [0]                      
                                                           =  splitqs#1(@l,@pivot)                                   
        
                              splitqs#1(::(@x,@xs),@pivot) =  [0 0 0]          [0 1 1]       [1]                     
                                                              [0 0 1] @pivot + [0 1 1] @xs + [2]                     
                                                              [0 0 0]          [0 0 0]       [0]                     
                                                           >= [0 0 0]          [0 1 1]       [1]                     
                                                              [0 0 1] @pivot + [0 1 1] @xs + [1]                     
                                                              [0 0 0]          [0 0 0]       [0]                     
                                                           =  splitqs#2(splitqs(@pivot,@xs),@pivot,@x)               
        
                                   splitqs#1(nil(),@pivot) =  [0 0 0]          [0]                                   
                                                              [0 0 1] @pivot + [1]                                   
                                                              [0 0 0]          [0]                                   
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  tuple#2(nil(),nil())                                   
        
                     splitqs#2(tuple#2(@ls,@rs),@pivot,@x) =  [0 1 1]       [0 0 0]          [0 1 1]       [1]       
                                                              [0 1 1] @ls + [0 0 1] @pivot + [0 1 1] @rs + [1]       
                                                              [0 0 0]       [0 0 0]          [0 0 0]       [0]       
                                                           >= [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 1 0] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           =  splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)              
        
                            splitqs#3(#false(),@ls,@rs,@x) =  [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 1 0] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 0] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           =  tuple#2(::(@x,@ls),@rs)                                
        
                             splitqs#3(#true(),@ls,@rs,@x) =  [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 1 0] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 0] @rs + [0]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           =  tuple#2(@ls,::(@x,@rs))                                
        
***** Step 8.a:3.b:1.a:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

***** Step 8.a:3.b:1.a:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z)):2
          
          2:W:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                            ,quicksort#(@xs)
                                                            ,quicksort#(@ys)):3
          
          3:W:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                       ,quicksort#(@xs)
                                                       ,quicksort#(@ys))
             -->_3 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
          
          4:W:sortAll#(@l) -> sortAll#1#(@l)
             -->_1 sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs):5
          
          5:W:sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs):7
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals):6
          
          6:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
          
          7:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
             -->_1 sortAll#(@l) -> sortAll#1#(@l):4
          
          8:W:splitAndSort#(@l) -> sortAll#(split(@l))
             -->_1 sortAll#(@l) -> sortAll#1#(@l):4
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          8: splitAndSort#(@l) -> sortAll#(split(@l))
          4: sortAll#(@l) -> sortAll#1#(@l)
          7: sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          5: sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          6: sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          1: quicksort#(@l) -> c_13(quicksort#1#(@l))
          3: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                      ,quicksort#(@xs)
                                                      ,quicksort#(@ys))
          2: quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z))
***** Step 8.a:3.b:1.a:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

**** Step 8.a:3.b:1.b:1: MI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        - Weak DPs:
            quicksort#(@l) -> quicksort#1#(@l)
            quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> append#(quicksort(@xs),::(@z,quicksort(@ys)))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        MI {miKind = MaximalMatrix (UpperTriangular (Multiplicity Nothing)), miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind MaximalMatrix (UpperTriangular (Multiplicity Nothing)):
        
        The following argument positions are considered usable:
          uargs(c_3) = {1},
          uargs(c_4) = {1}
        
        Following symbols are considered usable:
          {append,append#1,insert,insert#1,insert#2,insert#3,insert#4,quicksort,quicksort#1,quicksort#2,split
          ,split#1,splitqs,splitqs#1,splitqs#2,splitqs#3,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
          ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
          ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(#EQ) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(#GT) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(#LT) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(#and) = [0 0 1]       [0 0 0]       [0]              
                             [0 0 1] x_1 + [0 0 0] x_2 + [0]              
                             [0 0 0]       [0 0 1]       [1]              
                  p(#ckgt) = [0]                                          
                             [0]                                          
                             [1]                                          
               p(#compare) = [0 0 0]       [0]                            
                             [1 1 0] x_1 + [0]                            
                             [0 0 0]       [0]                            
                    p(#eq) = [0 0 0]       [0]                            
                             [0 0 0] x_1 + [0]                            
                             [0 0 1]       [1]                            
                 p(#equal) = [0]                                          
                             [0]                                          
                             [0]                                          
                 p(#false) = [0]                                          
                             [0]                                          
                             [0]                                          
               p(#greater) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(#neg) = [0 0 0]       [0]                            
                             [0 1 1] x_1 + [0]                            
                             [0 0 0]       [0]                            
                   p(#pos) = [0]                                          
                             [1]                                          
                             [0]                                          
                     p(#s) = [1]                                          
                             [1]                                          
                             [0]                                          
                  p(#true) = [0]                                          
                             [0]                                          
                             [0]                                          
                     p(::) = [0 0 0]       [1 0 0]       [0]              
                             [0 0 1] x_1 + [0 1 0] x_2 + [0]              
                             [0 0 0]       [0 0 1]       [1]              
                 p(append) = [0 0 0]       [1 0 0]       [0]              
                             [0 1 0] x_1 + [0 1 0] x_2 + [0]              
                             [0 0 1]       [0 0 1]       [0]              
               p(append#1) = [0 0 0]       [1 0 0]       [0]              
                             [0 1 0] x_1 + [0 1 0] x_2 + [0]              
                             [0 0 1]       [0 0 1]       [0]              
                 p(insert) = [1 0 0]       [0]                            
                             [0 1 0] x_2 + [1]                            
                             [1 0 1]       [0]                            
               p(insert#1) = [1 0 0]       [0]                            
                             [0 1 0] x_2 + [1]                            
                             [1 0 1]       [0]                            
               p(insert#2) = [1 0 0]       [0]                            
                             [0 1 0] x_1 + [1]                            
                             [1 0 1]       [0]                            
               p(insert#3) = [0 0 0]       [1 0 0]       [0]              
                             [0 0 1] x_1 + [0 1 0] x_3 + [1]              
                             [0 0 0]       [1 0 1]       [1]              
               p(insert#4) = [1 0 0]       [0 0 0]       [0]              
                             [0 1 0] x_3 + [0 0 1] x_5 + [1]              
                             [1 0 1]       [0 0 0]       [1]              
                    p(nil) = [1]                                          
                             [0]                                          
                             [0]                                          
              p(quicksort) = [0 0 0]       [1]                            
                             [0 1 0] x_1 + [0]                            
                             [0 0 1]       [0]                            
            p(quicksort#1) = [0 0 0]       [1]                            
                             [0 1 0] x_1 + [0]                            
                             [0 0 1]       [0]                            
            p(quicksort#2) = [0 0 0]       [0 0 0]       [1]              
                             [1 0 0] x_1 + [0 0 1] x_2 + [0]              
                             [0 1 0]       [0 0 0]       [1]              
                p(sortAll) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(sortAll#1) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(sortAll#2) = [0]                                          
                             [0]                                          
                             [0]                                          
                  p(split) = [0 0 0]       [1]                            
                             [1 0 1] x_1 + [0]                            
                             [0 0 1]       [0]                            
                p(split#1) = [0 0 0]       [1]                            
                             [1 0 1] x_1 + [0]                            
                             [0 0 1]       [0]                            
           p(splitAndSort) = [0]                                          
                             [0]                                          
                             [0]                                          
                p(splitqs) = [0 0 0]       [0 1 0]       [0]              
                             [0 0 0] x_1 + [0 0 1] x_2 + [0]              
                             [1 1 1]       [0 0 1]       [0]              
              p(splitqs#1) = [0 1 0]       [0 0 0]       [0]              
                             [0 0 1] x_1 + [0 0 0] x_2 + [0]              
                             [0 0 1]       [1 1 1]       [0]              
              p(splitqs#2) = [1 0 0]       [0 0 0]       [0 0 1]       [0]
                             [0 1 0] x_1 + [0 0 0] x_2 + [0 0 0] x_3 + [1]
                             [0 1 0]       [0 0 1]       [0 0 0]       [1]
              p(splitqs#3) = [0 1 0]       [0 1 0]       [0 0 1]       [0]
                             [0 0 1] x_2 + [0 0 1] x_3 + [0 0 0] x_4 + [1]
                             [0 0 1]       [0 0 1]       [0 0 0]       [1]
                p(tuple#2) = [0 1 0]       [0 1 0]       [0]              
                             [0 0 1] x_1 + [0 0 1] x_2 + [0]              
                             [0 0 1]       [0 0 0]       [0]              
                  p(#and#) = [0]                                          
                             [0]                                          
                             [0]                                          
                 p(#ckgt#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(#compare#) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(#eq#) = [0]                                          
                             [0]                                          
                             [0]                                          
                p(#equal#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(#greater#) = [0]                                          
                             [0]                                          
                             [0]                                          
                p(append#) = [0 0 1]       [0 0 0]       [0]              
                             [0 0 0] x_1 + [0 0 0] x_2 + [0]              
                             [0 0 1]       [1 0 0]       [0]              
              p(append#1#) = [0 0 1]       [0 0 0]       [0]              
                             [0 1 1] x_1 + [0 1 1] x_2 + [1]              
                             [0 0 0]       [1 0 0]       [0]              
                p(insert#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(insert#1#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(insert#2#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(insert#3#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(insert#4#) = [0]                                          
                             [0]                                          
                             [0]                                          
             p(quicksort#) = [0 0 1]       [0]                            
                             [0 0 0] x_1 + [0]                            
                             [0 0 1]       [0]                            
           p(quicksort#1#) = [0 0 1]       [0]                            
                             [0 0 0] x_1 + [0]                            
                             [0 0 1]       [0]                            
           p(quicksort#2#) = [0 1 0]       [0]                            
                             [0 0 0] x_1 + [0]                            
                             [0 1 0]       [1]                            
               p(sortAll#) = [0 1 0]       [0]                            
                             [0 0 0] x_1 + [0]                            
                             [0 1 0]       [0]                            
             p(sortAll#1#) = [0 1 0]       [0]                            
                             [0 0 0] x_1 + [0]                            
                             [0 1 0]       [0]                            
             p(sortAll#2#) = [0 0 1]       [0 1 0]       [0]              
                             [0 0 0] x_1 + [0 0 0] x_2 + [0]              
                             [0 0 1]       [0 1 0]       [0]              
                 p(split#) = [0]                                          
                             [0]                                          
                             [0]                                          
               p(split#1#) = [0]                                          
                             [0]                                          
                             [0]                                          
          p(splitAndSort#) = [1 0 1]       [0]                            
                             [0 0 0] x_1 + [0]                            
                             [1 0 1]       [0]                            
               p(splitqs#) = [0]                                          
                             [0]                                          
                             [0]                                          
             p(splitqs#1#) = [0]                                          
                             [0]                                          
                             [0]                                          
             p(splitqs#2#) = [0]                                          
                             [0]                                          
                             [0]                                          
             p(splitqs#3#) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_1) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_2) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_3) = [1 0 0]       [0]                            
                             [0 0 0] x_1 + [0]                            
                             [1 0 1]       [0]                            
                    p(c_4) = [1 0 0]       [0]                            
                             [0 0 0] x_1 + [0]                            
                             [0 0 0]       [0]                            
                    p(c_5) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_6) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_7) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_8) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_9) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_10) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_11) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_12) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_13) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_14) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_15) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_16) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_17) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_18) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_19) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_20) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_21) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_22) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_23) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_24) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_25) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_26) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_27) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_28) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_29) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_30) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_31) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_32) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_33) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_34) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_35) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_36) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_37) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_38) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_39) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_40) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_41) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_42) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_43) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_44) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_45) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_46) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_47) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_48) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_49) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_50) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_51) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_52) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_53) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_54) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_55) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_56) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_57) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_58) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_59) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_60) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_61) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_62) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_63) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_64) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_65) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_66) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_67) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_68) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_69) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_70) = [0]                                          
                             [0]                                          
                             [0]                                          
        
        Following rules are strictly oriented:
        append#1#(::(@x,@xs),@ys) = [0 0 0]      [0 0 1]       [0 0 0]       [1]
                                    [0 0 1] @x + [0 1 1] @xs + [0 1 1] @ys + [2]
                                    [0 0 0]      [0 0 0]       [1 0 0]       [0]
                                  > [0 0 1]       [0]                           
                                    [0 0 0] @xs + [0]                           
                                    [0 0 0]       [0]                           
                                  = c_4(append#(@xs,@ys))                       
        
        
        Following rules are (at-least) weakly oriented:
                                           append#(@l,@ys) =  [0 0 1]      [0 0 0]       [0]                               
                                                              [0 0 0] @l + [0 0 0] @ys + [0]                               
                                                              [0 0 1]      [1 0 0]       [0]                               
                                                           >= [0 0 1]      [0 0 0]       [0]                               
                                                              [0 0 0] @l + [0 0 0] @ys + [0]                               
                                                              [0 0 1]      [1 0 0]       [0]                               
                                                           =  c_3(append#1#(@l,@ys))                                       
        
                                            quicksort#(@l) =  [0 0 1]      [0]                                             
                                                              [0 0 0] @l + [0]                                             
                                                              [0 0 1]      [0]                                             
                                                           >= [0 0 1]      [0]                                             
                                                              [0 0 0] @l + [0]                                             
                                                              [0 0 1]      [0]                                             
                                                           =  quicksort#1#(@l)                                             
        
                                  quicksort#1#(::(@z,@zs)) =  [0 0 1]       [1]                                            
                                                              [0 0 0] @zs + [0]                                            
                                                              [0 0 1]       [1]                                            
                                                           >= [0 0 1]       [0]                                            
                                                              [0 0 0] @zs + [0]                                            
                                                              [0 0 1]       [1]                                            
                                                           =  quicksort#2#(splitqs(@z,@zs),@z)                             
        
                         quicksort#2#(tuple#2(@xs,@ys),@z) =  [0 0 1]       [0 0 1]       [0]                              
                                                              [0 0 0] @xs + [0 0 0] @ys + [0]                              
                                                              [0 0 1]       [0 0 1]       [1]                              
                                                           >= [0 0 1]       [0]                                            
                                                              [0 0 0] @xs + [0]                                            
                                                              [0 0 1]       [1]                                            
                                                           =  append#(quicksort(@xs),::(@z,quicksort(@ys)))                
        
                         quicksort#2#(tuple#2(@xs,@ys),@z) =  [0 0 1]       [0 0 1]       [0]                              
                                                              [0 0 0] @xs + [0 0 0] @ys + [0]                              
                                                              [0 0 1]       [0 0 1]       [1]                              
                                                           >= [0 0 1]       [0]                                            
                                                              [0 0 0] @xs + [0]                                            
                                                              [0 0 1]       [0]                                            
                                                           =  quicksort#(@xs)                                              
        
                         quicksort#2#(tuple#2(@xs,@ys),@z) =  [0 0 1]       [0 0 1]       [0]                              
                                                              [0 0 0] @xs + [0 0 0] @ys + [0]                              
                                                              [0 0 1]       [0 0 1]       [1]                              
                                                           >= [0 0 1]       [0]                                            
                                                              [0 0 0] @ys + [0]                                            
                                                              [0 0 1]       [0]                                            
                                                           =  quicksort#(@ys)                                              
        
                                              sortAll#(@l) =  [0 1 0]      [0]                                             
                                                              [0 0 0] @l + [0]                                             
                                                              [0 1 0]      [0]                                             
                                                           >= [0 1 0]      [0]                                             
                                                              [0 0 0] @l + [0]                                             
                                                              [0 1 0]      [0]                                             
                                                           =  sortAll#1#(@l)                                               
        
                                    sortAll#1#(::(@x,@xs)) =  [0 0 1]      [0 1 0]       [0]                               
                                                              [0 0 0] @x + [0 0 0] @xs + [0]                               
                                                              [0 0 1]      [0 1 0]       [0]                               
                                                           >= [0 0 1]      [0 1 0]       [0]                               
                                                              [0 0 0] @x + [0 0 0] @xs + [0]                               
                                                              [0 0 1]      [0 1 0]       [0]                               
                                                           =  sortAll#2#(@x,@xs)                                           
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 0 1]         [0 1 0]       [0]                            
                                                              [0 0 0] @vals + [0 0 0] @xs + [0]                            
                                                              [0 0 1]         [0 1 0]       [0]                            
                                                           >= [0 0 1]         [0]                                          
                                                              [0 0 0] @vals + [0]                                          
                                                              [0 0 1]         [0]                                          
                                                           =  quicksort#(@vals)                                            
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 0 1]         [0 1 0]       [0]                            
                                                              [0 0 0] @vals + [0 0 0] @xs + [0]                            
                                                              [0 0 1]         [0 1 0]       [0]                            
                                                           >= [0 1 0]       [0]                                            
                                                              [0 0 0] @xs + [0]                                            
                                                              [0 1 0]       [0]                                            
                                                           =  sortAll#(@xs)                                                
        
                                         splitAndSort#(@l) =  [1 0 1]      [0]                                             
                                                              [0 0 0] @l + [0]                                             
                                                              [1 0 1]      [0]                                             
                                                           >= [1 0 1]      [0]                                             
                                                              [0 0 0] @l + [0]                                             
                                                              [1 0 1]      [0]                                             
                                                           =  sortAll#(split(@l))                                          
        
                                            append(@l,@ys) =  [0 0 0]      [1 0 0]       [0]                               
                                                              [0 1 0] @l + [0 1 0] @ys + [0]                               
                                                              [0 0 1]      [0 0 1]       [0]                               
                                                           >= [0 0 0]      [1 0 0]       [0]                               
                                                              [0 1 0] @l + [0 1 0] @ys + [0]                               
                                                              [0 0 1]      [0 0 1]       [0]                               
                                                           =  append#1(@l,@ys)                                             
        
                                  append#1(::(@x,@xs),@ys) =  [0 0 0]      [0 0 0]       [1 0 0]       [0]                 
                                                              [0 0 1] @x + [0 1 0] @xs + [0 1 0] @ys + [0]                 
                                                              [0 0 0]      [0 0 1]       [0 0 1]       [1]                 
                                                           >= [0 0 0]      [0 0 0]       [1 0 0]       [0]                 
                                                              [0 0 1] @x + [0 1 0] @xs + [0 1 0] @ys + [0]                 
                                                              [0 0 0]      [0 0 1]       [0 0 1]       [1]                 
                                                           =  ::(@x,append(@xs,@ys))                                       
        
                                       append#1(nil(),@ys) =  [1 0 0]       [0]                                            
                                                              [0 1 0] @ys + [0]                                            
                                                              [0 0 1]       [0]                                            
                                                           >= [1 0 0]       [0]                                            
                                                              [0 1 0] @ys + [0]                                            
                                                              [0 0 1]       [0]                                            
                                                           =  @ys                                                          
        
                                             insert(@x,@l) =  [1 0 0]      [0]                                             
                                                              [0 1 0] @l + [1]                                             
                                                              [1 0 1]      [0]                                             
                                                           >= [1 0 0]      [0]                                             
                                                              [0 1 0] @l + [1]                                             
                                                              [1 0 1]      [0]                                             
                                                           =  insert#1(@x,@l,@x)                                           
        
                      insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1 0 0]      [0]                                             
                                                              [0 1 0] @l + [1]                                             
                                                              [1 0 1]      [0]                                             
                                                           >= [1 0 0]      [0]                                             
                                                              [0 1 0] @l + [1]                                             
                                                              [1 0 1]      [0]                                             
                                                           =  insert#2(@l,@keyX,@valX,@x)                                  
        
                      insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [0 0 0]       [1 0 0]       [0]                              
                                                              [0 0 1] @l1 + [0 1 0] @ls + [1]                              
                                                              [0 0 0]       [1 0 1]       [1]                              
                                                           >= [0 0 0]       [1 0 0]       [0]                              
                                                              [0 0 1] @l1 + [0 1 0] @ls + [1]                              
                                                              [0 0 0]       [1 0 1]       [1]                              
                                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)                             
        
                            insert#2(nil(),@keyX,@valX,@x) =  [1]                                                          
                                                              [1]                                                          
                                                              [1]                                                          
                                                           >= [1]                                                          
                                                              [1]                                                          
                                                              [1]                                                          
                                                           =  ::(tuple#2(::(@valX,nil()),@keyX),nil())                     
        
        insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1 0 0]       [0 0 0]          [0]                           
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                           
                                                              [1 0 1]       [0 0 0]          [1]                           
                                                           >= [1 0 0]       [0 0 0]          [0]                           
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                           
                                                              [1 0 1]       [0 0 0]          [1]                           
                                                           =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)      
        
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 0 0]          [0]                           
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                           
                                                              [1 0 1]       [0 0 0]          [1]                           
                                                           >= [1 0 0]       [0 0 0]          [0]                           
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                           
                                                              [1 0 1]       [0 0 0]          [1]                           
                                                           =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))                     
        
               insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 0 0]          [0]                           
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                           
                                                              [1 0 1]       [0 0 0]          [1]                           
                                                           >= [1 0 0]       [0 0 0]          [0]                           
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                           
                                                              [0 0 1]       [0 0 0]          [1]                           
                                                           =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                      
        
                                             quicksort(@l) =  [0 0 0]      [1]                                             
                                                              [0 1 0] @l + [0]                                             
                                                              [0 0 1]      [0]                                             
                                                           >= [0 0 0]      [1]                                             
                                                              [0 1 0] @l + [0]                                             
                                                              [0 0 1]      [0]                                             
                                                           =  quicksort#1(@l)                                              
        
                                   quicksort#1(::(@z,@zs)) =  [0 0 0]      [0 0 0]       [1]                               
                                                              [0 0 1] @z + [0 1 0] @zs + [0]                               
                                                              [0 0 0]      [0 0 1]       [1]                               
                                                           >= [0 0 0]      [0 0 0]       [1]                               
                                                              [0 0 1] @z + [0 1 0] @zs + [0]                               
                                                              [0 0 0]      [0 0 1]       [1]                               
                                                           =  quicksort#2(splitqs(@z,@zs),@z)                              
        
                                        quicksort#1(nil()) =  [1]                                                          
                                                              [0]                                                          
                                                              [0]                                                          
                                                           >= [1]                                                          
                                                              [0]                                                          
                                                              [0]                                                          
                                                           =  nil()                                                        
        
                          quicksort#2(tuple#2(@xs,@ys),@z) =  [0 0 0]       [0 0 0]       [0 0 0]      [1]                 
                                                              [0 1 0] @xs + [0 1 0] @ys + [0 0 1] @z + [0]                 
                                                              [0 0 1]       [0 0 1]       [0 0 0]      [1]                 
                                                           >= [0 0 0]       [0 0 0]       [0 0 0]      [1]                 
                                                              [0 1 0] @xs + [0 1 0] @ys + [0 0 1] @z + [0]                 
                                                              [0 0 1]       [0 0 1]       [0 0 0]      [1]                 
                                                           =  append(quicksort(@xs),::(@z,quicksort(@ys)))                 
        
                                                 split(@l) =  [0 0 0]      [1]                                             
                                                              [1 0 1] @l + [0]                                             
                                                              [0 0 1]      [0]                                             
                                                           >= [0 0 0]      [1]                                             
                                                              [1 0 1] @l + [0]                                             
                                                              [0 0 1]      [0]                                             
                                                           =  split#1(@l)                                                  
        
                                       split#1(::(@x,@xs)) =  [0 0 0]       [1]                                            
                                                              [1 0 1] @xs + [1]                                            
                                                              [0 0 1]       [1]                                            
                                                           >= [0 0 0]       [1]                                            
                                                              [1 0 1] @xs + [1]                                            
                                                              [0 0 1]       [1]                                            
                                                           =  insert(@x,split(@xs))                                        
        
                                            split#1(nil()) =  [1]                                                          
                                                              [1]                                                          
                                                              [0]                                                          
                                                           >= [1]                                                          
                                                              [0]                                                          
                                                              [0]                                                          
                                                           =  nil()                                                        
        
                                        splitqs(@pivot,@l) =  [0 1 0]      [0 0 0]          [0]                            
                                                              [0 0 1] @l + [0 0 0] @pivot + [0]                            
                                                              [0 0 1]      [1 1 1]          [0]                            
                                                           >= [0 1 0]      [0 0 0]          [0]                            
                                                              [0 0 1] @l + [0 0 0] @pivot + [0]                            
                                                              [0 0 1]      [1 1 1]          [0]                            
                                                           =  splitqs#1(@l,@pivot)                                         
        
                              splitqs#1(::(@x,@xs),@pivot) =  [0 0 0]          [0 0 1]      [0 1 0]       [0]              
                                                              [0 0 0] @pivot + [0 0 0] @x + [0 0 1] @xs + [1]              
                                                              [1 1 1]          [0 0 0]      [0 0 1]       [1]              
                                                           >= [0 0 0]          [0 0 1]      [0 1 0]       [0]              
                                                              [0 0 0] @pivot + [0 0 0] @x + [0 0 1] @xs + [1]              
                                                              [0 0 1]          [0 0 0]      [0 0 1]       [1]              
                                                           =  splitqs#2(splitqs(@pivot,@xs),@pivot,@x)                     
        
                                   splitqs#1(nil(),@pivot) =  [0 0 0]          [0]                                         
                                                              [0 0 0] @pivot + [0]                                         
                                                              [1 1 1]          [0]                                         
                                                           >= [0]                                                          
                                                              [0]                                                          
                                                              [0]                                                          
                                                           =  tuple#2(nil(),nil())                                         
        
                     splitqs#2(tuple#2(@ls,@rs),@pivot,@x) =  [0 1 0]       [0 0 0]          [0 1 0]       [0 0 1]      [0]
                                                              [0 0 1] @ls + [0 0 0] @pivot + [0 0 1] @rs + [0 0 0] @x + [1]
                                                              [0 0 1]       [0 0 1]          [0 0 1]       [0 0 0]      [1]
                                                           >= [0 1 0]       [0 1 0]       [0 0 1]      [0]                 
                                                              [0 0 1] @ls + [0 0 1] @rs + [0 0 0] @x + [1]                 
                                                              [0 0 1]       [0 0 1]       [0 0 0]      [1]                 
                                                           =  splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)                    
        
                            splitqs#3(#false(),@ls,@rs,@x) =  [0 1 0]       [0 1 0]       [0 0 1]      [0]                 
                                                              [0 0 1] @ls + [0 0 1] @rs + [0 0 0] @x + [1]                 
                                                              [0 0 1]       [0 0 1]       [0 0 0]      [1]                 
                                                           >= [0 1 0]       [0 1 0]       [0 0 1]      [0]                 
                                                              [0 0 1] @ls + [0 0 1] @rs + [0 0 0] @x + [1]                 
                                                              [0 0 1]       [0 0 0]       [0 0 0]      [1]                 
                                                           =  tuple#2(::(@x,@ls),@rs)                                      
        
                             splitqs#3(#true(),@ls,@rs,@x) =  [0 1 0]       [0 1 0]       [0 0 1]      [0]                 
                                                              [0 0 1] @ls + [0 0 1] @rs + [0 0 0] @x + [1]                 
                                                              [0 0 1]       [0 0 1]       [0 0 0]      [1]                 
                                                           >= [0 1 0]       [0 1 0]       [0 0 1]      [0]                 
                                                              [0 0 1] @ls + [0 0 1] @rs + [0 0 0] @x + [1]                 
                                                              [0 0 1]       [0 0 0]       [0 0 0]      [0]                 
                                                           =  tuple#2(@ls,::(@x,@rs))                                      
        
**** Step 8.a:3.b:1.b:2: MI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
        - Weak DPs:
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
            quicksort#(@l) -> quicksort#1#(@l)
            quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> append#(quicksort(@xs),::(@z,quicksort(@ys)))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        MI {miKind = MaximalMatrix (UpperTriangular (Multiplicity Nothing)), miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind MaximalMatrix (UpperTriangular (Multiplicity Nothing)):
        
        The following argument positions are considered usable:
          uargs(c_3) = {1},
          uargs(c_4) = {1}
        
        Following symbols are considered usable:
          {append,append#1,insert,insert#1,insert#2,insert#3,insert#4,quicksort,quicksort#1,quicksort#2,split
          ,split#1,splitqs,splitqs#1,splitqs#2,splitqs#3,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
          ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
          ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(#EQ) = [0]                                          
                             [0]                                          
                             [1]                                          
                    p(#GT) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(#LT) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(#and) = [0]                                          
                             [0]                                          
                             [1]                                          
                  p(#ckgt) = [0 0 0]       [0]                            
                             [0 0 0] x_1 + [1]                            
                             [0 0 1]       [0]                            
               p(#compare) = [0 0 0]       [0]                            
                             [0 0 0] x_1 + [0]                            
                             [0 0 1]       [0]                            
                    p(#eq) = [0]                                          
                             [0]                                          
                             [0]                                          
                 p(#equal) = [0]                                          
                             [0]                                          
                             [0]                                          
                 p(#false) = [0]                                          
                             [0]                                          
                             [0]                                          
               p(#greater) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(#neg) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(#pos) = [0]                                          
                             [0]                                          
                             [0]                                          
                     p(#s) = [0]                                          
                             [0]                                          
                             [0]                                          
                  p(#true) = [0]                                          
                             [0]                                          
                             [0]                                          
                     p(::) = [0 0 0]       [1 0 0]       [0]              
                             [0 0 1] x_1 + [0 1 0] x_2 + [0]              
                             [0 0 0]       [0 0 1]       [1]              
                 p(append) = [0 0 0]       [1 0 0]       [0]              
                             [0 1 0] x_1 + [0 1 0] x_2 + [0]              
                             [0 0 1]       [0 0 1]       [0]              
               p(append#1) = [0 0 0]       [1 0 0]       [0]              
                             [0 1 0] x_1 + [0 1 0] x_2 + [0]              
                             [0 0 1]       [0 0 1]       [0]              
                 p(insert) = [1 0 0]       [0]                            
                             [0 1 0] x_2 + [1]                            
                             [1 0 1]       [0]                            
               p(insert#1) = [1 0 0]       [0]                            
                             [0 1 0] x_2 + [1]                            
                             [1 0 1]       [0]                            
               p(insert#2) = [1 0 0]       [0]                            
                             [0 1 0] x_1 + [1]                            
                             [1 0 1]       [0]                            
               p(insert#3) = [0 0 0]       [1 0 0]       [0]              
                             [0 0 1] x_1 + [0 1 0] x_3 + [1]              
                             [0 0 0]       [1 0 1]       [1]              
               p(insert#4) = [1 0 0]       [0 0 0]       [0]              
                             [0 1 0] x_3 + [0 0 1] x_5 + [1]              
                             [1 0 1]       [0 0 0]       [1]              
                    p(nil) = [1]                                          
                             [0]                                          
                             [0]                                          
              p(quicksort) = [0 0 0]       [1]                            
                             [0 1 0] x_1 + [0]                            
                             [0 0 1]       [0]                            
            p(quicksort#1) = [0 0 0]       [1]                            
                             [0 1 0] x_1 + [0]                            
                             [0 0 1]       [0]                            
            p(quicksort#2) = [0 0 0]       [0 0 0]       [1]              
                             [1 0 0] x_1 + [0 0 1] x_2 + [0]              
                             [0 1 0]       [0 0 0]       [1]              
                p(sortAll) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(sortAll#1) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(sortAll#2) = [0]                                          
                             [0]                                          
                             [0]                                          
                  p(split) = [0 0 0]       [1]                            
                             [0 0 1] x_1 + [0]                            
                             [0 0 1]       [0]                            
                p(split#1) = [0 0 0]       [1]                            
                             [0 0 1] x_1 + [0]                            
                             [0 0 1]       [0]                            
           p(splitAndSort) = [0]                                          
                             [0]                                          
                             [0]                                          
                p(splitqs) = [0 0 0]       [0 1 0]       [0]              
                             [0 0 0] x_1 + [0 0 1] x_2 + [0]              
                             [1 1 1]       [0 0 1]       [0]              
              p(splitqs#1) = [0 1 0]       [0 0 0]       [0]              
                             [0 0 1] x_1 + [0 0 0] x_2 + [0]              
                             [0 0 1]       [1 1 1]       [0]              
              p(splitqs#2) = [1 0 0]       [0 0 1]       [0]              
                             [0 1 0] x_1 + [0 0 0] x_3 + [1]              
                             [0 1 0]       [0 0 0]       [1]              
              p(splitqs#3) = [0 1 0]       [0 1 0]       [0 0 1]       [0]
                             [0 0 1] x_2 + [0 0 1] x_3 + [0 0 0] x_4 + [1]
                             [0 0 1]       [0 0 0]       [0 0 0]       [1]
                p(tuple#2) = [0 1 0]       [0 1 0]       [0]              
                             [0 0 1] x_1 + [0 0 1] x_2 + [0]              
                             [0 0 1]       [0 0 0]       [0]              
                  p(#and#) = [0]                                          
                             [0]                                          
                             [0]                                          
                 p(#ckgt#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(#compare#) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(#eq#) = [0]                                          
                             [0]                                          
                             [0]                                          
                p(#equal#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(#greater#) = [0]                                          
                             [0]                                          
                             [0]                                          
                p(append#) = [0 0 1]       [1]                            
                             [1 0 0] x_1 + [0]                            
                             [0 0 0]       [0]                            
              p(append#1#) = [0 0 1]       [0]                            
                             [1 1 0] x_1 + [0]                            
                             [1 0 0]       [0]                            
                p(insert#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(insert#1#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(insert#2#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(insert#3#) = [0]                                          
                             [0]                                          
                             [0]                                          
              p(insert#4#) = [0]                                          
                             [0]                                          
                             [0]                                          
             p(quicksort#) = [0 0 1]       [0]                            
                             [0 0 0] x_1 + [1]                            
                             [0 0 0]       [0]                            
           p(quicksort#1#) = [0 0 1]       [0]                            
                             [0 0 0] x_1 + [1]                            
                             [0 0 0]       [0]                            
           p(quicksort#2#) = [0 1 0]       [1]                            
                             [0 0 0] x_1 + [1]                            
                             [0 0 0]       [0]                            
               p(sortAll#) = [0 1 0]       [0]                            
                             [0 0 0] x_1 + [1]                            
                             [0 0 1]       [0]                            
             p(sortAll#1#) = [0 1 0]       [0]                            
                             [0 0 0] x_1 + [1]                            
                             [0 0 1]       [0]                            
             p(sortAll#2#) = [0 0 1]       [0 1 0]       [0]              
                             [0 0 0] x_1 + [0 0 0] x_2 + [1]              
                             [0 0 0]       [0 0 1]       [1]              
                 p(split#) = [0]                                          
                             [0]                                          
                             [0]                                          
               p(split#1#) = [0]                                          
                             [0]                                          
                             [0]                                          
          p(splitAndSort#) = [0 0 1]       [1]                            
                             [1 1 0] x_1 + [1]                            
                             [1 0 1]       [1]                            
               p(splitqs#) = [0]                                          
                             [0]                                          
                             [0]                                          
             p(splitqs#1#) = [0]                                          
                             [0]                                          
                             [0]                                          
             p(splitqs#2#) = [0]                                          
                             [0]                                          
                             [0]                                          
             p(splitqs#3#) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_1) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_2) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_3) = [1 0 0]       [0]                            
                             [0 0 1] x_1 + [0]                            
                             [0 0 0]       [0]                            
                    p(c_4) = [1 0 0]       [0]                            
                             [0 1 0] x_1 + [0]                            
                             [0 0 0]       [0]                            
                    p(c_5) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_6) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_7) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_8) = [0]                                          
                             [0]                                          
                             [0]                                          
                    p(c_9) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_10) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_11) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_12) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_13) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_14) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_15) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_16) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_17) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_18) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_19) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_20) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_21) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_22) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_23) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_24) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_25) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_26) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_27) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_28) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_29) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_30) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_31) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_32) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_33) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_34) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_35) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_36) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_37) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_38) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_39) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_40) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_41) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_42) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_43) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_44) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_45) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_46) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_47) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_48) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_49) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_50) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_51) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_52) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_53) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_54) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_55) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_56) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_57) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_58) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_59) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_60) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_61) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_62) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_63) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_64) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_65) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_66) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_67) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_68) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_69) = [0]                                          
                             [0]                                          
                             [0]                                          
                   p(c_70) = [0]                                          
                             [0]                                          
                             [0]                                          
        
        Following rules are strictly oriented:
        append#(@l,@ys) = [0 0 1]      [1]      
                          [1 0 0] @l + [0]      
                          [0 0 0]      [0]      
                        > [0 0 1]      [0]      
                          [1 0 0] @l + [0]      
                          [0 0 0]      [0]      
                        = c_3(append#1#(@l,@ys))
        
        
        Following rules are (at-least) weakly oriented:
                                 append#1#(::(@x,@xs),@ys) =  [0 0 0]      [0 0 1]       [1]                         
                                                              [0 0 1] @x + [1 1 0] @xs + [0]                         
                                                              [0 0 0]      [1 0 0]       [0]                         
                                                           >= [0 0 1]       [1]                                      
                                                              [1 0 0] @xs + [0]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  c_4(append#(@xs,@ys))                                  
        
                                            quicksort#(@l) =  [0 0 1]      [0]                                       
                                                              [0 0 0] @l + [1]                                       
                                                              [0 0 0]      [0]                                       
                                                           >= [0 0 1]      [0]                                       
                                                              [0 0 0] @l + [1]                                       
                                                              [0 0 0]      [0]                                       
                                                           =  quicksort#1#(@l)                                       
        
                                  quicksort#1#(::(@z,@zs)) =  [0 0 1]       [1]                                      
                                                              [0 0 0] @zs + [1]                                      
                                                              [0 0 0]       [0]                                      
                                                           >= [0 0 1]       [1]                                      
                                                              [0 0 0] @zs + [1]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  quicksort#2#(splitqs(@z,@zs),@z)                       
        
                         quicksort#2#(tuple#2(@xs,@ys),@z) =  [0 0 1]       [0 0 1]       [1]                        
                                                              [0 0 0] @xs + [0 0 0] @ys + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 0 1]       [1]                                      
                                                              [0 0 0] @xs + [1]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  append#(quicksort(@xs),::(@z,quicksort(@ys)))          
        
                         quicksort#2#(tuple#2(@xs,@ys),@z) =  [0 0 1]       [0 0 1]       [1]                        
                                                              [0 0 0] @xs + [0 0 0] @ys + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 0 1]       [0]                                      
                                                              [0 0 0] @xs + [1]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  quicksort#(@xs)                                        
        
                         quicksort#2#(tuple#2(@xs,@ys),@z) =  [0 0 1]       [0 0 1]       [1]                        
                                                              [0 0 0] @xs + [0 0 0] @ys + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 0 1]       [0]                                      
                                                              [0 0 0] @ys + [1]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  quicksort#(@ys)                                        
        
                                              sortAll#(@l) =  [0 1 0]      [0]                                       
                                                              [0 0 0] @l + [1]                                       
                                                              [0 0 1]      [0]                                       
                                                           >= [0 1 0]      [0]                                       
                                                              [0 0 0] @l + [1]                                       
                                                              [0 0 1]      [0]                                       
                                                           =  sortAll#1#(@l)                                         
        
                                    sortAll#1#(::(@x,@xs)) =  [0 0 1]      [0 1 0]       [0]                         
                                                              [0 0 0] @x + [0 0 0] @xs + [1]                         
                                                              [0 0 0]      [0 0 1]       [1]                         
                                                           >= [0 0 1]      [0 1 0]       [0]                         
                                                              [0 0 0] @x + [0 0 0] @xs + [1]                         
                                                              [0 0 0]      [0 0 1]       [1]                         
                                                           =  sortAll#2#(@x,@xs)                                     
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 0 1]         [0 1 0]       [0]                      
                                                              [0 0 0] @vals + [0 0 0] @xs + [1]                      
                                                              [0 0 0]         [0 0 1]       [1]                      
                                                           >= [0 0 1]         [0]                                    
                                                              [0 0 0] @vals + [1]                                    
                                                              [0 0 0]         [0]                                    
                                                           =  quicksort#(@vals)                                      
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 0 1]         [0 1 0]       [0]                      
                                                              [0 0 0] @vals + [0 0 0] @xs + [1]                      
                                                              [0 0 0]         [0 0 1]       [1]                      
                                                           >= [0 1 0]       [0]                                      
                                                              [0 0 0] @xs + [1]                                      
                                                              [0 0 1]       [0]                                      
                                                           =  sortAll#(@xs)                                          
        
                                         splitAndSort#(@l) =  [0 0 1]      [1]                                       
                                                              [1 1 0] @l + [1]                                       
                                                              [1 0 1]      [1]                                       
                                                           >= [0 0 1]      [0]                                       
                                                              [0 0 0] @l + [1]                                       
                                                              [0 0 1]      [0]                                       
                                                           =  sortAll#(split(@l))                                    
        
                                            append(@l,@ys) =  [0 0 0]      [1 0 0]       [0]                         
                                                              [0 1 0] @l + [0 1 0] @ys + [0]                         
                                                              [0 0 1]      [0 0 1]       [0]                         
                                                           >= [0 0 0]      [1 0 0]       [0]                         
                                                              [0 1 0] @l + [0 1 0] @ys + [0]                         
                                                              [0 0 1]      [0 0 1]       [0]                         
                                                           =  append#1(@l,@ys)                                       
        
                                  append#1(::(@x,@xs),@ys) =  [0 0 0]      [0 0 0]       [1 0 0]       [0]           
                                                              [0 0 1] @x + [0 1 0] @xs + [0 1 0] @ys + [0]           
                                                              [0 0 0]      [0 0 1]       [0 0 1]       [1]           
                                                           >= [0 0 0]      [0 0 0]       [1 0 0]       [0]           
                                                              [0 0 1] @x + [0 1 0] @xs + [0 1 0] @ys + [0]           
                                                              [0 0 0]      [0 0 1]       [0 0 1]       [1]           
                                                           =  ::(@x,append(@xs,@ys))                                 
        
                                       append#1(nil(),@ys) =  [1 0 0]       [0]                                      
                                                              [0 1 0] @ys + [0]                                      
                                                              [0 0 1]       [0]                                      
                                                           >= [1 0 0]       [0]                                      
                                                              [0 1 0] @ys + [0]                                      
                                                              [0 0 1]       [0]                                      
                                                           =  @ys                                                    
        
                                             insert(@x,@l) =  [1 0 0]      [0]                                       
                                                              [0 1 0] @l + [1]                                       
                                                              [1 0 1]      [0]                                       
                                                           >= [1 0 0]      [0]                                       
                                                              [0 1 0] @l + [1]                                       
                                                              [1 0 1]      [0]                                       
                                                           =  insert#1(@x,@l,@x)                                     
        
                      insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1 0 0]      [0]                                       
                                                              [0 1 0] @l + [1]                                       
                                                              [1 0 1]      [0]                                       
                                                           >= [1 0 0]      [0]                                       
                                                              [0 1 0] @l + [1]                                       
                                                              [1 0 1]      [0]                                       
                                                           =  insert#2(@l,@keyX,@valX,@x)                            
        
                      insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [0 0 0]       [1 0 0]       [0]                        
                                                              [0 0 1] @l1 + [0 1 0] @ls + [1]                        
                                                              [0 0 0]       [1 0 1]       [1]                        
                                                           >= [0 0 0]       [1 0 0]       [0]                        
                                                              [0 0 1] @l1 + [0 1 0] @ls + [1]                        
                                                              [0 0 0]       [1 0 1]       [1]                        
                                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)                       
        
                            insert#2(nil(),@keyX,@valX,@x) =  [1]                                                    
                                                              [1]                                                    
                                                              [1]                                                    
                                                           >= [1]                                                    
                                                              [1]                                                    
                                                              [1]                                                    
                                                           =  ::(tuple#2(::(@valX,nil()),@keyX),nil())               
        
        insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1 0 0]       [0 0 0]          [0]                     
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                     
                                                              [1 0 1]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 0 0]          [0]                     
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                     
                                                              [1 0 1]       [0 0 0]          [1]                     
                                                           =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)
        
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 0 0]          [0]                     
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                     
                                                              [1 0 1]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 0 0]          [0]                     
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                     
                                                              [1 0 1]       [0 0 0]          [1]                     
                                                           =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))               
        
               insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 0 0]          [0]                     
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                     
                                                              [1 0 1]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 0 0]          [0]                     
                                                              [0 1 0] @ls + [0 0 1] @vals1 + [1]                     
                                                              [0 0 1]       [0 0 0]          [1]                     
                                                           =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                
        
                                             quicksort(@l) =  [0 0 0]      [1]                                       
                                                              [0 1 0] @l + [0]                                       
                                                              [0 0 1]      [0]                                       
                                                           >= [0 0 0]      [1]                                       
                                                              [0 1 0] @l + [0]                                       
                                                              [0 0 1]      [0]                                       
                                                           =  quicksort#1(@l)                                        
        
                                   quicksort#1(::(@z,@zs)) =  [0 0 0]      [0 0 0]       [1]                         
                                                              [0 0 1] @z + [0 1 0] @zs + [0]                         
                                                              [0 0 0]      [0 0 1]       [1]                         
                                                           >= [0 0 0]      [0 0 0]       [1]                         
                                                              [0 0 1] @z + [0 1 0] @zs + [0]                         
                                                              [0 0 0]      [0 0 1]       [1]                         
                                                           =  quicksort#2(splitqs(@z,@zs),@z)                        
        
                                        quicksort#1(nil()) =  [1]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [1]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  nil()                                                  
        
                          quicksort#2(tuple#2(@xs,@ys),@z) =  [0 0 0]       [0 0 0]       [0 0 0]      [1]           
                                                              [0 1 0] @xs + [0 1 0] @ys + [0 0 1] @z + [0]           
                                                              [0 0 1]       [0 0 1]       [0 0 0]      [1]           
                                                           >= [0 0 0]       [0 0 0]       [0 0 0]      [1]           
                                                              [0 1 0] @xs + [0 1 0] @ys + [0 0 1] @z + [0]           
                                                              [0 0 1]       [0 0 1]       [0 0 0]      [1]           
                                                           =  append(quicksort(@xs),::(@z,quicksort(@ys)))           
        
                                                 split(@l) =  [0 0 0]      [1]                                       
                                                              [0 0 1] @l + [0]                                       
                                                              [0 0 1]      [0]                                       
                                                           >= [0 0 0]      [1]                                       
                                                              [0 0 1] @l + [0]                                       
                                                              [0 0 1]      [0]                                       
                                                           =  split#1(@l)                                            
        
                                       split#1(::(@x,@xs)) =  [0 0 0]       [1]                                      
                                                              [0 0 1] @xs + [1]                                      
                                                              [0 0 1]       [1]                                      
                                                           >= [0 0 0]       [1]                                      
                                                              [0 0 1] @xs + [1]                                      
                                                              [0 0 1]       [1]                                      
                                                           =  insert(@x,split(@xs))                                  
        
                                            split#1(nil()) =  [1]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [1]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  nil()                                                  
        
                                        splitqs(@pivot,@l) =  [0 1 0]      [0 0 0]          [0]                      
                                                              [0 0 1] @l + [0 0 0] @pivot + [0]                      
                                                              [0 0 1]      [1 1 1]          [0]                      
                                                           >= [0 1 0]      [0 0 0]          [0]                      
                                                              [0 0 1] @l + [0 0 0] @pivot + [0]                      
                                                              [0 0 1]      [1 1 1]          [0]                      
                                                           =  splitqs#1(@l,@pivot)                                   
        
                              splitqs#1(::(@x,@xs),@pivot) =  [0 0 0]          [0 0 1]      [0 1 0]       [0]        
                                                              [0 0 0] @pivot + [0 0 0] @x + [0 0 1] @xs + [1]        
                                                              [1 1 1]          [0 0 0]      [0 0 1]       [1]        
                                                           >= [0 0 1]      [0 1 0]       [0]                         
                                                              [0 0 0] @x + [0 0 1] @xs + [1]                         
                                                              [0 0 0]      [0 0 1]       [1]                         
                                                           =  splitqs#2(splitqs(@pivot,@xs),@pivot,@x)               
        
                                   splitqs#1(nil(),@pivot) =  [0 0 0]          [0]                                   
                                                              [0 0 0] @pivot + [0]                                   
                                                              [1 1 1]          [0]                                   
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  tuple#2(nil(),nil())                                   
        
                     splitqs#2(tuple#2(@ls,@rs),@pivot,@x) =  [0 1 0]       [0 1 0]       [0 0 1]      [0]           
                                                              [0 0 1] @ls + [0 0 1] @rs + [0 0 0] @x + [1]           
                                                              [0 0 1]       [0 0 1]       [0 0 0]      [1]           
                                                           >= [0 1 0]       [0 1 0]       [0 0 1]      [0]           
                                                              [0 0 1] @ls + [0 0 1] @rs + [0 0 0] @x + [1]           
                                                              [0 0 1]       [0 0 0]       [0 0 0]      [1]           
                                                           =  splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)              
        
                            splitqs#3(#false(),@ls,@rs,@x) =  [0 1 0]       [0 1 0]       [0 0 1]      [0]           
                                                              [0 0 1] @ls + [0 0 1] @rs + [0 0 0] @x + [1]           
                                                              [0 0 1]       [0 0 0]       [0 0 0]      [1]           
                                                           >= [0 1 0]       [0 1 0]       [0 0 1]      [0]           
                                                              [0 0 1] @ls + [0 0 1] @rs + [0 0 0] @x + [1]           
                                                              [0 0 1]       [0 0 0]       [0 0 0]      [1]           
                                                           =  tuple#2(::(@x,@ls),@rs)                                
        
                             splitqs#3(#true(),@ls,@rs,@x) =  [0 1 0]       [0 1 0]       [0 0 1]      [0]           
                                                              [0 0 1] @ls + [0 0 1] @rs + [0 0 0] @x + [1]           
                                                              [0 0 1]       [0 0 0]       [0 0 0]      [1]           
                                                           >= [0 1 0]       [0 1 0]       [0 0 1]      [0]           
                                                              [0 0 1] @ls + [0 0 1] @rs + [0 0 0] @x + [1]           
                                                              [0 0 1]       [0 0 0]       [0 0 0]      [0]           
                                                           =  tuple#2(@ls,::(@x,@rs))                                
        
**** Step 8.a:3.b:1.b:3: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
            quicksort#(@l) -> quicksort#1#(@l)
            quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> append#(quicksort(@xs),::(@z,quicksort(@ys)))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/1,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

** Step 8.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak DPs:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
             -->_1 insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x)):2
          
          2:S:insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
             -->_1 insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x)):3
          
          3:S:insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
             -->_1 insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                        ,@key1
                                                                                        ,@ls
                                                                                        ,@valX
                                                                                        ,@vals1
                                                                                        ,@x)):4
          
          4:S:insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x))
             -->_1 insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls)):5
          
          5:S:insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
          
          6:S:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):7
          
          7:S:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):15
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                            ,quicksort#(@xs)
                                                            ,quicksort#(@ys)):8
          
          8:S:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                       ,quicksort#(@xs)
                                                       ,quicksort#(@ys))
             -->_1 append#(@l,@ys) -> c_3(append#1#(@l,@ys)):17
             -->_3 quicksort#(@l) -> c_13(quicksort#1#(@l)):6
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):6
          
          9:S:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):10
          
          10:S:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):11
          
          11:S:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):9
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):6
          
          12:S:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs)):13
          
          13:S:split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
             -->_2 split#(@l) -> c_21(split#1#(@l)):12
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
          
          14:S:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_2 split#(@l) -> c_21(split#1#(@l)):12
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):9
          
          15:S:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs)):16
          
          16:S:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
             -->_1 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):15
          
          17:W:append#(@l,@ys) -> c_3(append#1#(@l,@ys))
             -->_1 append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys)):18
          
          18:W:append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
             -->_1 append#(@l,@ys) -> c_3(append#1#(@l,@ys)):17
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          17: append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          18: append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
** Step 8.b:2: SimplifyRHS WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                     ,quicksort#(@xs)
                                                     ,quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/3,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
             -->_1 insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x)):2
          
          2:S:insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
             -->_1 insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x)):3
          
          3:S:insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
             -->_1 insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                        ,@key1
                                                                                        ,@ls
                                                                                        ,@valX
                                                                                        ,@vals1
                                                                                        ,@x)):4
          
          4:S:insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x))
             -->_1 insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls)):5
          
          5:S:insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
          
          6:S:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):7
          
          7:S:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):15
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                            ,quicksort#(@xs)
                                                            ,quicksort#(@ys)):8
          
          8:S:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys)))
                                                       ,quicksort#(@xs)
                                                       ,quicksort#(@ys))
             -->_3 quicksort#(@l) -> c_13(quicksort#1#(@l)):6
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):6
          
          9:S:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):10
          
          10:S:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):11
          
          11:S:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):9
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):6
          
          12:S:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs)):13
          
          13:S:split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
             -->_2 split#(@l) -> c_21(split#1#(@l)):12
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
          
          14:S:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_2 split#(@l) -> c_21(split#1#(@l)):12
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):9
          
          15:S:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs)):16
          
          16:S:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
             -->_1 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):15
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
** Step 8.b:3: UsableRules WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            append(@l,@ys) -> append#1(@l,@ys)
            append#1(::(@x,@xs),@ys) -> ::(@x,append(@xs,@ys))
            append#1(nil(),@ys) -> @ys
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            quicksort(@l) -> quicksort#1(@l)
            quicksort#1(::(@z,@zs)) -> quicksort#2(splitqs(@z,@zs),@z)
            quicksort#1(nil()) -> nil()
            quicksort#2(tuple#2(@xs,@ys),@z) -> append(quicksort(@xs),::(@z,quicksort(@ys)))
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #and(#false(),#false()) -> #false()
          #and(#false(),#true()) -> #false()
          #and(#true(),#false()) -> #false()
          #and(#true(),#true()) -> #true()
          #ckgt(#EQ()) -> #false()
          #ckgt(#GT()) -> #true()
          #ckgt(#LT()) -> #false()
          #compare(#0(),#0()) -> #EQ()
          #compare(#0(),#neg(@y)) -> #GT()
          #compare(#0(),#pos(@y)) -> #LT()
          #compare(#0(),#s(@y)) -> #LT()
          #compare(#neg(@x),#0()) -> #LT()
          #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
          #compare(#neg(@x),#pos(@y)) -> #LT()
          #compare(#pos(@x),#0()) -> #GT()
          #compare(#pos(@x),#neg(@y)) -> #GT()
          #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
          #compare(#s(@x),#0()) -> #GT()
          #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
          #eq(#0(),#0()) -> #true()
          #eq(#0(),#neg(@y)) -> #false()
          #eq(#0(),#pos(@y)) -> #false()
          #eq(#0(),#s(@y)) -> #false()
          #eq(#neg(@x),#0()) -> #false()
          #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
          #eq(#neg(@x),#pos(@y)) -> #false()
          #eq(#pos(@x),#0()) -> #false()
          #eq(#pos(@x),#neg(@y)) -> #false()
          #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
          #eq(#s(@x),#0()) -> #false()
          #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #eq(::(@x_1,@x_2),nil()) -> #false()
          #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
          #eq(nil(),::(@y_1,@y_2)) -> #false()
          #eq(nil(),nil()) -> #true()
          #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
          #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #equal(@x,@y) -> #eq(@x,@y)
          #greater(@x,@y) -> #ckgt(#compare(@x,@y))
          insert(@x,@l) -> insert#1(@x,@l,@x)
          insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
          insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
          insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
          insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                        ,@key1
                                                                        ,@ls
                                                                        ,@valX
                                                                        ,@vals1
                                                                        ,@x)
          insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
          insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
          split(@l) -> split#1(@l)
          split#1(::(@x,@xs)) -> insert(@x,split(@xs))
          split#1(nil()) -> nil()
          splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
          splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
          splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
          splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
          splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
          splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
          insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
          insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                               ,@key1
                                                                               ,@ls
                                                                               ,@valX
                                                                               ,@vals1
                                                                               ,@x))
          insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          quicksort#(@l) -> c_13(quicksort#1#(@l))
          quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
          sortAll#(@l) -> c_17(sortAll#1#(@l))
          sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          split#(@l) -> c_21(split#1#(@l))
          split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
          splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
          splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
** Step 8.b:4: Decompose WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        We analyse the complexity of following sub-problems (R) and (S).
        Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
        
        Problem (R)
          - Strict DPs:
              insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
              insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
              insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
              insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x))
              insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          - Weak DPs:
              quicksort#(@l) -> c_13(quicksort#1#(@l))
              quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
              quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
              sortAll#(@l) -> c_17(sortAll#1#(@l))
              sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
              sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
              split#(@l) -> c_21(split#1#(@l))
              split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
              splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
              splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
              splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
          - Weak TRS:
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #ckgt(#EQ()) -> #false()
              #ckgt(#GT()) -> #true()
              #ckgt(#LT()) -> #false()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #greater(@x,@y) -> #ckgt(#compare(@x,@y))
              insert(@x,@l) -> insert#1(@x,@l,@x)
              insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
              insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
              insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
              insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                            ,@key1
                                                                            ,@ls
                                                                            ,@valX
                                                                            ,@vals1
                                                                            ,@x)
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
              insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
              split(@l) -> split#1(@l)
              split#1(::(@x,@xs)) -> insert(@x,split(@xs))
              split#1(nil()) -> nil()
              splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
              splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
              splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
              splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
              splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
              splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
          - Signature:
              {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
              ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
              ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2
              ,#eq#/2,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5
              ,insert#4#/6,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1
              ,split#1#/1,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0
              ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1
              ,c_9/0,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0
              ,c_24/2,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0
              ,c_39/0,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0
              ,c_54/0,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0
              ,c_69/0,c_70/3}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
              ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
              ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
              ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              quicksort#(@l) -> c_13(quicksort#1#(@l))
              quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
              quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
              sortAll#(@l) -> c_17(sortAll#1#(@l))
              sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
              sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
              split#(@l) -> c_21(split#1#(@l))
              split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
              splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
              splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
              splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
          - Weak DPs:
              insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
              insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
              insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
              insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x))
              insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          - Weak TRS:
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #ckgt(#EQ()) -> #false()
              #ckgt(#GT()) -> #true()
              #ckgt(#LT()) -> #false()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #greater(@x,@y) -> #ckgt(#compare(@x,@y))
              insert(@x,@l) -> insert#1(@x,@l,@x)
              insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
              insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
              insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
              insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                            ,@key1
                                                                            ,@ls
                                                                            ,@valX
                                                                            ,@vals1
                                                                            ,@x)
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
              insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
              split(@l) -> split#1(@l)
              split#1(::(@x,@xs)) -> insert(@x,split(@xs))
              split#1(nil()) -> nil()
              splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
              splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
              splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
              splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
              splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
              splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
          - Signature:
              {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
              ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
              ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2
              ,#eq#/2,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5
              ,insert#4#/6,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1
              ,split#1#/1,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0
              ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1
              ,c_9/0,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0
              ,c_24/2,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0
              ,c_39/0,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0
              ,c_54/0,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0
              ,c_69/0,c_70/3}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
              ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
              ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
              ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
*** Step 8.b:4.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
        - Weak DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
             -->_1 insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x)):2
          
          2:S:insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
             -->_1 insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x)):3
          
          3:S:insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
             -->_1 insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                        ,@key1
                                                                                        ,@ls
                                                                                        ,@valX
                                                                                        ,@vals1
                                                                                        ,@x)):4
          
          4:S:insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x))
             -->_1 insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls)):5
          
          5:S:insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
          
          6:W:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):7
          
          7:W:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):15
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys)):8
          
          8:W:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):6
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):6
          
          9:W:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):10
          
          10:W:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):11
          
          11:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):6
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):9
          
          12:W:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs)):13
          
          13:W:split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
             -->_2 split#(@l) -> c_21(split#1#(@l)):12
          
          14:W:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):9
             -->_2 split#(@l) -> c_21(split#1#(@l)):12
          
          15:W:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs)):16
          
          16:W:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
             -->_1 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):15
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          9: sortAll#(@l) -> c_17(sortAll#1#(@l))
          11: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          10: sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          6: quicksort#(@l) -> c_13(quicksort#1#(@l))
          8: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
          7: quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          15: splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          16: splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
*** Step 8.b:4.a:2: SimplifyRHS WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
        - Weak DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
             -->_1 insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x)):2
          
          2:S:insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
             -->_1 insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x)):3
          
          3:S:insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
             -->_1 insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                        ,@key1
                                                                                        ,@ls
                                                                                        ,@valX
                                                                                        ,@vals1
                                                                                        ,@x)):4
          
          4:S:insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x))
             -->_1 insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls)):5
          
          5:S:insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
          
          12:W:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs)):13
          
          13:W:split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
             -->_2 split#(@l) -> c_21(split#1#(@l)):12
          
          14:W:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_2 split#(@l) -> c_21(split#1#(@l)):12
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          splitAndSort#(@l) -> c_24(split#(@l))
*** Step 8.b:4.a:3: UsableRules WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
        - Weak DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #and(#false(),#false()) -> #false()
          #and(#false(),#true()) -> #false()
          #and(#true(),#false()) -> #false()
          #and(#true(),#true()) -> #true()
          #eq(#0(),#0()) -> #true()
          #eq(#0(),#neg(@y)) -> #false()
          #eq(#0(),#pos(@y)) -> #false()
          #eq(#0(),#s(@y)) -> #false()
          #eq(#neg(@x),#0()) -> #false()
          #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
          #eq(#neg(@x),#pos(@y)) -> #false()
          #eq(#pos(@x),#0()) -> #false()
          #eq(#pos(@x),#neg(@y)) -> #false()
          #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
          #eq(#s(@x),#0()) -> #false()
          #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #eq(::(@x_1,@x_2),nil()) -> #false()
          #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
          #eq(nil(),::(@y_1,@y_2)) -> #false()
          #eq(nil(),nil()) -> #true()
          #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
          #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #equal(@x,@y) -> #eq(@x,@y)
          insert(@x,@l) -> insert#1(@x,@l,@x)
          insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
          insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
          insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
          insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                        ,@key1
                                                                        ,@ls
                                                                        ,@valX
                                                                        ,@vals1
                                                                        ,@x)
          insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
          insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
          split(@l) -> split#1(@l)
          split#1(::(@x,@xs)) -> insert(@x,split(@xs))
          split#1(nil()) -> nil()
          insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
          insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                               ,@key1
                                                                               ,@ls
                                                                               ,@valX
                                                                               ,@vals1
                                                                               ,@x))
          insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          split#(@l) -> c_21(split#1#(@l))
          split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
          splitAndSort#(@l) -> c_24(split#(@l))
*** Step 8.b:4.a:4: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
        - Weak DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          5: insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          
        Consider the set of all dependency pairs
          1: insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          2: insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
          3: insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          4: insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                  ,@key1
                                                                                  ,@ls
                                                                                  ,@valX
                                                                                  ,@vals1
                                                                                  ,@x))
          5: insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          6: split#(@l) -> c_21(split#1#(@l))
          7: split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
          8: splitAndSort#(@l) -> c_24(split#(@l))
        Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {5}
        These cover all (indirect) predecessors of dependency pairs
          {5,8}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
**** Step 8.b:4.a:4.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
        - Weak DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_6) = {1},
          uargs(c_7) = {1},
          uargs(c_8) = {1},
          uargs(c_10) = {1},
          uargs(c_11) = {1},
          uargs(c_21) = {1},
          uargs(c_22) = {1,2},
          uargs(c_24) = {1}
        
        Following symbols are considered usable:
          {insert,insert#1,insert#2,insert#3,insert#4,split,split#1,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
          ,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#
          ,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                                            
                             [0]                                            
                    p(#EQ) = [0]                                            
                             [0]                                            
                    p(#GT) = [0]                                            
                             [0]                                            
                    p(#LT) = [0]                                            
                             [0]                                            
                   p(#and) = [0 0] x2 + [0]                                 
                             [2 2]      [0]                                 
                  p(#ckgt) = [0]                                            
                             [0]                                            
               p(#compare) = [0]                                            
                             [0]                                            
                    p(#eq) = [2]                                            
                             [0]                                            
                 p(#equal) = [0]                                            
                             [0]                                            
                 p(#false) = [0]                                            
                             [0]                                            
               p(#greater) = [1 0] x2 + [0]                                 
                             [0 0]      [0]                                 
                   p(#neg) = [1]                                            
                             [0]                                            
                   p(#pos) = [2]                                            
                             [0]                                            
                     p(#s) = [0]                                            
                             [0]                                            
                  p(#true) = [0]                                            
                             [0]                                            
                     p(::) = [1 1] x2 + [0]                                 
                             [0 1]      [1]                                 
                 p(append) = [0]                                            
                             [0]                                            
               p(append#1) = [0 0] x1 + [0]                                 
                             [2 1]      [0]                                 
                 p(insert) = [1 1] x2 + [0]                                 
                             [0 1]      [1]                                 
               p(insert#1) = [1 1] x2 + [0]                                 
                             [0 1]      [1]                                 
               p(insert#2) = [1 1] x1 + [0]                                 
                             [0 1]      [1]                                 
               p(insert#3) = [1 2] x3 + [1]                                 
                             [0 1]      [2]                                 
               p(insert#4) = [1 2] x3 + [1]                                 
                             [0 1]      [2]                                 
                    p(nil) = [0]                                            
                             [0]                                            
              p(quicksort) = [0]                                            
                             [0]                                            
            p(quicksort#1) = [0]                                            
                             [0]                                            
            p(quicksort#2) = [0]                                            
                             [0]                                            
                p(sortAll) = [0]                                            
                             [0]                                            
              p(sortAll#1) = [0]                                            
                             [0]                                            
              p(sortAll#2) = [0]                                            
                             [0]                                            
                  p(split) = [1 0] x1 + [0]                                 
                             [0 1]      [0]                                 
                p(split#1) = [1 0] x1 + [0]                                 
                             [0 1]      [0]                                 
           p(splitAndSort) = [0]                                            
                             [0]                                            
                p(splitqs) = [0]                                            
                             [0]                                            
              p(splitqs#1) = [0]                                            
                             [0]                                            
              p(splitqs#2) = [0]                                            
                             [0]                                            
              p(splitqs#3) = [0]                                            
                             [0]                                            
                p(tuple#2) = [0]                                            
                             [0]                                            
                  p(#and#) = [0]                                            
                             [0]                                            
                 p(#ckgt#) = [0]                                            
                             [0]                                            
              p(#compare#) = [0]                                            
                             [0]                                            
                   p(#eq#) = [0]                                            
                             [0]                                            
                p(#equal#) = [0]                                            
                             [0]                                            
              p(#greater#) = [0]                                            
                             [0]                                            
                p(append#) = [0]                                            
                             [0]                                            
              p(append#1#) = [0]                                            
                             [0]                                            
                p(insert#) = [0 0] x1 + [0 2] x2 + [0]                      
                             [1 3]      [2 0]      [0]                      
              p(insert#1#) = [0 0] x1 + [0 2] x2 + [0]                      
                             [0 1]      [1 1]      [2]                      
              p(insert#2#) = [0 2] x1 + [0 0] x4 + [0]                      
                             [0 0]      [2 0]      [1]                      
              p(insert#3#) = [0 0] x2 + [0 2] x3 + [1]                      
                             [0 2]      [0 0]      [2]                      
              p(insert#4#) = [0 0] x2 + [0 2] x3 + [0 0] x5 + [0 0] x6 + [1]
                             [3 2]      [2 1]      [0 2]      [2 3]      [0]
             p(quicksort#) = [0]                                            
                             [0]                                            
           p(quicksort#1#) = [0]                                            
                             [0]                                            
           p(quicksort#2#) = [0]                                            
                             [0]                                            
               p(sortAll#) = [0]                                            
                             [0]                                            
             p(sortAll#1#) = [0]                                            
                             [0]                                            
             p(sortAll#2#) = [0 0] x1 + [0 0] x2 + [0]                      
                             [0 2]      [0 2]      [0]                      
                 p(split#) = [2 1] x1 + [2]                                 
                             [0 1]      [0]                                 
               p(split#1#) = [2 1] x1 + [1]                                 
                             [3 1]      [1]                                 
          p(splitAndSort#) = [2 1] x1 + [3]                                 
                             [1 1]      [2]                                 
               p(splitqs#) = [0]                                            
                             [2]                                            
             p(splitqs#1#) = [0]                                            
                             [2]                                            
             p(splitqs#2#) = [0]                                            
                             [2]                                            
             p(splitqs#3#) = [0 0] x1 + [0 2] x2 + [0 0] x4 + [0]           
                             [0 1]      [0 1]      [0 2]      [0]           
                    p(c_1) = [1]                                            
                             [0]                                            
                    p(c_2) = [0 2] x1 + [0 0] x2 + [0]                      
                             [0 0]      [2 2]      [0]                      
                    p(c_3) = [2]                                            
                             [0]                                            
                    p(c_4) = [0]                                            
                             [1]                                            
                    p(c_5) = [1]                                            
                             [1]                                            
                    p(c_6) = [1 0] x1 + [0]                                 
                             [0 0]      [0]                                 
                    p(c_7) = [1 0] x1 + [0]                                 
                             [0 0]      [0]                                 
                    p(c_8) = [1 0] x1 + [1]                                 
                             [0 0]      [0]                                 
                    p(c_9) = [0]                                            
                             [0]                                            
                   p(c_10) = [1 0] x1 + [0]                                 
                             [0 0]      [1]                                 
                   p(c_11) = [1 0] x1 + [0]                                 
                             [0 1]      [0]                                 
                   p(c_12) = [2]                                            
                             [0]                                            
                   p(c_13) = [0 1] x1 + [2]                                 
                             [0 0]      [1]                                 
                   p(c_14) = [0 1] x1 + [1 1] x2 + [2]                      
                             [0 0]      [0 0]      [0]                      
                   p(c_15) = [0]                                            
                             [1]                                            
                   p(c_16) = [1 0] x1 + [1 0] x2 + [2]                      
                             [0 1]      [2 0]      [2]                      
                   p(c_17) = [1 0] x1 + [0]                                 
                             [0 2]      [2]                                 
                   p(c_18) = [1]                                            
                             [0]                                            
                   p(c_19) = [1]                                            
                             [0]                                            
                   p(c_20) = [1 0] x1 + [2 2] x2 + [1]                      
                             [1 2]      [0 0]      [1]                      
                   p(c_21) = [1 0] x1 + [1]                                 
                             [0 0]      [0]                                 
                   p(c_22) = [1 0] x1 + [1 0] x2 + [0]                      
                             [0 0]      [1 0]      [0]                      
                   p(c_23) = [0]                                            
                             [1]                                            
                   p(c_24) = [1 0] x1 + [1]                                 
                             [0 0]      [0]                                 
                   p(c_25) = [0]                                            
                             [0]                                            
                   p(c_26) = [0 0] x1 + [0]                                 
                             [2 1]      [0]                                 
                   p(c_27) = [1]                                            
                             [2]                                            
                   p(c_28) = [0 0] x1 + [1 0] x2 + [2]                      
                             [2 0]      [1 0]      [0]                      
                   p(c_29) = [0]                                            
                             [1]                                            
                   p(c_30) = [0]                                            
                             [1]                                            
                   p(c_31) = [0]                                            
                             [2]                                            
                   p(c_32) = [2]                                            
                             [2]                                            
                   p(c_33) = [0]                                            
                             [0]                                            
                   p(c_34) = [0]                                            
                             [0]                                            
                   p(c_35) = [1]                                            
                             [2]                                            
                   p(c_36) = [2]                                            
                             [0]                                            
                   p(c_37) = [0]                                            
                             [2]                                            
                   p(c_38) = [0]                                            
                             [1]                                            
                   p(c_39) = [1]                                            
                             [0]                                            
                   p(c_40) = [1]                                            
                             [0]                                            
                   p(c_41) = [0]                                            
                             [1]                                            
                   p(c_42) = [1]                                            
                             [0]                                            
                   p(c_43) = [0]                                            
                             [1]                                            
                   p(c_44) = [0]                                            
                             [0]                                            
                   p(c_45) = [2]                                            
                             [2]                                            
                   p(c_46) = [0]                                            
                             [0]                                            
                   p(c_47) = [0 0] x1 + [0]                                 
                             [2 1]      [0]                                 
                   p(c_48) = [1]                                            
                             [2]                                            
                   p(c_49) = [0]                                            
                             [1]                                            
                   p(c_50) = [2]                                            
                             [2]                                            
                   p(c_51) = [0]                                            
                             [0]                                            
                   p(c_52) = [1]                                            
                             [0]                                            
                   p(c_53) = [2]                                            
                             [1]                                            
                   p(c_54) = [2]                                            
                             [0]                                            
                   p(c_55) = [0]                                            
                             [0]                                            
                   p(c_56) = [0]                                            
                             [0]                                            
                   p(c_57) = [2]                                            
                             [0]                                            
                   p(c_58) = [0]                                            
                             [1]                                            
                   p(c_59) = [0]                                            
                             [0]                                            
                   p(c_60) = [0]                                            
                             [0]                                            
                   p(c_61) = [0 1] x1 + [1]                                 
                             [2 2]      [0]                                 
                   p(c_62) = [0 0] x2 + [0 0] x3 + [0]                      
                             [1 2]      [1 2]      [0]                      
                   p(c_63) = [0]                                            
                             [0]                                            
                   p(c_64) = [0]                                            
                             [2]                                            
                   p(c_65) = [0]                                            
                             [0]                                            
                   p(c_66) = [0]                                            
                             [0]                                            
                   p(c_67) = [0]                                            
                             [0]                                            
                   p(c_68) = [0]                                            
                             [0]                                            
                   p(c_69) = [0]                                            
                             [0]                                            
                   p(c_70) = [0 0] x2 + [0 0] x3 + [2]                      
                             [1 0]      [0 2]      [0]                      
        
        Following rules are strictly oriented:
        insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) = [0 0] @key1 + [0 2] @ls + [0 0] @vals1 + [0 0] @x + [1]
                                                        [3 2]         [2 1]       [0 2]          [2 3]      [0]
                                                      > [0 2] @ls + [0 0] @x + [0]                             
                                                        [2 0]       [1 3]      [0]                             
                                                      = c_11(insert#(@x,@ls))                                  
        
        
        Following rules are (at-least) weakly oriented:
                                             insert#(@x,@l) =  [0 2] @l + [0 0] @x + [0]                                     
                                                               [2 0]      [1 3]      [0]                                     
                                                            >= [0 2] @l + [0]                                                
                                                               [0 0]      [0]                                                
                                                            =  c_6(insert#1#(@x,@l,@x))                                      
        
                      insert#1#(tuple#2(@valX,@keyX),@l,@x) =  [0 2] @l + [0]                                                
                                                               [1 1]      [2]                                                
                                                            >= [0 2] @l + [0]                                                
                                                               [0 0]      [0]                                                
                                                            =  c_7(insert#2#(@l,@keyX,@valX,@x))                             
        
                      insert#2#(::(@l1,@ls),@keyX,@valX,@x) =  [0 2] @ls + [0 0] @x + [2]                                    
                                                               [0 0]       [2 0]      [1]                                    
                                                            >= [0 2] @ls + [2]                                               
                                                               [0 0]       [0]                                               
                                                            =  c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))                        
        
        insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [0 0] @keyX + [0 2] @ls + [1]                                 
                                                               [0 2]         [0 0]       [2]                                 
                                                            >= [0 2] @ls + [1]                                               
                                                               [0 0]       [1]                                               
                                                            =  c_10(insert#4#(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x))
        
                                                 split#(@l) =  [2 1] @l + [2]                                                
                                                               [0 1]      [0]                                                
                                                            >= [2 1] @l + [2]                                                
                                                               [0 0]      [0]                                                
                                                            =  c_21(split#1#(@l))                                            
        
                                       split#1#(::(@x,@xs)) =  [2 3] @xs + [2]                                               
                                                               [3 4]       [2]                                               
                                                            >= [2 3] @xs + [2]                                               
                                                               [2 1]       [2]                                               
                                                            =  c_22(insert#(@x,split(@xs)),split#(@xs))                      
        
                                          splitAndSort#(@l) =  [2 1] @l + [3]                                                
                                                               [1 1]      [2]                                                
                                                            >= [2 1] @l + [3]                                                
                                                               [0 0]      [0]                                                
                                                            =  c_24(split#(@l))                                              
        
                                              insert(@x,@l) =  [1 1] @l + [0]                                                
                                                               [0 1]      [1]                                                
                                                            >= [1 1] @l + [0]                                                
                                                               [0 1]      [1]                                                
                                                            =  insert#1(@x,@l,@x)                                            
        
                       insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1 1] @l + [0]                                                
                                                               [0 1]      [1]                                                
                                                            >= [1 1] @l + [0]                                                
                                                               [0 1]      [1]                                                
                                                            =  insert#2(@l,@keyX,@valX,@x)                                   
        
                       insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            >= [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            =  insert#3(@l1,@keyX,@ls,@valX,@x)                              
        
                             insert#2(nil(),@keyX,@valX,@x) =  [0]                                                           
                                                               [1]                                                           
                                                            >= [0]                                                           
                                                               [1]                                                           
                                                            =  ::(tuple#2(::(@valX,nil()),@keyX),nil())                      
        
         insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            >= [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)       
        
               insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            >= [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))                      
        
                insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            >= [1 1] @ls + [0]                                               
                                                               [0 1]       [1]                                               
                                                            =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                       
        
                                                  split(@l) =  [1 0] @l + [0]                                                
                                                               [0 1]      [0]                                                
                                                            >= [1 0] @l + [0]                                                
                                                               [0 1]      [0]                                                
                                                            =  split#1(@l)                                                   
        
                                        split#1(::(@x,@xs)) =  [1 1] @xs + [0]                                               
                                                               [0 1]       [1]                                               
                                                            >= [1 1] @xs + [0]                                               
                                                               [0 1]       [1]                                               
                                                            =  insert(@x,split(@xs))                                         
        
                                             split#1(nil()) =  [0]                                                           
                                                               [0]                                                           
                                                            >= [0]                                                           
                                                               [0]                                                           
                                                            =  nil()                                                         
        
**** Step 8.b:4.a:4.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
        - Weak DPs:
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

**** Step 8.b:4.a:4.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
        - Weak DPs:
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          4: insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                  ,@key1
                                                                                  ,@ls
                                                                                  ,@valX
                                                                                  ,@vals1
                                                                                  ,@x))
          
        Consider the set of all dependency pairs
          1: insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          2: insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
          3: insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          4: insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                  ,@key1
                                                                                  ,@ls
                                                                                  ,@valX
                                                                                  ,@vals1
                                                                                  ,@x))
          5: insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          6: split#(@l) -> c_21(split#1#(@l))
          7: split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
          8: splitAndSort#(@l) -> c_24(split#(@l))
        Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {4}
        These cover all (indirect) predecessors of dependency pairs
          {4,5,8}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
***** Step 8.b:4.a:4.b:1.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
        - Weak DPs:
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_6) = {1},
          uargs(c_7) = {1},
          uargs(c_8) = {1},
          uargs(c_10) = {1},
          uargs(c_11) = {1},
          uargs(c_21) = {1},
          uargs(c_22) = {1,2},
          uargs(c_24) = {1}
        
        Following symbols are considered usable:
          {insert,insert#1,insert#2,insert#3,insert#4,split,split#1,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
          ,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#
          ,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                                            
                             [0]                                            
                    p(#EQ) = [0]                                            
                             [0]                                            
                    p(#GT) = [1]                                            
                             [0]                                            
                    p(#LT) = [0]                                            
                             [0]                                            
                   p(#and) = [0 0] x1 + [0 0] x2 + [0]                      
                             [2 2]      [2 0]      [1]                      
                  p(#ckgt) = [0 0] x1 + [0]                                 
                             [0 2]      [1]                                 
               p(#compare) = [0]                                            
                             [2]                                            
                    p(#eq) = [0]                                            
                             [0]                                            
                 p(#equal) = [0]                                            
                             [0]                                            
                 p(#false) = [0]                                            
                             [0]                                            
               p(#greater) = [0]                                            
                             [0]                                            
                   p(#neg) = [1 0] x1 + [0]                                 
                             [0 0]      [0]                                 
                   p(#pos) = [0]                                            
                             [0]                                            
                     p(#s) = [1 1] x1 + [0]                                 
                             [0 1]      [1]                                 
                  p(#true) = [1]                                            
                             [1]                                            
                     p(::) = [1 1] x2 + [0]                                 
                             [0 1]      [1]                                 
                 p(append) = [0 0] x2 + [0]                                 
                             [1 0]      [0]                                 
               p(append#1) = [0 0] x1 + [0]                                 
                             [2 2]      [0]                                 
                 p(insert) = [1 1] x2 + [0]                                 
                             [0 1]      [1]                                 
               p(insert#1) = [1 1] x2 + [0]                                 
                             [0 1]      [1]                                 
               p(insert#2) = [1 1] x1 + [0]                                 
                             [0 1]      [1]                                 
               p(insert#3) = [1 2] x3 + [1]                                 
                             [0 1]      [2]                                 
               p(insert#4) = [1 2] x3 + [1]                                 
                             [0 1]      [2]                                 
                    p(nil) = [0]                                            
                             [0]                                            
              p(quicksort) = [0 2] x1 + [0]                                 
                             [2 2]      [0]                                 
            p(quicksort#1) = [0]                                            
                             [0]                                            
            p(quicksort#2) = [2]                                            
                             [0]                                            
                p(sortAll) = [0 2] x1 + [2]                                 
                             [1 0]      [0]                                 
              p(sortAll#1) = [2]                                            
                             [0]                                            
              p(sortAll#2) = [2]                                            
                             [0]                                            
                  p(split) = [2 0] x1 + [1]                                 
                             [0 2]      [0]                                 
                p(split#1) = [2 0] x1 + [1]                                 
                             [0 2]      [0]                                 
           p(splitAndSort) = [0]                                            
                             [0]                                            
                p(splitqs) = [0]                                            
                             [1]                                            
              p(splitqs#1) = [0 0] x1 + [2 0] x2 + [2]                      
                             [0 2]      [2 1]      [1]                      
              p(splitqs#2) = [2 0] x1 + [0 2] x2 + [1]                      
                             [0 1]      [1 1]      [2]                      
              p(splitqs#3) = [0 1] x3 + [1 1] x4 + [1]                      
                             [1 0]      [1 1]      [2]                      
                p(tuple#2) = [0]                                            
                             [0]                                            
                  p(#and#) = [2 0] x1 + [2 2] x2 + [1]                      
                             [0 1]      [2 0]      [1]                      
                 p(#ckgt#) = [0 2] x1 + [1]                                 
                             [0 0]      [2]                                 
              p(#compare#) = [1]                                            
                             [2]                                            
                   p(#eq#) = [0 0] x1 + [0]                                 
                             [0 2]      [1]                                 
                p(#equal#) = [0 0] x2 + [0]                                 
                             [0 2]      [0]                                 
              p(#greater#) = [0 0] x1 + [1]                                 
                             [1 0]      [1]                                 
                p(append#) = [0]                                            
                             [0]                                            
              p(append#1#) = [2 1] x1 + [0 1] x2 + [2]                      
                             [1 0]      [0 0]      [0]                      
                p(insert#) = [0 1] x2 + [0]                                 
                             [3 2]      [1]                                 
              p(insert#1#) = [0 1] x2 + [0]                                 
                             [0 0]      [3]                                 
              p(insert#2#) = [0 1] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
                             [0 2]      [2 2]      [3 0]      [0 2]      [2]
              p(insert#3#) = [0 1] x3 + [0 0] x4 + [1]                      
                             [0 1]      [2 0]      [0]                      
              p(insert#4#) = [0 1] x3 + [0 0] x6 + [0]                      
                             [3 2]      [2 2]      [2]                      
             p(quicksort#) = [1 2] x1 + [0]                                 
                             [1 0]      [0]                                 
           p(quicksort#1#) = [0]                                            
                             [0]                                            
           p(quicksort#2#) = [0 1] x2 + [0]                                 
                             [1 0]      [1]                                 
               p(sortAll#) = [0]                                            
                             [2]                                            
             p(sortAll#1#) = [1]                                            
                             [0]                                            
             p(sortAll#2#) = [0 2] x2 + [0]                                 
                             [0 2]      [0]                                 
                 p(split#) = [3 3] x1 + [0]                                 
                             [3 2]      [1]                                 
               p(split#1#) = [3 2] x1 + [0]                                 
                             [0 2]      [0]                                 
          p(splitAndSort#) = [3 3] x1 + [1]                                 
                             [3 3]      [2]                                 
               p(splitqs#) = [0 0] x1 + [1]                                 
                             [1 2]      [2]                                 
             p(splitqs#1#) = [2]                                            
                             [0]                                            
             p(splitqs#2#) = [1 2] x1 + [1]                                 
                             [0 1]      [0]                                 
             p(splitqs#3#) = [1 1] x1 + [2 1] x2 + [1]                      
                             [1 1]      [2 1]      [0]                      
                    p(c_1) = [1 1] x1 + [1]                                 
                             [1 0]      [2]                                 
                    p(c_2) = [1 0] x1 + [0 0] x2 + [0]                      
                             [2 0]      [2 0]      [2]                      
                    p(c_3) = [0 0] x1 + [2]                                 
                             [0 2]      [2]                                 
                    p(c_4) = [0]                                            
                             [1]                                            
                    p(c_5) = [1]                                            
                             [0]                                            
                    p(c_6) = [1 0] x1 + [0]                                 
                             [0 0]      [0]                                 
                    p(c_7) = [1 0] x1 + [0]                                 
                             [0 0]      [0]                                 
                    p(c_8) = [1 0] x1 + [0]                                 
                             [1 1]      [3]                                 
                    p(c_9) = [0]                                            
                             [0]                                            
                   p(c_10) = [1 0] x1 + [0]                                 
                             [0 0]      [0]                                 
                   p(c_11) = [1 0] x1 + [0]                                 
                             [0 1]      [1]                                 
                   p(c_12) = [0]                                            
                             [0]                                            
                   p(c_13) = [2 0] x1 + [0]                                 
                             [1 0]      [0]                                 
                   p(c_14) = [1 0] x1 + [0]                                 
                             [1 1]      [0]                                 
                   p(c_15) = [1]                                            
                             [0]                                            
                   p(c_16) = [0 0] x1 + [1]                                 
                             [0 2]      [0]                                 
                   p(c_17) = [1 2] x1 + [2]                                 
                             [0 0]      [0]                                 
                   p(c_18) = [1]                                            
                             [0]                                            
                   p(c_19) = [0]                                            
                             [0]                                            
                   p(c_20) = [0]                                            
                             [0]                                            
                   p(c_21) = [1 0] x1 + [0]                                 
                             [1 0]      [1]                                 
                   p(c_22) = [1 0] x1 + [1 0] x2 + [0]                      
                             [1 0]      [0 0]      [0]                      
                   p(c_23) = [0]                                            
                             [2]                                            
                   p(c_24) = [1 0] x1 + [1]                                 
                             [0 1]      [0]                                 
                   p(c_25) = [2 2] x1 + [1]                                 
                             [0 1]      [1]                                 
                   p(c_26) = [1 2] x1 + [0]                                 
                             [0 1]      [2]                                 
                   p(c_27) = [1]                                            
                             [0]                                            
                   p(c_28) = [1 0] x1 + [0]                                 
                             [1 0]      [0]                                 
                   p(c_29) = [2]                                            
                             [0]                                            
                   p(c_30) = [0]                                            
                             [2]                                            
                   p(c_31) = [0]                                            
                             [0]                                            
                   p(c_32) = [2]                                            
                             [2]                                            
                   p(c_33) = [2]                                            
                             [2]                                            
                   p(c_34) = [1]                                            
                             [0]                                            
                   p(c_35) = [0]                                            
                             [1]                                            
                   p(c_36) = [1]                                            
                             [0]                                            
                   p(c_37) = [0]                                            
                             [0]                                            
                   p(c_38) = [2]                                            
                             [0]                                            
                   p(c_39) = [0]                                            
                             [0]                                            
                   p(c_40) = [1]                                            
                             [0]                                            
                   p(c_41) = [1]                                            
                             [0]                                            
                   p(c_42) = [0]                                            
                             [0]                                            
                   p(c_43) = [1 0] x1 + [0]                                 
                             [2 2]      [0]                                 
                   p(c_44) = [0]                                            
                             [0]                                            
                   p(c_45) = [2]                                            
                             [0]                                            
                   p(c_46) = [2]                                            
                             [0]                                            
                   p(c_47) = [2]                                            
                             [0]                                            
                   p(c_48) = [1]                                            
                             [0]                                            
                   p(c_49) = [0 2] x1 + [0]                                 
                             [0 1]      [0]                                 
                   p(c_50) = [0]                                            
                             [1]                                            
                   p(c_51) = [2]                                            
                             [0]                                            
                   p(c_52) = [1]                                            
                             [2]                                            
                   p(c_53) = [0]                                            
                             [0]                                            
                   p(c_54) = [2]                                            
                             [0]                                            
                   p(c_55) = [0]                                            
                             [1]                                            
                   p(c_56) = [2]                                            
                             [0]                                            
                   p(c_57) = [0]                                            
                             [1]                                            
                   p(c_58) = [1]                                            
                             [0]                                            
                   p(c_59) = [0]                                            
                             [1]                                            
                   p(c_60) = [0]                                            
                             [0]                                            
                   p(c_61) = [0]                                            
                             [0]                                            
                   p(c_62) = [0 0] x1 + [0 1] x3 + [0]                      
                             [1 2]      [1 2]      [1]                      
                   p(c_63) = [0]                                            
                             [1]                                            
                   p(c_64) = [0]                                            
                             [0]                                            
                   p(c_65) = [1]                                            
                             [2]                                            
                   p(c_66) = [1]                                            
                             [0]                                            
                   p(c_67) = [0]                                            
                             [1]                                            
                   p(c_68) = [2]                                            
                             [2]                                            
                   p(c_69) = [0]                                            
                             [0]                                            
                   p(c_70) = [1 0] x3 + [0]                                 
                             [0 1]      [1]                                 
        
        Following rules are strictly oriented:
        insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) = [0 1] @ls + [0 0] @valX + [1]                                 
                                                              [0 1]       [2 0]         [0]                                 
                                                            > [0 1] @ls + [0]                                               
                                                              [0 0]       [0]                                               
                                                            = c_10(insert#4#(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x))
        
        
        Following rules are (at-least) weakly oriented:
                                            insert#(@x,@l) =  [0 1] @l + [0]                                         
                                                              [3 2]      [1]                                         
                                                           >= [0 1] @l + [0]                                         
                                                              [0 0]      [0]                                         
                                                           =  c_6(insert#1#(@x,@l,@x))                               
        
                     insert#1#(tuple#2(@valX,@keyX),@l,@x) =  [0 1] @l + [0]                                         
                                                              [0 0]      [3]                                         
                                                           >= [0 1] @l + [0]                                         
                                                              [0 0]      [0]                                         
                                                           =  c_7(insert#2#(@l,@keyX,@valX,@x))                      
        
                     insert#2#(::(@l1,@ls),@keyX,@valX,@x) =  [0 0] @keyX + [0 1] @ls + [0 0] @valX + [0 0] @x + [1] 
                                                              [2 2]         [0 2]       [3 0]         [0 2]      [4] 
                                                           >= [0 1] @ls + [0 0] @valX + [1]                          
                                                              [0 2]       [2 0]         [4]                          
                                                           =  c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))                 
        
             insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) =  [0 1] @ls + [0 0] @x + [0]                             
                                                              [3 2]       [2 2]      [2]                             
                                                           >= [0 1] @ls + [0]                                        
                                                              [3 2]       [2]                                        
                                                           =  c_11(insert#(@x,@ls))                                  
        
                                                split#(@l) =  [3 3] @l + [0]                                         
                                                              [3 2]      [1]                                         
                                                           >= [3 2] @l + [0]                                         
                                                              [3 2]      [1]                                         
                                                           =  c_21(split#1#(@l))                                     
        
                                      split#1#(::(@x,@xs)) =  [3 5] @xs + [2]                                        
                                                              [0 2]       [2]                                        
                                                           >= [3 5] @xs + [0]                                        
                                                              [0 2]       [0]                                        
                                                           =  c_22(insert#(@x,split(@xs)),split#(@xs))               
        
                                         splitAndSort#(@l) =  [3 3] @l + [1]                                         
                                                              [3 3]      [2]                                         
                                                           >= [3 3] @l + [1]                                         
                                                              [3 2]      [1]                                         
                                                           =  c_24(split#(@l))                                       
        
                                             insert(@x,@l) =  [1 1] @l + [0]                                         
                                                              [0 1]      [1]                                         
                                                           >= [1 1] @l + [0]                                         
                                                              [0 1]      [1]                                         
                                                           =  insert#1(@x,@l,@x)                                     
        
                      insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1 1] @l + [0]                                         
                                                              [0 1]      [1]                                         
                                                           >= [1 1] @l + [0]                                         
                                                              [0 1]      [1]                                         
                                                           =  insert#2(@l,@keyX,@valX,@x)                            
        
                      insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [1 2] @ls + [1]                                        
                                                              [0 1]       [2]                                        
                                                           >= [1 2] @ls + [1]                                        
                                                              [0 1]       [2]                                        
                                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)                       
        
                            insert#2(nil(),@keyX,@valX,@x) =  [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [1]                                                    
                                                           =  ::(tuple#2(::(@valX,nil()),@keyX),nil())               
        
        insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1 2] @ls + [1]                                        
                                                              [0 1]       [2]                                        
                                                           >= [1 2] @ls + [1]                                        
                                                              [0 1]       [2]                                        
                                                           =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)
        
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1 2] @ls + [1]                                        
                                                              [0 1]       [2]                                        
                                                           >= [1 2] @ls + [1]                                        
                                                              [0 1]       [2]                                        
                                                           =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))               
        
               insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1 2] @ls + [1]                                        
                                                              [0 1]       [2]                                        
                                                           >= [1 1] @ls + [0]                                        
                                                              [0 1]       [1]                                        
                                                           =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                
        
                                                 split(@l) =  [2 0] @l + [1]                                         
                                                              [0 2]      [0]                                         
                                                           >= [2 0] @l + [1]                                         
                                                              [0 2]      [0]                                         
                                                           =  split#1(@l)                                            
        
                                       split#1(::(@x,@xs)) =  [2 2] @xs + [1]                                        
                                                              [0 2]       [2]                                        
                                                           >= [2 2] @xs + [1]                                        
                                                              [0 2]       [1]                                        
                                                           =  insert(@x,split(@xs))                                  
        
                                            split#1(nil()) =  [1]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                           =  nil()                                                  
        
***** Step 8.b:4.a:4.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
        - Weak DPs:
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

***** Step 8.b:4.a:4.b:1.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
        - Weak DPs:
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          
        Consider the set of all dependency pairs
          1: insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          2: insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
          3: insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          4: insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                  ,@key1
                                                                                  ,@ls
                                                                                  ,@valX
                                                                                  ,@vals1
                                                                                  ,@x))
          5: insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          6: split#(@l) -> c_21(split#1#(@l))
          7: split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
          8: splitAndSort#(@l) -> c_24(split#(@l))
        Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,3,4,5,8}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
****** Step 8.b:4.a:4.b:1.b:1.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
        - Weak DPs:
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_6) = {1},
          uargs(c_7) = {1},
          uargs(c_8) = {1},
          uargs(c_10) = {1},
          uargs(c_11) = {1},
          uargs(c_21) = {1},
          uargs(c_22) = {1,2},
          uargs(c_24) = {1}
        
        Following symbols are considered usable:
          {insert,insert#1,insert#2,insert#3,insert#4,split,split#1,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
          ,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#
          ,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                                            
                             [1]                                            
                    p(#EQ) = [0]                                            
                             [1]                                            
                    p(#GT) = [0]                                            
                             [0]                                            
                    p(#LT) = [0]                                            
                             [0]                                            
                   p(#and) = [2]                                            
                             [1]                                            
                  p(#ckgt) = [1]                                            
                             [0]                                            
               p(#compare) = [0 1] x2 + [1]                                 
                             [0 2]      [0]                                 
                    p(#eq) = [0]                                            
                             [0]                                            
                 p(#equal) = [0]                                            
                             [0]                                            
                 p(#false) = [0]                                            
                             [0]                                            
               p(#greater) = [0]                                            
                             [2]                                            
                   p(#neg) = [0]                                            
                             [0]                                            
                   p(#pos) = [0 2] x1 + [0]                                 
                             [0 1]      [1]                                 
                     p(#s) = [1]                                            
                             [1]                                            
                  p(#true) = [0]                                            
                             [0]                                            
                     p(::) = [1 1] x2 + [0]                                 
                             [0 1]      [1]                                 
                 p(append) = [1]                                            
                             [1]                                            
               p(append#1) = [0 2] x1 + [0 0] x2 + [0]                      
                             [0 1]      [1 2]      [0]                      
                 p(insert) = [1 1] x2 + [0]                                 
                             [0 1]      [1]                                 
               p(insert#1) = [1 1] x2 + [0]                                 
                             [0 1]      [1]                                 
               p(insert#2) = [1 1] x1 + [0]                                 
                             [0 1]      [1]                                 
               p(insert#3) = [1 2] x3 + [1]                                 
                             [0 1]      [2]                                 
               p(insert#4) = [1 2] x3 + [1]                                 
                             [0 1]      [2]                                 
                    p(nil) = [0]                                            
                             [0]                                            
              p(quicksort) = [2]                                            
                             [1]                                            
            p(quicksort#1) = [0]                                            
                             [0]                                            
            p(quicksort#2) = [0 2] x1 + [2]                                 
                             [0 1]      [0]                                 
                p(sortAll) = [0 0] x1 + [0]                                 
                             [0 2]      [0]                                 
              p(sortAll#1) = [0]                                            
                             [1]                                            
              p(sortAll#2) = [1 0] x1 + [0 0] x2 + [0]                      
                             [2 0]      [0 2]      [0]                      
                  p(split) = [1 0] x1 + [0]                                 
                             [0 1]      [0]                                 
                p(split#1) = [1 0] x1 + [0]                                 
                             [0 1]      [0]                                 
           p(splitAndSort) = [1]                                            
                             [0]                                            
                p(splitqs) = [0 1] x1 + [2 0] x2 + [2]                      
                             [1 2]      [0 0]      [0]                      
              p(splitqs#1) = [0]                                            
                             [0]                                            
              p(splitqs#2) = [0 2] x2 + [0]                                 
                             [0 0]      [2]                                 
              p(splitqs#3) = [0 0] x1 + [0 0] x3 + [2 0] x4 + [2]           
                             [0 1]      [1 0]      [0 0]      [1]           
                p(tuple#2) = [0]                                            
                             [0]                                            
                  p(#and#) = [2 0] x1 + [0 1] x2 + [0]                      
                             [0 0]      [1 1]      [0]                      
                 p(#ckgt#) = [2]                                            
                             [2]                                            
              p(#compare#) = [0 0] x2 + [1]                                 
                             [1 0]      [1]                                 
                   p(#eq#) = [0 0] x1 + [2]                                 
                             [2 2]      [2]                                 
                p(#equal#) = [0 1] x1 + [0 0] x2 + [2]                      
                             [1 1]      [1 0]      [0]                      
              p(#greater#) = [1]                                            
                             [1]                                            
                p(append#) = [1]                                            
                             [0]                                            
              p(append#1#) = [0]                                            
                             [2]                                            
                p(insert#) = [0 0] x1 + [0 2] x2 + [1]                      
                             [1 0]      [2 0]      [0]                      
              p(insert#1#) = [0 0] x1 + [0 2] x2 + [0 0] x3 + [0]           
                             [0 2]      [0 1]      [1 2]      [2]           
              p(insert#2#) = [0 2] x1 + [0 0] x2 + [0 0] x3 + [0 0] x4 + [0]
                             [0 2]      [2 0]      [0 2]      [2 0]      [0]
              p(insert#3#) = [0 2] x3 + [0 0] x5 + [2]                      
                             [2 0]      [0 2]      [0]                      
              p(insert#4#) = [0 2] x3 + [2]                                 
                             [1 0]      [0]                                 
             p(quicksort#) = [0]                                            
                             [0]                                            
           p(quicksort#1#) = [0 0] x1 + [1]                                 
                             [0 2]      [2]                                 
           p(quicksort#2#) = [1 0] x2 + [0]                                 
                             [0 0]      [1]                                 
               p(sortAll#) = [0 0] x1 + [2]                                 
                             [0 2]      [2]                                 
             p(sortAll#1#) = [2]                                            
                             [2]                                            
             p(sortAll#2#) = [0]                                            
                             [0]                                            
                 p(split#) = [2 1] x1 + [0]                                 
                             [0 1]      [0]                                 
               p(split#1#) = [2 1] x1 + [0]                                 
                             [0 1]      [1]                                 
          p(splitAndSort#) = [3 3] x1 + [1]                                 
                             [0 1]      [0]                                 
               p(splitqs#) = [0 0] x1 + [0 1] x2 + [1]                      
                             [0 1]      [1 0]      [0]                      
             p(splitqs#1#) = [1 1] x2 + [1]                                 
                             [1 2]      [0]                                 
             p(splitqs#2#) = [0 0] x1 + [0 0] x3 + [0]                      
                             [0 2]      [2 2]      [2]                      
             p(splitqs#3#) = [1 0] x1 + [1 1] x2 + [0]                      
                             [0 0]      [0 1]      [0]                      
                    p(c_1) = [0]                                            
                             [0]                                            
                    p(c_2) = [0 0] x1 + [0 0] x2 + [2]                      
                             [0 1]      [0 2]      [0]                      
                    p(c_3) = [0 2] x1 + [0]                                 
                             [1 0]      [1]                                 
                    p(c_4) = [0]                                            
                             [0]                                            
                    p(c_5) = [2]                                            
                             [0]                                            
                    p(c_6) = [1 0] x1 + [0]                                 
                             [0 0]      [0]                                 
                    p(c_7) = [1 0] x1 + [0]                                 
                             [0 0]      [2]                                 
                    p(c_8) = [1 0] x1 + [0]                                 
                             [1 0]      [0]                                 
                    p(c_9) = [2]                                            
                             [2]                                            
                   p(c_10) = [1 0] x1 + [0]                                 
                             [0 2]      [0]                                 
                   p(c_11) = [1 0] x1 + [1]                                 
                             [0 0]      [0]                                 
                   p(c_12) = [0]                                            
                             [0]                                            
                   p(c_13) = [2]                                            
                             [1]                                            
                   p(c_14) = [1 2] x1 + [1]                                 
                             [1 0]      [0]                                 
                   p(c_15) = [1]                                            
                             [2]                                            
                   p(c_16) = [1]                                            
                             [2]                                            
                   p(c_17) = [0]                                            
                             [1]                                            
                   p(c_18) = [1]                                            
                             [2]                                            
                   p(c_19) = [1]                                            
                             [0]                                            
                   p(c_20) = [1]                                            
                             [2]                                            
                   p(c_21) = [1 0] x1 + [0]                                 
                             [0 0]      [0]                                 
                   p(c_22) = [1 0] x1 + [1 0] x2 + [0]                      
                             [0 0]      [0 0]      [0]                      
                   p(c_23) = [0]                                            
                             [0]                                            
                   p(c_24) = [1 2] x1 + [1]                                 
                             [0 0]      [0]                                 
                   p(c_25) = [0 0] x1 + [0]                                 
                             [0 2]      [1]                                 
                   p(c_26) = [1 1] x1 + [0]                                 
                             [2 1]      [0]                                 
                   p(c_27) = [0]                                            
                             [0]                                            
                   p(c_28) = [1 2] x1 + [0]                                 
                             [0 1]      [0]                                 
                   p(c_29) = [0]                                            
                             [0]                                            
                   p(c_30) = [0]                                            
                             [0]                                            
                   p(c_31) = [1]                                            
                             [0]                                            
                   p(c_32) = [2]                                            
                             [2]                                            
                   p(c_33) = [0]                                            
                             [2]                                            
                   p(c_34) = [0]                                            
                             [0]                                            
                   p(c_35) = [0]                                            
                             [0]                                            
                   p(c_36) = [0]                                            
                             [1]                                            
                   p(c_37) = [0]                                            
                             [1]                                            
                   p(c_38) = [2]                                            
                             [0]                                            
                   p(c_39) = [2]                                            
                             [0]                                            
                   p(c_40) = [1]                                            
                             [1]                                            
                   p(c_41) = [0]                                            
                             [1]                                            
                   p(c_42) = [0]                                            
                             [1]                                            
                   p(c_43) = [0]                                            
                             [0]                                            
                   p(c_44) = [0]                                            
                             [0]                                            
                   p(c_45) = [1]                                            
                             [0]                                            
                   p(c_46) = [0]                                            
                             [0]                                            
                   p(c_47) = [0 0] x1 + [0]                                 
                             [0 2]      [0]                                 
                   p(c_48) = [0]                                            
                             [1]                                            
                   p(c_49) = [0]                                            
                             [0]                                            
                   p(c_50) = [0]                                            
                             [1]                                            
                   p(c_51) = [0]                                            
                             [0]                                            
                   p(c_52) = [0]                                            
                             [0]                                            
                   p(c_53) = [2]                                            
                             [0]                                            
                   p(c_54) = [2]                                            
                             [0]                                            
                   p(c_55) = [0]                                            
                             [0]                                            
                   p(c_56) = [0]                                            
                             [0]                                            
                   p(c_57) = [0]                                            
                             [1]                                            
                   p(c_58) = [0]                                            
                             [1]                                            
                   p(c_59) = [0 0] x1 + [0]                                 
                             [2 0]      [1]                                 
                   p(c_60) = [0]                                            
                             [0]                                            
                   p(c_61) = [0]                                            
                             [0]                                            
                   p(c_62) = [0 0] x1 + [2]                                 
                             [2 1]      [1]                                 
                   p(c_63) = [2]                                            
                             [2]                                            
                   p(c_64) = [0]                                            
                             [0]                                            
                   p(c_65) = [0]                                            
                             [0]                                            
                   p(c_66) = [1]                                            
                             [1]                                            
                   p(c_67) = [0]                                            
                             [0]                                            
                   p(c_68) = [2]                                            
                             [1]                                            
                   p(c_69) = [0]                                            
                             [1]                                            
                   p(c_70) = [2]                                            
                             [2]                                            
        
        Following rules are strictly oriented:
        insert#(@x,@l) = [0 2] @l + [0 0] @x + [1]
                         [2 0]      [1 0]      [0]
                       > [0 2] @l + [0]           
                         [0 0]      [0]           
                       = c_6(insert#1#(@x,@l,@x)) 
        
        
        Following rules are (at-least) weakly oriented:
                      insert#1#(tuple#2(@valX,@keyX),@l,@x) =  [0 2] @l + [0 0] @x + [0]                                     
                                                               [0 1]      [1 2]      [2]                                     
                                                            >= [0 2] @l + [0]                                                
                                                               [0 0]      [2]                                                
                                                            =  c_7(insert#2#(@l,@keyX,@valX,@x))                             
        
                      insert#2#(::(@l1,@ls),@keyX,@valX,@x) =  [0 0] @keyX + [0 2] @ls + [0 0] @valX + [0 0] @x + [2]        
                                                               [2 0]         [0 2]       [0 2]         [2 0]      [2]        
                                                            >= [0 2] @ls + [2]                                               
                                                               [0 2]       [2]                                               
                                                            =  c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))                        
        
        insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [0 2] @ls + [0 0] @x + [2]                                    
                                                               [2 0]       [0 2]      [0]                                    
                                                            >= [0 2] @ls + [2]                                               
                                                               [2 0]       [0]                                               
                                                            =  c_10(insert#4#(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x))
        
              insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) =  [0 2] @ls + [2]                                               
                                                               [1 0]       [0]                                               
                                                            >= [0 2] @ls + [2]                                               
                                                               [0 0]       [0]                                               
                                                            =  c_11(insert#(@x,@ls))                                         
        
                                                 split#(@l) =  [2 1] @l + [0]                                                
                                                               [0 1]      [0]                                                
                                                            >= [2 1] @l + [0]                                                
                                                               [0 0]      [0]                                                
                                                            =  c_21(split#1#(@l))                                            
        
                                       split#1#(::(@x,@xs)) =  [2 3] @xs + [1]                                               
                                                               [0 1]       [2]                                               
                                                            >= [2 3] @xs + [1]                                               
                                                               [0 0]       [0]                                               
                                                            =  c_22(insert#(@x,split(@xs)),split#(@xs))                      
        
                                          splitAndSort#(@l) =  [3 3] @l + [1]                                                
                                                               [0 1]      [0]                                                
                                                            >= [2 3] @l + [1]                                                
                                                               [0 0]      [0]                                                
                                                            =  c_24(split#(@l))                                              
        
                                              insert(@x,@l) =  [1 1] @l + [0]                                                
                                                               [0 1]      [1]                                                
                                                            >= [1 1] @l + [0]                                                
                                                               [0 1]      [1]                                                
                                                            =  insert#1(@x,@l,@x)                                            
        
                       insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1 1] @l + [0]                                                
                                                               [0 1]      [1]                                                
                                                            >= [1 1] @l + [0]                                                
                                                               [0 1]      [1]                                                
                                                            =  insert#2(@l,@keyX,@valX,@x)                                   
        
                       insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            >= [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            =  insert#3(@l1,@keyX,@ls,@valX,@x)                              
        
                             insert#2(nil(),@keyX,@valX,@x) =  [0]                                                           
                                                               [1]                                                           
                                                            >= [0]                                                           
                                                               [1]                                                           
                                                            =  ::(tuple#2(::(@valX,nil()),@keyX),nil())                      
        
         insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            >= [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)       
        
               insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            >= [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))                      
        
                insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1 2] @ls + [1]                                               
                                                               [0 1]       [2]                                               
                                                            >= [1 1] @ls + [0]                                               
                                                               [0 1]       [1]                                               
                                                            =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                       
        
                                                  split(@l) =  [1 0] @l + [0]                                                
                                                               [0 1]      [0]                                                
                                                            >= [1 0] @l + [0]                                                
                                                               [0 1]      [0]                                                
                                                            =  split#1(@l)                                                   
        
                                        split#1(::(@x,@xs)) =  [1 1] @xs + [0]                                               
                                                               [0 1]       [1]                                               
                                                            >= [1 1] @xs + [0]                                               
                                                               [0 1]       [1]                                               
                                                            =  insert(@x,split(@xs))                                         
        
                                             split#1(nil()) =  [0]                                                           
                                                               [0]                                                           
                                                            >= [0]                                                           
                                                               [0]                                                           
                                                            =  nil()                                                         
        
****** Step 8.b:4.a:4.b:1.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
        - Weak DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

****** Step 8.b:4.a:4.b:1.b:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
             -->_1 insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x)):2
          
          2:W:insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
             -->_1 insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x)):3
          
          3:W:insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
             -->_1 insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                        ,@key1
                                                                                        ,@ls
                                                                                        ,@valX
                                                                                        ,@vals1
                                                                                        ,@x)):4
          
          4:W:insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x))
             -->_1 insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls)):5
          
          5:W:insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
          
          6:W:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs)):7
          
          7:W:split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
             -->_2 split#(@l) -> c_21(split#1#(@l)):6
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
          
          8:W:splitAndSort#(@l) -> c_24(split#(@l))
             -->_1 split#(@l) -> c_21(split#1#(@l)):6
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          8: splitAndSort#(@l) -> c_24(split#(@l))
          6: split#(@l) -> c_21(split#1#(@l))
          7: split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
          1: insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          5: insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          4: insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                  ,@key1
                                                                                  ,@ls
                                                                                  ,@valX
                                                                                  ,@vals1
                                                                                  ,@x))
          3: insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          2: insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
****** Step 8.b:4.a:4.b:1.b:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

*** Step 8.b:4.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak DPs:
            insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
            insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
            insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
            insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                 ,@key1
                                                                                 ,@ls
                                                                                 ,@valX
                                                                                 ,@vals1
                                                                                 ,@x))
            insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):2
          
          2:S:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys)):3
          
          3:S:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
          
          4:S:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):5
          
          5:S:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):6
          
          6:S:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
          
          7:S:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs)):8
          
          8:S:split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):12
             -->_2 split#(@l) -> c_21(split#1#(@l)):7
          
          9:S:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_2 split#(@l) -> c_21(split#1#(@l)):7
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
          
          10:S:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs)):11
          
          11:S:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
             -->_1 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
          
          12:W:insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
             -->_1 insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x)):13
          
          13:W:insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
             -->_1 insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x)):14
          
          14:W:insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
             -->_1 insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                        ,@key1
                                                                                        ,@ls
                                                                                        ,@valX
                                                                                        ,@vals1
                                                                                        ,@x)):15
          
          15:W:insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                    ,@key1
                                                                                    ,@ls
                                                                                    ,@valX
                                                                                    ,@vals1
                                                                                    ,@x))
             -->_1 insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls)):16
          
          16:W:insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):12
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          12: insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x))
          16: insert#4#(#false(),@key1,@ls,@valX,@vals1,@x) -> c_11(insert#(@x,@ls))
          15: insert#3#(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> c_10(insert#4#(#equal(@key1,@keyX)
                                                                                   ,@key1
                                                                                   ,@ls
                                                                                   ,@valX
                                                                                   ,@vals1
                                                                                   ,@x))
          14: insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
          13: insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
*** Step 8.b:4.b:2: SimplifyRHS WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/2,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):2
          
          2:S:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys)):3
          
          3:S:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
          
          4:S:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):5
          
          5:S:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):6
          
          6:S:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
          
          7:S:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs)):8
          
          8:S:split#1#(::(@x,@xs)) -> c_22(insert#(@x,split(@xs)),split#(@xs))
             -->_2 split#(@l) -> c_21(split#1#(@l)):7
          
          9:S:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_2 split#(@l) -> c_21(split#1#(@l)):7
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
          
          10:S:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs)):11
          
          11:S:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
             -->_1 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          split#1#(::(@x,@xs)) -> c_22(split#(@xs))
*** Step 8.b:4.b:3: Decompose WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        We analyse the complexity of following sub-problems (R) and (S).
        Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
        
        Problem (R)
          - Strict DPs:
              quicksort#(@l) -> c_13(quicksort#1#(@l))
              quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
              quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
              splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
              splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
          - Weak DPs:
              sortAll#(@l) -> c_17(sortAll#1#(@l))
              sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
              sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
              split#(@l) -> c_21(split#1#(@l))
              split#1#(::(@x,@xs)) -> c_22(split#(@xs))
              splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
          - Weak TRS:
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #ckgt(#EQ()) -> #false()
              #ckgt(#GT()) -> #true()
              #ckgt(#LT()) -> #false()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #greater(@x,@y) -> #ckgt(#compare(@x,@y))
              insert(@x,@l) -> insert#1(@x,@l,@x)
              insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
              insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
              insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
              insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                            ,@key1
                                                                            ,@ls
                                                                            ,@valX
                                                                            ,@vals1
                                                                            ,@x)
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
              insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
              split(@l) -> split#1(@l)
              split#1(::(@x,@xs)) -> insert(@x,split(@xs))
              split#1(nil()) -> nil()
              splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
              splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
              splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
              splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
              splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
              splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
          - Signature:
              {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
              ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
              ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2
              ,#eq#/2,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5
              ,insert#4#/6,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1
              ,split#1#/1,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0
              ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1
              ,c_9/0,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0
              ,c_24/2,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0
              ,c_39/0,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0
              ,c_54/0,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0
              ,c_69/0,c_70/3}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
              ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
              ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
              ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              sortAll#(@l) -> c_17(sortAll#1#(@l))
              sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
              sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
              split#(@l) -> c_21(split#1#(@l))
              split#1#(::(@x,@xs)) -> c_22(split#(@xs))
              splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
          - Weak DPs:
              quicksort#(@l) -> c_13(quicksort#1#(@l))
              quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
              quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
              splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
              splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
          - Weak TRS:
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #ckgt(#EQ()) -> #false()
              #ckgt(#GT()) -> #true()
              #ckgt(#LT()) -> #false()
              #compare(#0(),#0()) -> #EQ()
              #compare(#0(),#neg(@y)) -> #GT()
              #compare(#0(),#pos(@y)) -> #LT()
              #compare(#0(),#s(@y)) -> #LT()
              #compare(#neg(@x),#0()) -> #LT()
              #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
              #compare(#neg(@x),#pos(@y)) -> #LT()
              #compare(#pos(@x),#0()) -> #GT()
              #compare(#pos(@x),#neg(@y)) -> #GT()
              #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
              #compare(#s(@x),#0()) -> #GT()
              #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              #greater(@x,@y) -> #ckgt(#compare(@x,@y))
              insert(@x,@l) -> insert#1(@x,@l,@x)
              insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
              insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
              insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
              insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                            ,@key1
                                                                            ,@ls
                                                                            ,@valX
                                                                            ,@vals1
                                                                            ,@x)
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
              insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
              split(@l) -> split#1(@l)
              split#1(::(@x,@xs)) -> insert(@x,split(@xs))
              split#1(nil()) -> nil()
              splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
              splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
              splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
              splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
              splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
              splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
          - Signature:
              {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
              ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
              ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2
              ,#eq#/2,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5
              ,insert#4#/6,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1
              ,split#1#/1,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0
              ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1
              ,c_9/0,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0
              ,c_24/2,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0
              ,c_39/0,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0
              ,c_54/0,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0
              ,c_69/0,c_70/3}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
              ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
              ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
              ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
**** Step 8.b:4.b:3.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):2
          
          2:S:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys)):3
          
          3:S:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
          
          4:W:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):5
          
          5:W:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):6
          
          6:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
          
          7:W:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(split#(@xs)):8
          
          8:W:split#1#(::(@x,@xs)) -> c_22(split#(@xs))
             -->_1 split#(@l) -> c_21(split#1#(@l)):7
          
          9:W:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
             -->_2 split#(@l) -> c_21(split#1#(@l)):7
          
          10:S:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs)):11
          
          11:S:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
             -->_1 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          7: split#(@l) -> c_21(split#1#(@l))
          8: split#1#(::(@x,@xs)) -> c_22(split#(@xs))
**** Step 8.b:4.b:3.a:2: SimplifyRHS WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):2
          
          2:S:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys)):3
          
          3:S:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
          
          4:W:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):5
          
          5:W:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):6
          
          6:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
          
          9:W:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
          
          10:S:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs)):11
          
          11:S:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
             -->_1 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
**** Step 8.b:4.b:3.a:3: DecomposeDG WORST_CASE(?,O(n^5))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing}
    + Details:
        We decompose the input problem according to the dependency graph into the upper component
          sortAll#(@l) -> c_17(sortAll#1#(@l))
          sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        and a lower component
          quicksort#(@l) -> c_13(quicksort#1#(@l))
          quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
          splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        Further, following extension rules are added to the lower component.
          sortAll#(@l) -> sortAll#1#(@l)
          sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          splitAndSort#(@l) -> sortAll#(split(@l))
***** Step 8.b:4.b:3.a:3.a:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          
        Consider the set of all dependency pairs
          1: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          2: sortAll#(@l) -> c_17(sortAll#1#(@l))
          3: sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          4: splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,3,4}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
****** Step 8.b:4.b:3.a:3.a:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_17) = {1},
          uargs(c_18) = {1},
          uargs(c_20) = {2},
          uargs(c_24) = {1}
        
        Following symbols are considered usable:
          {insert,insert#1,insert#2,insert#3,insert#4,split,split#1,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
          ,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#
          ,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                           
                    p(#EQ) = [0]                           
                    p(#GT) = [0]                           
                    p(#LT) = [0]                           
                   p(#and) = [1]                           
                  p(#ckgt) = [4]                           
               p(#compare) = [2] x1 + [2] x2 + [5]         
                    p(#eq) = [4] x2 + [0]                  
                 p(#equal) = [0]                           
                 p(#false) = [0]                           
               p(#greater) = [2] x1 + [1] x2 + [0]         
                   p(#neg) = [1] x1 + [0]                  
                   p(#pos) = [1] x1 + [2]                  
                     p(#s) = [0]                           
                  p(#true) = [0]                           
                     p(::) = [1] x2 + [1]                  
                 p(append) = [0]                           
               p(append#1) = [2] x2 + [0]                  
                 p(insert) = [1] x2 + [1]                  
               p(insert#1) = [1] x2 + [1]                  
               p(insert#2) = [1] x1 + [1]                  
               p(insert#3) = [1] x3 + [2]                  
               p(insert#4) = [1] x3 + [2]                  
                    p(nil) = [0]                           
              p(quicksort) = [0]                           
            p(quicksort#1) = [0]                           
            p(quicksort#2) = [0]                           
                p(sortAll) = [0]                           
              p(sortAll#1) = [0]                           
              p(sortAll#2) = [0]                           
                  p(split) = [2] x1 + [0]                  
                p(split#1) = [2] x1 + [0]                  
           p(splitAndSort) = [0]                           
                p(splitqs) = [1]                           
              p(splitqs#1) = [0]                           
              p(splitqs#2) = [0]                           
              p(splitqs#3) = [2] x1 + [0]                  
                p(tuple#2) = [1] x2 + [2]                  
                  p(#and#) = [0]                           
                 p(#ckgt#) = [0]                           
              p(#compare#) = [0]                           
                   p(#eq#) = [0]                           
                p(#equal#) = [1] x1 + [0]                  
              p(#greater#) = [2] x1 + [1] x2 + [0]         
                p(append#) = [1] x2 + [4]                  
              p(append#1#) = [1] x2 + [0]                  
                p(insert#) = [1] x1 + [1] x2 + [0]         
              p(insert#1#) = [2] x1 + [2]                  
              p(insert#2#) = [2] x1 + [1] x2 + [1] x4 + [0]
              p(insert#3#) = [1] x1 + [4] x2 + [0]         
              p(insert#4#) = [4] x3 + [1] x5 + [2] x6 + [2]
             p(quicksort#) = [0]                           
           p(quicksort#1#) = [2]                           
           p(quicksort#2#) = [1] x1 + [1] x2 + [0]         
               p(sortAll#) = [1] x1 + [0]                  
             p(sortAll#1#) = [1] x1 + [0]                  
             p(sortAll#2#) = [1] x2 + [1]                  
                 p(split#) = [1]                           
               p(split#1#) = [4] x1 + [2]                  
          p(splitAndSort#) = [4] x1 + [4]                  
               p(splitqs#) = [2] x1 + [1] x2 + [0]         
             p(splitqs#1#) = [2] x1 + [2] x2 + [0]         
             p(splitqs#2#) = [1] x2 + [2]                  
             p(splitqs#3#) = [1] x1 + [1] x3 + [0]         
                    p(c_1) = [4] x1 + [1]                  
                    p(c_2) = [0]                           
                    p(c_3) = [1] x1 + [1]                  
                    p(c_4) = [1]                           
                    p(c_5) = [0]                           
                    p(c_6) = [1] x1 + [1]                  
                    p(c_7) = [1]                           
                    p(c_8) = [2] x1 + [2]                  
                    p(c_9) = [2]                           
                   p(c_10) = [4] x1 + [1]                  
                   p(c_11) = [1] x1 + [1]                  
                   p(c_12) = [0]                           
                   p(c_13) = [0]                           
                   p(c_14) = [1] x2 + [0]                  
                   p(c_15) = [1]                           
                   p(c_16) = [1] x1 + [4] x2 + [0]         
                   p(c_17) = [1] x1 + [0]                  
                   p(c_18) = [1] x1 + [0]                  
                   p(c_19) = [0]                           
                   p(c_20) = [1] x2 + [0]                  
                   p(c_21) = [4] x1 + [0]                  
                   p(c_22) = [1] x1 + [0]                  
                   p(c_23) = [1]                           
                   p(c_24) = [2] x1 + [3]                  
                   p(c_25) = [4]                           
                   p(c_26) = [1] x1 + [1]                  
                   p(c_27) = [1]                           
                   p(c_28) = [1] x1 + [1]                  
                   p(c_29) = [1]                           
                   p(c_30) = [0]                           
                   p(c_31) = [1]                           
                   p(c_32) = [2]                           
                   p(c_33) = [1]                           
                   p(c_34) = [0]                           
                   p(c_35) = [1]                           
                   p(c_36) = [2]                           
                   p(c_37) = [1]                           
                   p(c_38) = [4]                           
                   p(c_39) = [0]                           
                   p(c_40) = [0]                           
                   p(c_41) = [0]                           
                   p(c_42) = [1]                           
                   p(c_43) = [1] x1 + [2]                  
                   p(c_44) = [0]                           
                   p(c_45) = [4]                           
                   p(c_46) = [1]                           
                   p(c_47) = [2] x1 + [1]                  
                   p(c_48) = [0]                           
                   p(c_49) = [1] x1 + [1]                  
                   p(c_50) = [0]                           
                   p(c_51) = [2]                           
                   p(c_52) = [0]                           
                   p(c_53) = [1]                           
                   p(c_54) = [4]                           
                   p(c_55) = [4] x1 + [0]                  
                   p(c_56) = [0]                           
                   p(c_57) = [0]                           
                   p(c_58) = [2]                           
                   p(c_59) = [1]                           
                   p(c_60) = [1]                           
                   p(c_61) = [4]                           
                   p(c_62) = [1]                           
                   p(c_63) = [2]                           
                   p(c_64) = [0]                           
                   p(c_65) = [1]                           
                   p(c_66) = [0]                           
                   p(c_67) = [4]                           
                   p(c_68) = [2]                           
                   p(c_69) = [1]                           
                   p(c_70) = [0]                           
        
        Following rules are strictly oriented:
        sortAll#2#(tuple#2(@vals,@key),@xs) = [1] @xs + [1]                        
                                            > [1] @xs + [0]                        
                                            = c_20(quicksort#(@vals),sortAll#(@xs))
        
        
        Following rules are (at-least) weakly oriented:
                                              sortAll#(@l) =  [1] @l + [0]                                           
                                                           >= [1] @l + [0]                                           
                                                           =  c_17(sortAll#1#(@l))                                   
        
                                    sortAll#1#(::(@x,@xs)) =  [1] @xs + [1]                                          
                                                           >= [1] @xs + [1]                                          
                                                           =  c_18(sortAll#2#(@x,@xs))                               
        
                                         splitAndSort#(@l) =  [4] @l + [4]                                           
                                                           >= [4] @l + [3]                                           
                                                           =  c_24(sortAll#(split(@l)))                              
        
                                             insert(@x,@l) =  [1] @l + [1]                                           
                                                           >= [1] @l + [1]                                           
                                                           =  insert#1(@x,@l,@x)                                     
        
                      insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1] @l + [1]                                           
                                                           >= [1] @l + [1]                                           
                                                           =  insert#2(@l,@keyX,@valX,@x)                            
        
                      insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [1] @ls + [2]                                          
                                                           >= [1] @ls + [2]                                          
                                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)                       
        
                            insert#2(nil(),@keyX,@valX,@x) =  [1]                                                    
                                                           >= [1]                                                    
                                                           =  ::(tuple#2(::(@valX,nil()),@keyX),nil())               
        
        insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1] @ls + [2]                                          
                                                           >= [1] @ls + [2]                                          
                                                           =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)
        
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1] @ls + [2]                                          
                                                           >= [1] @ls + [2]                                          
                                                           =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))               
        
               insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1] @ls + [2]                                          
                                                           >= [1] @ls + [1]                                          
                                                           =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                
        
                                                 split(@l) =  [2] @l + [0]                                           
                                                           >= [2] @l + [0]                                           
                                                           =  split#1(@l)                                            
        
                                       split#1(::(@x,@xs)) =  [2] @xs + [2]                                          
                                                           >= [2] @xs + [1]                                          
                                                           =  insert(@x,split(@xs))                                  
        
                                            split#1(nil()) =  [0]                                                    
                                                           >= [0]                                                    
                                                           =  nil()                                                  
        
****** Step 8.b:4.b:3.a:3.a:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

****** Step 8.b:4.b:3.a:3.a:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):2
          
          2:W:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):3
          
          3:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
          4:W:splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          4: splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
          1: sortAll#(@l) -> c_17(sortAll#1#(@l))
          3: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          2: sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
****** Step 8.b:4.b:3.a:3.a:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

***** Step 8.b:4.b:3.a:3.b:1: DecomposeDG WORST_CASE(?,O(n^4))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak DPs:
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        DecomposeDG {onSelection = all below first cut in WDG, onUpper = Just someStrategy, onLower = Nothing}
    + Details:
        We decompose the input problem according to the dependency graph into the upper component
          quicksort#(@l) -> c_13(quicksort#1#(@l))
          quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
          sortAll#(@l) -> sortAll#1#(@l)
          sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          splitAndSort#(@l) -> sortAll#(split(@l))
        and a lower component
          splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        Further, following extension rules are added to the lower component.
          quicksort#(@l) -> quicksort#1#(@l)
          quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
          quicksort#1#(::(@z,@zs)) -> splitqs#(@z,@zs)
          quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
          quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
          sortAll#(@l) -> sortAll#1#(@l)
          sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          splitAndSort#(@l) -> sortAll#(split(@l))
****** Step 8.b:4.b:3.a:3.b:1.a:1: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
        - Weak DPs:
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          3: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
          
        Consider the set of all dependency pairs
          1: quicksort#(@l) -> c_13(quicksort#1#(@l))
          2: quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          3: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
          4: sortAll#(@l) -> sortAll#1#(@l)
          5: sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          6: sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          7: sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          8: splitAndSort#(@l) -> sortAll#(split(@l))
        Processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {3}
        These cover all (indirect) predecessors of dependency pairs
          {3,8}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******* Step 8.b:4.b:3.a:3.b:1.a:1.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
        - Weak DPs:
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 2 non-zero interpretation-entries in the diagonal of the component-wise maxima):
        The following argument positions are considered usable:
          uargs(c_13) = {1},
          uargs(c_14) = {1},
          uargs(c_16) = {1,2}
        
        Following symbols are considered usable:
          {#and,#eq,#equal,insert,insert#1,insert#2,insert#3,insert#4,split,split#1,splitqs,splitqs#1,splitqs#2
          ,splitqs#3,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#,append#1#,insert#,insert#1#,insert#2#
          ,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#
          ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(#EQ) = [0]                                       
                             [1]                                       
                             [0]                                       
                    p(#GT) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(#LT) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(#and) = [0]                                       
                             [0]                                       
                             [0]                                       
                  p(#ckgt) = [0 0 1]      [0]                          
                             [0 0 0] x1 + [1]                          
                             [1 1 0]      [1]                          
               p(#compare) = [0 0 0]      [1]                          
                             [0 1 0] x1 + [1]                          
                             [1 0 0]      [0]                          
                    p(#eq) = [0]                                       
                             [0]                                       
                             [0]                                       
                 p(#equal) = [0 0 0]      [0 1 0]      [0]             
                             [0 0 0] x1 + [0 0 0] x2 + [0]             
                             [1 0 0]      [0 1 0]      [1]             
                 p(#false) = [0]                                       
                             [0]                                       
                             [0]                                       
               p(#greater) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(#neg) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(#pos) = [0 0 0]      [0]                          
                             [0 0 1] x1 + [0]                          
                             [0 0 0]      [0]                          
                     p(#s) = [0 1 0]      [0]                          
                             [0 0 0] x1 + [0]                          
                             [0 0 0]      [0]                          
                  p(#true) = [0]                                       
                             [0]                                       
                             [0]                                       
                     p(::) = [1 0 0]      [1 0 0]      [0]             
                             [0 0 0] x1 + [0 1 1] x2 + [0]             
                             [0 0 0]      [0 0 0]      [1]             
                 p(append) = [0]                                       
                             [0]                                       
                             [0]                                       
               p(append#1) = [0]                                       
                             [0]                                       
                             [0]                                       
                 p(insert) = [0 0 0]      [1 0 0]      [1]             
                             [1 0 0] x1 + [0 1 1] x2 + [0]             
                             [0 0 0]      [0 0 0]      [1]             
               p(insert#1) = [1 0 0]      [0 0 0]      [1]             
                             [0 1 1] x2 + [1 0 0] x3 + [0]             
                             [0 0 0]      [0 0 0]      [1]             
               p(insert#2) = [1 0 0]      [0 0 0]      [1]             
                             [0 1 1] x1 + [1 0 0] x4 + [0]             
                             [0 0 0]      [0 0 0]      [1]             
               p(insert#3) = [1 0 0]      [1 0 0]      [0 0 0]      [1]
                             [0 0 0] x1 + [0 1 1] x3 + [1 0 0] x5 + [1]
                             [0 0 0]      [0 0 0]      [0 0 0]      [1]
               p(insert#4) = [1 0 0]      [0 1 1]      [0 0 0]      [1]
                             [0 1 1] x3 + [0 0 0] x5 + [1 0 0] x6 + [1]
                             [0 0 0]      [0 0 0]      [0 0 0]      [1]
                    p(nil) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(quicksort) = [0]                                       
                             [0]                                       
                             [0]                                       
            p(quicksort#1) = [0]                                       
                             [0]                                       
                             [0]                                       
            p(quicksort#2) = [0]                                       
                             [0]                                       
                             [0]                                       
                p(sortAll) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(sortAll#1) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(sortAll#2) = [0]                                       
                             [0]                                       
                             [0]                                       
                  p(split) = [0 1 1]      [0]                          
                             [1 1 0] x1 + [1]                          
                             [0 0 1]      [0]                          
                p(split#1) = [0 1 1]      [0]                          
                             [1 1 0] x1 + [1]                          
                             [0 0 1]      [0]                          
           p(splitAndSort) = [0]                                       
                             [0]                                       
                             [0]                                       
                p(splitqs) = [0 1 1]      [0 1 0]      [1]             
                             [0 0 0] x1 + [0 1 1] x2 + [0]             
                             [0 1 1]      [0 0 0]      [0]             
              p(splitqs#1) = [0 1 0]      [0 1 0]      [1]             
                             [0 1 1] x1 + [0 0 0] x2 + [0]             
                             [0 0 0]      [0 0 0]      [0]             
              p(splitqs#2) = [0 1 0]      [1]                          
                             [0 1 0] x1 + [1]                          
                             [0 0 0]      [0]                          
              p(splitqs#3) = [0 1 1]      [0 1 0]      [1]             
                             [0 1 1] x2 + [0 1 1] x3 + [1]             
                             [0 0 0]      [0 0 0]      [0]             
                p(tuple#2) = [0 1 1]      [0 0 0]      [0]             
                             [0 1 1] x1 + [0 1 1] x2 + [0]             
                             [0 0 0]      [0 0 0]      [0]             
                  p(#and#) = [0]                                       
                             [0]                                       
                             [0]                                       
                 p(#ckgt#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(#compare#) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(#eq#) = [0]                                       
                             [0]                                       
                             [0]                                       
                p(#equal#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(#greater#) = [0]                                       
                             [0]                                       
                             [0]                                       
                p(append#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(append#1#) = [0]                                       
                             [0]                                       
                             [0]                                       
                p(insert#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(insert#1#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(insert#2#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(insert#3#) = [0]                                       
                             [0]                                       
                             [0]                                       
              p(insert#4#) = [0]                                       
                             [0]                                       
                             [0]                                       
             p(quicksort#) = [0 1 1]      [0]                          
                             [0 0 0] x1 + [0]                          
                             [0 0 0]      [0]                          
           p(quicksort#1#) = [0 1 1]      [0]                          
                             [1 1 1] x1 + [1]                          
                             [1 1 1]      [1]                          
           p(quicksort#2#) = [0 1 0]      [0 0 0]      [1]             
                             [0 1 1] x1 + [1 0 1] x2 + [1]             
                             [0 1 0]      [0 0 0]      [1]             
               p(sortAll#) = [1 0 0]      [1]                          
                             [0 0 0] x1 + [0]                          
                             [0 0 0]      [0]                          
             p(sortAll#1#) = [1 0 0]      [1]                          
                             [0 0 0] x1 + [0]                          
                             [0 0 0]      [0]                          
             p(sortAll#2#) = [1 0 0]      [1 0 0]      [1]             
                             [0 0 0] x1 + [0 0 0] x2 + [0]             
                             [0 0 0]      [0 0 0]      [0]             
                 p(split#) = [0]                                       
                             [0]                                       
                             [0]                                       
               p(split#1#) = [0]                                       
                             [0]                                       
                             [0]                                       
          p(splitAndSort#) = [1 1 1]      [1]                          
                             [1 0 1] x1 + [0]                          
                             [0 0 0]      [0]                          
               p(splitqs#) = [0 0 0]      [0 0 0]      [1]             
                             [0 0 0] x1 + [1 0 0] x2 + [0]             
                             [1 0 0]      [0 0 0]      [0]             
             p(splitqs#1#) = [0]                                       
                             [0]                                       
                             [0]                                       
             p(splitqs#2#) = [0]                                       
                             [0]                                       
                             [0]                                       
             p(splitqs#3#) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_1) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_2) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_3) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_4) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_5) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_6) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_7) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_8) = [0]                                       
                             [0]                                       
                             [0]                                       
                    p(c_9) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_10) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_11) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_12) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_13) = [1 0 0]      [0]                          
                             [0 0 0] x1 + [0]                          
                             [0 0 0]      [0]                          
                   p(c_14) = [1 0 0]      [0 0 0]      [0]             
                             [1 0 0] x1 + [0 1 0] x2 + [0]             
                             [0 0 1]      [1 1 1]      [0]             
                   p(c_15) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_16) = [1 0 0]      [1 0 0]      [0]             
                             [1 0 0] x1 + [0 0 0] x2 + [0]             
                             [0 0 0]      [1 0 0]      [0]             
                   p(c_17) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_18) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_19) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_20) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_21) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_22) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_23) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_24) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_25) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_26) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_27) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_28) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_29) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_30) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_31) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_32) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_33) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_34) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_35) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_36) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_37) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_38) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_39) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_40) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_41) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_42) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_43) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_44) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_45) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_46) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_47) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_48) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_49) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_50) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_51) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_52) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_53) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_54) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_55) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_56) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_57) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_58) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_59) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_60) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_61) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_62) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_63) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_64) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_65) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_66) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_67) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_68) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_69) = [0]                                       
                             [0]                                       
                             [0]                                       
                   p(c_70) = [0]                                       
                             [0]                                       
                             [0]                                       
        
        Following rules are strictly oriented:
        quicksort#2#(tuple#2(@xs,@ys),@z) = [0 1 1]       [0 1 1]       [0 0 0]      [1]
                                            [0 1 1] @xs + [0 1 1] @ys + [1 0 1] @z + [1]
                                            [0 1 1]       [0 1 1]       [0 0 0]      [1]
                                          > [0 1 1]       [0 1 1]       [0]             
                                            [0 1 1] @xs + [0 0 0] @ys + [0]             
                                            [0 0 0]       [0 1 1]       [0]             
                                          = c_16(quicksort#(@xs),quicksort#(@ys))       
        
        
        Following rules are (at-least) weakly oriented:
                                            quicksort#(@l) =  [0 1 1]      [0]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           >= [0 1 1]      [0]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           =  c_13(quicksort#1#(@l))                                 
        
                                  quicksort#1#(::(@z,@zs)) =  [0 0 0]      [0 1 1]       [1]                         
                                                              [1 0 0] @z + [1 1 1] @zs + [2]                         
                                                              [1 0 0]      [1 1 1]       [2]                         
                                                           >= [0 0 0]      [0 1 1]       [1]                         
                                                              [0 0 0] @z + [1 1 1] @zs + [1]                         
                                                              [1 0 0]      [1 1 1]       [2]                         
                                                           =  c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
        
                                              sortAll#(@l) =  [1 0 0]      [1]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           >= [1 0 0]      [1]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           =  sortAll#1#(@l)                                         
        
                                    sortAll#1#(::(@x,@xs)) =  [1 0 0]      [1 0 0]       [1]                         
                                                              [0 0 0] @x + [0 0 0] @xs + [0]                         
                                                              [0 0 0]      [0 0 0]       [0]                         
                                                           >= [1 0 0]      [1 0 0]       [1]                         
                                                              [0 0 0] @x + [0 0 0] @xs + [0]                         
                                                              [0 0 0]      [0 0 0]       [0]                         
                                                           =  sortAll#2#(@x,@xs)                                     
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 1 1]         [1 0 0]       [1]                      
                                                              [0 0 0] @vals + [0 0 0] @xs + [0]                      
                                                              [0 0 0]         [0 0 0]       [0]                      
                                                           >= [0 1 1]         [0]                                    
                                                              [0 0 0] @vals + [0]                                    
                                                              [0 0 0]         [0]                                    
                                                           =  quicksort#(@vals)                                      
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 1 1]         [1 0 0]       [1]                      
                                                              [0 0 0] @vals + [0 0 0] @xs + [0]                      
                                                              [0 0 0]         [0 0 0]       [0]                      
                                                           >= [1 0 0]       [1]                                      
                                                              [0 0 0] @xs + [0]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  sortAll#(@xs)                                          
        
                                         splitAndSort#(@l) =  [1 1 1]      [1]                                       
                                                              [1 0 1] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           >= [0 1 1]      [1]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           =  sortAll#(split(@l))                                    
        
                                   #and(#false(),#false()) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                    #and(#false(),#true()) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                    #and(#true(),#false()) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                     #and(#true(),#true()) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #true()                                                
        
                                            #eq(#0(),#0()) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #true()                                                
        
                                        #eq(#0(),#neg(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                        #eq(#0(),#pos(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                          #eq(#0(),#s(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                        #eq(#neg(@x),#0()) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                    #eq(#neg(@x),#neg(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #eq(@x,@y)                                             
        
                                    #eq(#neg(@x),#pos(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                        #eq(#pos(@x),#0()) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                    #eq(#pos(@x),#neg(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                    #eq(#pos(@x),#pos(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #eq(@x,@y)                                             
        
                                          #eq(#s(@x),#0()) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                        #eq(#s(@x),#s(@y)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #eq(@x,@y)                                             
        
                          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))                    
        
                                  #eq(::(@x_1,@x_2),nil()) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                     #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                  #eq(nil(),::(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                                          #eq(nil(),nil()) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #true()                                                
        
                             #eq(nil(),tuple#2(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                     #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                             #eq(tuple#2(@x_1,@x_2),nil()) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #false()                                               
        
                #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) =  [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))                    
        
                                             #equal(@x,@y) =  [0 0 0]      [0 1 0]      [0]                          
                                                              [0 0 0] @x + [0 0 0] @y + [0]                          
                                                              [1 0 0]      [0 1 0]      [1]                          
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  #eq(@x,@y)                                             
        
                                             insert(@x,@l) =  [1 0 0]      [0 0 0]      [1]                          
                                                              [0 1 1] @l + [1 0 0] @x + [0]                          
                                                              [0 0 0]      [0 0 0]      [1]                          
                                                           >= [1 0 0]      [0 0 0]      [1]                          
                                                              [0 1 1] @l + [1 0 0] @x + [0]                          
                                                              [0 0 0]      [0 0 0]      [1]                          
                                                           =  insert#1(@x,@l,@x)                                     
        
                      insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1 0 0]      [0 0 0]      [1]                          
                                                              [0 1 1] @l + [1 0 0] @x + [0]                          
                                                              [0 0 0]      [0 0 0]      [1]                          
                                                           >= [1 0 0]      [0 0 0]      [1]                          
                                                              [0 1 1] @l + [1 0 0] @x + [0]                          
                                                              [0 0 0]      [0 0 0]      [1]                          
                                                           =  insert#2(@l,@keyX,@valX,@x)                            
        
                      insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [1 0 0]       [1 0 0]       [0 0 0]      [1]           
                                                              [0 0 0] @l1 + [0 1 1] @ls + [1 0 0] @x + [1]           
                                                              [0 0 0]       [0 0 0]       [0 0 0]      [1]           
                                                           >= [1 0 0]       [1 0 0]       [0 0 0]      [1]           
                                                              [0 0 0] @l1 + [0 1 1] @ls + [1 0 0] @x + [1]           
                                                              [0 0 0]       [0 0 0]       [0 0 0]      [1]           
                                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)                       
        
                            insert#2(nil(),@keyX,@valX,@x) =  [0 0 0]      [1]                                       
                                                              [1 0 0] @x + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [1]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           =  ::(tuple#2(::(@valX,nil()),@keyX),nil())               
        
        insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1 0 0]       [0 1 1]          [0 0 0]      [1]        
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1 0 0] @x + [1]        
                                                              [0 0 0]       [0 0 0]          [0 0 0]      [1]        
                                                           >= [1 0 0]       [0 1 1]          [0 0 0]      [1]        
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1 0 0] @x + [1]        
                                                              [0 0 0]       [0 0 0]          [0 0 0]      [1]        
                                                           =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)
        
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 1 1]          [0 0 0]      [1]        
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1 0 0] @x + [1]        
                                                              [0 0 0]       [0 0 0]          [0 0 0]      [1]        
                                                           >= [1 0 0]       [0 1 1]          [0 0 0]      [1]        
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1 0 0] @x + [1]        
                                                              [0 0 0]       [0 0 0]          [0 0 0]      [1]        
                                                           =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))               
        
               insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 1 1]          [0 0 0]      [1]        
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1 0 0] @x + [1]        
                                                              [0 0 0]       [0 0 0]          [0 0 0]      [1]        
                                                           >= [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [0]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                
        
                                                 split(@l) =  [0 1 1]      [0]                                       
                                                              [1 1 0] @l + [1]                                       
                                                              [0 0 1]      [0]                                       
                                                           >= [0 1 1]      [0]                                       
                                                              [1 1 0] @l + [1]                                       
                                                              [0 0 1]      [0]                                       
                                                           =  split#1(@l)                                            
        
                                       split#1(::(@x,@xs)) =  [0 0 0]      [0 1 1]       [1]                         
                                                              [1 0 0] @x + [1 1 1] @xs + [1]                         
                                                              [0 0 0]      [0 0 0]       [1]                         
                                                           >= [0 0 0]      [0 1 1]       [1]                         
                                                              [1 0 0] @x + [1 1 1] @xs + [1]                         
                                                              [0 0 0]      [0 0 0]       [1]                         
                                                           =  insert(@x,split(@xs))                                  
        
                                            split#1(nil()) =  [0]                                                    
                                                              [1]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  nil()                                                  
        
                                        splitqs(@pivot,@l) =  [0 1 0]      [0 1 1]          [1]                      
                                                              [0 1 1] @l + [0 0 0] @pivot + [0]                      
                                                              [0 0 0]      [0 1 1]          [0]                      
                                                           >= [0 1 0]      [0 1 0]          [1]                      
                                                              [0 1 1] @l + [0 0 0] @pivot + [0]                      
                                                              [0 0 0]      [0 0 0]          [0]                      
                                                           =  splitqs#1(@l,@pivot)                                   
        
                              splitqs#1(::(@x,@xs),@pivot) =  [0 1 0]          [0 1 1]       [1]                     
                                                              [0 0 0] @pivot + [0 1 1] @xs + [1]                     
                                                              [0 0 0]          [0 0 0]       [0]                     
                                                           >= [0 1 1]       [1]                                      
                                                              [0 1 1] @xs + [1]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  splitqs#2(splitqs(@pivot,@xs),@pivot,@x)               
        
                                   splitqs#1(nil(),@pivot) =  [0 1 0]          [1]                                   
                                                              [0 0 0] @pivot + [0]                                   
                                                              [0 0 0]          [0]                                   
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  tuple#2(nil(),nil())                                   
        
                     splitqs#2(tuple#2(@ls,@rs),@pivot,@x) =  [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 1 1] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 1 1]       [0 1 0]       [1]                        
                                                              [0 1 1] @ls + [0 1 1] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           =  splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)              
        
                            splitqs#3(#false(),@ls,@rs,@x) =  [0 1 1]       [0 1 0]       [1]                        
                                                              [0 1 1] @ls + [0 1 1] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 1 1]       [0 0 0]       [1]                        
                                                              [0 1 1] @ls + [0 1 1] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           =  tuple#2(::(@x,@ls),@rs)                                
        
                             splitqs#3(#true(),@ls,@rs,@x) =  [0 1 1]       [0 1 0]       [1]                        
                                                              [0 1 1] @ls + [0 1 1] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 1 1]       [0 0 0]       [0]                        
                                                              [0 1 1] @ls + [0 1 1] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           =  tuple#2(@ls,::(@x,@rs))                                
        
******* Step 8.b:4.b:3.a:3.b:1.a:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
        - Weak DPs:
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******* Step 8.b:4.b:3.a:3.b:1.a:1.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
        - Weak DPs:
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          2: quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          
        Consider the set of all dependency pairs
          1: quicksort#(@l) -> c_13(quicksort#1#(@l))
          2: quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          3: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
          4: sortAll#(@l) -> sortAll#1#(@l)
          5: sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          6: sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          7: sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          8: splitAndSort#(@l) -> sortAll#(split(@l))
        Processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {2}
        These cover all (indirect) predecessors of dependency pairs
          {2,3,8}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******** Step 8.b:4.b:3.a:3.b:1.a:1.b:1.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
        - Weak DPs:
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 2 non-zero interpretation-entries in the diagonal of the component-wise maxima):
        The following argument positions are considered usable:
          uargs(c_13) = {1},
          uargs(c_14) = {1},
          uargs(c_16) = {1,2}
        
        Following symbols are considered usable:
          {insert,insert#1,insert#2,insert#3,insert#4,split,split#1,splitqs,splitqs#1,splitqs#2,splitqs#3,#and#
          ,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#
          ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#
          ,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                          
                             [0]                          
                             [0]                          
                    p(#EQ) = [0]                          
                             [0]                          
                             [0]                          
                    p(#GT) = [0]                          
                             [0]                          
                             [0]                          
                    p(#LT) = [0]                          
                             [0]                          
                             [0]                          
                   p(#and) = [0 0 0]      [1 1 0]      [0]
                             [0 0 0] x1 + [0 0 0] x2 + [0]
                             [0 1 0]      [1 1 0]      [0]
                  p(#ckgt) = [0 0 1]      [0]             
                             [0 0 1] x1 + [1]             
                             [0 0 1]      [1]             
               p(#compare) = [0 0 0]      [0]             
                             [0 0 0] x1 + [0]             
                             [0 1 0]      [1]             
                    p(#eq) = [1]                          
                             [1]                          
                             [0]                          
                 p(#equal) = [0]                          
                             [0]                          
                             [0]                          
                 p(#false) = [0]                          
                             [0]                          
                             [0]                          
               p(#greater) = [0]                          
                             [0]                          
                             [0]                          
                   p(#neg) = [0]                          
                             [0]                          
                             [0]                          
                   p(#pos) = [0]                          
                             [0]                          
                             [0]                          
                     p(#s) = [0]                          
                             [0]                          
                             [0]                          
                  p(#true) = [0]                          
                             [0]                          
                             [0]                          
                     p(::) = [0 1 0]      [1 0 0]      [0]
                             [0 0 0] x1 + [0 1 1] x2 + [0]
                             [0 0 0]      [0 0 0]      [1]
                 p(append) = [0]                          
                             [0]                          
                             [0]                          
               p(append#1) = [0]                          
                             [0]                          
                             [0]                          
                 p(insert) = [1 0 0]      [1]             
                             [0 1 1] x2 + [0]             
                             [0 0 0]      [1]             
               p(insert#1) = [1 0 0]      [1]             
                             [0 1 1] x2 + [0]             
                             [0 0 0]      [1]             
               p(insert#2) = [1 0 0]      [1]             
                             [0 1 1] x1 + [0]             
                             [0 0 0]      [1]             
               p(insert#3) = [0 1 0]      [1 0 0]      [1]
                             [0 0 0] x1 + [0 1 1] x3 + [1]
                             [0 0 0]      [0 0 0]      [1]
               p(insert#4) = [1 0 0]      [0 1 1]      [1]
                             [0 1 1] x3 + [0 0 0] x5 + [1]
                             [0 0 0]      [0 0 0]      [1]
                    p(nil) = [0]                          
                             [0]                          
                             [0]                          
              p(quicksort) = [0]                          
                             [0]                          
                             [0]                          
            p(quicksort#1) = [0]                          
                             [0]                          
                             [0]                          
            p(quicksort#2) = [0]                          
                             [0]                          
                             [0]                          
                p(sortAll) = [0]                          
                             [0]                          
                             [0]                          
              p(sortAll#1) = [0]                          
                             [0]                          
                             [0]                          
              p(sortAll#2) = [0]                          
                             [0]                          
                             [0]                          
                  p(split) = [0 1 1]      [1]             
                             [0 1 1] x1 + [0]             
                             [0 0 0]      [1]             
                p(split#1) = [0 1 1]      [1]             
                             [0 1 1] x1 + [0]             
                             [0 0 0]      [1]             
           p(splitAndSort) = [0]                          
                             [0]                          
                             [0]                          
                p(splitqs) = [0 0 0]      [0 1 1]      [0]
                             [0 1 0] x1 + [1 1 1] x2 + [1]
                             [0 1 1]      [0 0 0]      [0]
              p(splitqs#1) = [0 1 1]      [0 0 0]      [0]
                             [0 1 0] x1 + [0 0 0] x2 + [1]
                             [0 0 0]      [0 1 1]      [0]
              p(splitqs#2) = [1 0 0]      [1]             
                             [1 0 0] x1 + [1]             
                             [0 0 0]      [0]             
              p(splitqs#3) = [0 1 1]      [0 1 1]      [1]
                             [0 1 1] x2 + [0 0 1] x3 + [1]
                             [0 0 0]      [0 0 0]      [0]
                p(tuple#2) = [0 1 1]      [0 1 1]      [0]
                             [0 1 1] x1 + [0 0 0] x2 + [0]
                             [0 0 0]      [0 0 0]      [0]
                  p(#and#) = [0]                          
                             [0]                          
                             [0]                          
                 p(#ckgt#) = [0]                          
                             [0]                          
                             [0]                          
              p(#compare#) = [0]                          
                             [0]                          
                             [0]                          
                   p(#eq#) = [0]                          
                             [0]                          
                             [0]                          
                p(#equal#) = [0]                          
                             [0]                          
                             [0]                          
              p(#greater#) = [0]                          
                             [0]                          
                             [0]                          
                p(append#) = [0]                          
                             [0]                          
                             [0]                          
              p(append#1#) = [0]                          
                             [0]                          
                             [0]                          
                p(insert#) = [0]                          
                             [0]                          
                             [0]                          
              p(insert#1#) = [0]                          
                             [0]                          
                             [0]                          
              p(insert#2#) = [0]                          
                             [0]                          
                             [0]                          
              p(insert#3#) = [0]                          
                             [0]                          
                             [0]                          
              p(insert#4#) = [0]                          
                             [0]                          
                             [0]                          
             p(quicksort#) = [0 1 1]      [0]             
                             [0 0 0] x1 + [0]             
                             [0 0 0]      [1]             
           p(quicksort#1#) = [0 1 1]      [0]             
                             [0 0 0] x1 + [0]             
                             [1 1 1]      [0]             
           p(quicksort#2#) = [1 0 0]      [0 0 0]      [0]
                             [0 1 0] x1 + [0 0 0] x2 + [0]
                             [0 0 0]      [1 0 0]      [1]
               p(sortAll#) = [1 0 0]      [0]             
                             [0 0 0] x1 + [0]             
                             [0 1 0]      [1]             
             p(sortAll#1#) = [1 0 0]      [0]             
                             [0 0 0] x1 + [0]             
                             [0 1 0]      [1]             
             p(sortAll#2#) = [0 1 0]      [1 0 0]      [0]
                             [0 0 0] x1 + [0 0 0] x2 + [0]
                             [0 0 0]      [0 1 0]      [1]
                 p(split#) = [0]                          
                             [0]                          
                             [0]                          
               p(split#1#) = [0]                          
                             [0]                          
                             [0]                          
          p(splitAndSort#) = [0 1 1]      [1]             
                             [0 0 0] x1 + [1]             
                             [0 1 1]      [1]             
               p(splitqs#) = [0]                          
                             [0]                          
                             [0]                          
             p(splitqs#1#) = [0]                          
                             [0]                          
                             [0]                          
             p(splitqs#2#) = [0]                          
                             [0]                          
                             [0]                          
             p(splitqs#3#) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_1) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_2) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_3) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_4) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_5) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_6) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_7) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_8) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_9) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_10) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_11) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_12) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_13) = [1 0 0]      [0]             
                             [0 0 0] x1 + [0]             
                             [0 0 0]      [1]             
                   p(c_14) = [1 0 0]      [0]             
                             [0 0 0] x1 + [0]             
                             [0 1 0]      [0]             
                   p(c_15) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_16) = [1 0 0]      [1 0 0]      [0]
                             [0 0 0] x1 + [0 0 0] x2 + [0]
                             [0 0 0]      [0 0 1]      [0]
                   p(c_17) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_18) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_19) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_20) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_21) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_22) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_23) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_24) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_25) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_26) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_27) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_28) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_29) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_30) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_31) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_32) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_33) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_34) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_35) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_36) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_37) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_38) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_39) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_40) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_41) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_42) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_43) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_44) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_45) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_46) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_47) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_48) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_49) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_50) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_51) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_52) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_53) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_54) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_55) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_56) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_57) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_58) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_59) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_60) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_61) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_62) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_63) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_64) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_65) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_66) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_67) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_68) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_69) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_70) = [0]                          
                             [0]                          
                             [0]                          
        
        Following rules are strictly oriented:
        quicksort#1#(::(@z,@zs)) = [0 0 0]      [0 1 1]       [1]                         
                                   [0 0 0] @z + [0 0 0] @zs + [0]                         
                                   [0 1 0]      [1 1 1]       [1]                         
                                 > [0 0 0]      [0 1 1]       [0]                         
                                   [0 0 0] @z + [0 0 0] @zs + [0]                         
                                   [0 1 0]      [1 1 1]       [1]                         
                                 = c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
        
        
        Following rules are (at-least) weakly oriented:
                                            quicksort#(@l) =  [0 1 1]      [0]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [0 1 1]      [0]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  c_13(quicksort#1#(@l))                                 
        
                         quicksort#2#(tuple#2(@xs,@ys),@z) =  [0 1 1]       [0 1 1]       [0 0 0]      [0]           
                                                              [0 1 1] @xs + [0 0 0] @ys + [0 0 0] @z + [0]           
                                                              [0 0 0]       [0 0 0]       [1 0 0]      [1]           
                                                           >= [0 1 1]       [0 1 1]       [0]                        
                                                              [0 0 0] @xs + [0 0 0] @ys + [0]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           =  c_16(quicksort#(@xs),quicksort#(@ys))                  
        
                                              sortAll#(@l) =  [1 0 0]      [0]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 1 0]      [1]                                       
                                                           >= [1 0 0]      [0]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 1 0]      [1]                                       
                                                           =  sortAll#1#(@l)                                         
        
                                    sortAll#1#(::(@x,@xs)) =  [0 1 0]      [1 0 0]       [0]                         
                                                              [0 0 0] @x + [0 0 0] @xs + [0]                         
                                                              [0 0 0]      [0 1 1]       [1]                         
                                                           >= [0 1 0]      [1 0 0]       [0]                         
                                                              [0 0 0] @x + [0 0 0] @xs + [0]                         
                                                              [0 0 0]      [0 1 0]       [1]                         
                                                           =  sortAll#2#(@x,@xs)                                     
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 1 1]         [1 0 0]       [0]                      
                                                              [0 0 0] @vals + [0 0 0] @xs + [0]                      
                                                              [0 0 0]         [0 1 0]       [1]                      
                                                           >= [0 1 1]         [0]                                    
                                                              [0 0 0] @vals + [0]                                    
                                                              [0 0 0]         [1]                                    
                                                           =  quicksort#(@vals)                                      
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 1 1]         [1 0 0]       [0]                      
                                                              [0 0 0] @vals + [0 0 0] @xs + [0]                      
                                                              [0 0 0]         [0 1 0]       [1]                      
                                                           >= [1 0 0]       [0]                                      
                                                              [0 0 0] @xs + [0]                                      
                                                              [0 1 0]       [1]                                      
                                                           =  sortAll#(@xs)                                          
        
                                         splitAndSort#(@l) =  [0 1 1]      [1]                                       
                                                              [0 0 0] @l + [1]                                       
                                                              [0 1 1]      [1]                                       
                                                           >= [0 1 1]      [1]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 1 1]      [1]                                       
                                                           =  sortAll#(split(@l))                                    
        
                                             insert(@x,@l) =  [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  insert#1(@x,@l,@x)                                     
        
                      insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  insert#2(@l,@keyX,@valX,@x)                            
        
                      insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [0 1 0]       [1 0 0]       [1]                        
                                                              [0 0 0] @l1 + [0 1 1] @ls + [1]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           >= [0 1 0]       [1 0 0]       [1]                        
                                                              [0 0 0] @l1 + [0 1 1] @ls + [1]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)                       
        
                            insert#2(nil(),@keyX,@valX,@x) =  [1]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [1]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           =  ::(tuple#2(::(@valX,nil()),@keyX),nil())               
        
        insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)
        
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))               
        
               insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [0]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                
        
                                                 split(@l) =  [0 1 1]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [0 1 1]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  split#1(@l)                                            
        
                                       split#1(::(@x,@xs)) =  [0 1 1]       [2]                                      
                                                              [0 1 1] @xs + [1]                                      
                                                              [0 0 0]       [1]                                      
                                                           >= [0 1 1]       [2]                                      
                                                              [0 1 1] @xs + [1]                                      
                                                              [0 0 0]       [1]                                      
                                                           =  insert(@x,split(@xs))                                  
        
                                            split#1(nil()) =  [1]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  nil()                                                  
        
                                        splitqs(@pivot,@l) =  [0 1 1]      [0 0 0]          [0]                      
                                                              [1 1 1] @l + [0 1 0] @pivot + [1]                      
                                                              [0 0 0]      [0 1 1]          [0]                      
                                                           >= [0 1 1]      [0 0 0]          [0]                      
                                                              [0 1 0] @l + [0 0 0] @pivot + [1]                      
                                                              [0 0 0]      [0 1 1]          [0]                      
                                                           =  splitqs#1(@l,@pivot)                                   
        
                              splitqs#1(::(@x,@xs),@pivot) =  [0 0 0]          [0 1 1]       [1]                     
                                                              [0 0 0] @pivot + [0 1 1] @xs + [1]                     
                                                              [0 1 1]          [0 0 0]       [0]                     
                                                           >= [0 1 1]       [1]                                      
                                                              [0 1 1] @xs + [1]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  splitqs#2(splitqs(@pivot,@xs),@pivot,@x)               
        
                                   splitqs#1(nil(),@pivot) =  [0 0 0]          [0]                                   
                                                              [0 0 0] @pivot + [1]                                   
                                                              [0 1 1]          [0]                                   
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  tuple#2(nil(),nil())                                   
        
                     splitqs#2(tuple#2(@ls,@rs),@pivot,@x) =  [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 1 1] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 1] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           =  splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)              
        
                            splitqs#3(#false(),@ls,@rs,@x) =  [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 1] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 0] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           =  tuple#2(::(@x,@ls),@rs)                                
        
                             splitqs#3(#true(),@ls,@rs,@x) =  [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 1] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 0] @rs + [0]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           =  tuple#2(@ls,::(@x,@rs))                                
        
******** Step 8.b:4.b:3.a:3.b:1.a:1.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
        - Weak DPs:
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******** Step 8.b:4.b:3.a:3.b:1.a:1.b:1.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
        - Weak DPs:
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: quicksort#(@l) -> c_13(quicksort#1#(@l))
          
        Consider the set of all dependency pairs
          1: quicksort#(@l) -> c_13(quicksort#1#(@l))
          2: quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          3: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
          4: sortAll#(@l) -> sortAll#1#(@l)
          5: sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          6: sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          7: sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          8: splitAndSort#(@l) -> sortAll#(split(@l))
        Processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,3,8}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
********* Step 8.b:4.b:3.a:3.b:1.a:1.b:1.b:1.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
        - Weak DPs:
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_13) = {1},
          uargs(c_14) = {1},
          uargs(c_16) = {1,2}
        
        Following symbols are considered usable:
          {#ckgt,#greater,insert,insert#1,insert#2,insert#3,insert#4,split,split#1,splitqs,splitqs#1,splitqs#2
          ,splitqs#3,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#,append#1#,insert#,insert#1#,insert#2#
          ,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#
          ,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [2]                                            
                             [1]                                            
                    p(#EQ) = [0]                                            
                             [0]                                            
                    p(#GT) = [0]                                            
                             [0]                                            
                    p(#LT) = [0]                                            
                             [0]                                            
                   p(#and) = [0 1] x1 + [1 1] x2 + [3]                      
                             [0 0]      [0 0]      [1]                      
                  p(#ckgt) = [0]                                            
                             [2]                                            
               p(#compare) = [0 0] x1 + [0]                                 
                             [2 0]      [0]                                 
                    p(#eq) = [0 3] x1 + [0]                                 
                             [0 0]      [0]                                 
                 p(#equal) = [0]                                            
                             [0]                                            
                 p(#false) = [0]                                            
                             [1]                                            
               p(#greater) = [2 0] x1 + [0]                                 
                             [0 1]      [2]                                 
                   p(#neg) = [1]                                            
                             [1]                                            
                   p(#pos) = [0 1] x1 + [1]                                 
                             [0 0]      [0]                                 
                     p(#s) = [1 1] x1 + [0]                                 
                             [0 0]      [0]                                 
                  p(#true) = [0]                                            
                             [2]                                            
                     p(::) = [0 1] x1 + [1 0] x2 + [0]                      
                             [0 0]      [0 1]      [1]                      
                 p(append) = [0 0] x1 + [2 2] x2 + [0]                      
                             [0 1]      [2 1]      [0]                      
               p(append#1) = [2]                                            
                             [0]                                            
                 p(insert) = [1 0] x2 + [1]                                 
                             [0 1]      [2]                                 
               p(insert#1) = [1 0] x2 + [1]                                 
                             [0 1]      [2]                                 
               p(insert#2) = [1 0] x1 + [1]                                 
                             [0 1]      [2]                                 
               p(insert#3) = [0 1] x1 + [1 0] x3 + [1]                      
                             [0 0]      [0 1]      [3]                      
               p(insert#4) = [1 0] x3 + [0 1] x5 + [1]                      
                             [0 1]      [0 0]      [3]                      
                    p(nil) = [0]                                            
                             [0]                                            
              p(quicksort) = [2 0] x1 + [0]                                 
                             [0 0]      [1]                                 
            p(quicksort#1) = [0]                                            
                             [2]                                            
            p(quicksort#2) = [0 0] x2 + [0]                                 
                             [0 1]      [0]                                 
                p(sortAll) = [0 0] x1 + [0]                                 
                             [2 1]      [2]                                 
              p(sortAll#1) = [0]                                            
                             [0]                                            
              p(sortAll#2) = [2 2] x1 + [2]                                 
                             [0 0]      [0]                                 
                  p(split) = [0 1] x1 + [0]                                 
                             [0 2]      [0]                                 
                p(split#1) = [0 1] x1 + [0]                                 
                             [0 2]      [0]                                 
           p(splitAndSort) = [0]                                            
                             [1]                                            
                p(splitqs) = [0 2] x2 + [1]                                 
                             [2 2]      [3]                                 
              p(splitqs#1) = [0 2] x1 + [1]                                 
                             [2 2]      [3]                                 
              p(splitqs#2) = [1 0] x1 + [0 0] x3 + [2]                      
                             [1 0]      [0 2]      [3]                      
              p(splitqs#3) = [0 0] x1 + [0 2] x2 + [0 2] x3 + [3]           
                             [0 2]      [0 2]      [0 1]      [0]           
                p(tuple#2) = [0 2] x1 + [0 2] x2 + [1]                      
                             [0 1]      [0 0]      [0]                      
                  p(#and#) = [0 1] x1 + [1]                                 
                             [0 1]      [0]                                 
                 p(#ckgt#) = [1 2] x1 + [2]                                 
                             [1 1]      [2]                                 
              p(#compare#) = [1 0] x2 + [0]                                 
                             [0 0]      [0]                                 
                   p(#eq#) = [0 0] x2 + [0]                                 
                             [0 1]      [0]                                 
                p(#equal#) = [0 0] x1 + [0]                                 
                             [1 0]      [1]                                 
              p(#greater#) = [0 2] x1 + [0 2] x2 + [1]                      
                             [2 0]      [0 1]      [2]                      
                p(append#) = [0 0] x1 + [0 0] x2 + [0]                      
                             [0 2]      [0 1]      [2]                      
              p(append#1#) = [1]                                            
                             [1]                                            
                p(insert#) = [0 0] x1 + [1 2] x2 + [0]                      
                             [2 0]      [0 2]      [0]                      
              p(insert#1#) = [1 1] x1 + [1 0] x3 + [0]                      
                             [0 0]      [2 2]      [1]                      
              p(insert#2#) = [2 0] x1 + [2 1] x2 + [1]                      
                             [1 0]      [1 2]      [2]                      
              p(insert#3#) = [1 0] x2 + [0 0] x3 + [0 0] x4 + [2 2] x5 + [0]
                             [2 0]      [0 2]      [0 2]      [0 0]      [0]
              p(insert#4#) = [0 0] x2 + [0 1] x3 + [0]                      
                             [1 0]      [2 1]      [0]                      
             p(quicksort#) = [0 2] x1 + [1]                                 
                             [0 3]      [0]                                 
           p(quicksort#1#) = [0 2] x1 + [0]                                 
                             [0 3]      [0]                                 
           p(quicksort#2#) = [1 0] x1 + [0 0] x2 + [1]                      
                             [1 1]      [2 2]      [2]                      
               p(sortAll#) = [2 0] x1 + [1]                                 
                             [3 0]      [0]                                 
             p(sortAll#1#) = [2 0] x1 + [1]                                 
                             [3 0]      [0]                                 
             p(sortAll#2#) = [0 2] x1 + [2 0] x2 + [1]                      
                             [0 3]      [3 0]      [0]                      
                 p(split#) = [0]                                            
                             [1]                                            
               p(split#1#) = [1]                                            
                             [0]                                            
          p(splitAndSort#) = [2 2] x1 + [1]                                 
                             [2 3]      [0]                                 
               p(splitqs#) = [0 1] x2 + [2]                                 
                             [0 2]      [0]                                 
             p(splitqs#1#) = [0 2] x1 + [0]                                 
                             [1 2]      [0]                                 
             p(splitqs#2#) = [2 0] x2 + [0]                                 
                             [2 0]      [0]                                 
             p(splitqs#3#) = [0]                                            
                             [2]                                            
                    p(c_1) = [0 0] x1 + [2]                                 
                             [2 2]      [1]                                 
                    p(c_2) = [2 0] x1 + [0 2] x2 + [0]                      
                             [0 0]      [0 0]      [0]                      
                    p(c_3) = [1 0] x1 + [0]                                 
                             [2 1]      [0]                                 
                    p(c_4) = [0]                                            
                             [1]                                            
                    p(c_5) = [2]                                            
                             [0]                                            
                    p(c_6) = [0]                                            
                             [0]                                            
                    p(c_7) = [1]                                            
                             [0]                                            
                    p(c_8) = [2]                                            
                             [0]                                            
                    p(c_9) = [0]                                            
                             [0]                                            
                   p(c_10) = [1 2] x1 + [1]                                 
                             [2 0]      [2]                                 
                   p(c_11) = [1]                                            
                             [0]                                            
                   p(c_12) = [0]                                            
                             [0]                                            
                   p(c_13) = [1 0] x1 + [0]                                 
                             [0 1]      [0]                                 
                   p(c_14) = [1 0] x1 + [0 0] x2 + [0]                      
                             [0 0]      [1 1]      [0]                      
                   p(c_15) = [2]                                            
                             [1]                                            
                   p(c_16) = [1 0] x1 + [1 0] x2 + [0]                      
                             [0 1]      [0 0]      [0]                      
                   p(c_17) = [0]                                            
                             [2]                                            
                   p(c_18) = [1 0] x1 + [0]                                 
                             [1 0]      [1]                                 
                   p(c_19) = [2]                                            
                             [0]                                            
                   p(c_20) = [1]                                            
                             [0]                                            
                   p(c_21) = [1 1] x1 + [0]                                 
                             [0 2]      [0]                                 
                   p(c_22) = [2]                                            
                             [2]                                            
                   p(c_23) = [0]                                            
                             [1]                                            
                   p(c_24) = [2]                                            
                             [0]                                            
                   p(c_25) = [0]                                            
                             [0]                                            
                   p(c_26) = [1 2] x1 + [0]                                 
                             [1 0]      [0]                                 
                   p(c_27) = [0]                                            
                             [0]                                            
                   p(c_28) = [0 0] x1 + [0 0] x2 + [1]                      
                             [0 1]      [2 0]      [2]                      
                   p(c_29) = [2]                                            
                             [0]                                            
                   p(c_30) = [1]                                            
                             [1]                                            
                   p(c_31) = [0]                                            
                             [1]                                            
                   p(c_32) = [0]                                            
                             [0]                                            
                   p(c_33) = [2]                                            
                             [2]                                            
                   p(c_34) = [0]                                            
                             [0]                                            
                   p(c_35) = [0]                                            
                             [0]                                            
                   p(c_36) = [0]                                            
                             [2]                                            
                   p(c_37) = [0]                                            
                             [0]                                            
                   p(c_38) = [0]                                            
                             [0]                                            
                   p(c_39) = [1]                                            
                             [2]                                            
                   p(c_40) = [2]                                            
                             [2]                                            
                   p(c_41) = [0]                                            
                             [0]                                            
                   p(c_42) = [0]                                            
                             [2]                                            
                   p(c_43) = [0 0] x1 + [0]                                 
                             [0 1]      [0]                                 
                   p(c_44) = [0]                                            
                             [1]                                            
                   p(c_45) = [1]                                            
                             [0]                                            
                   p(c_46) = [0]                                            
                             [0]                                            
                   p(c_47) = [0 0] x1 + [0]                                 
                             [0 1]      [1]                                 
                   p(c_48) = [2]                                            
                             [0]                                            
                   p(c_49) = [0 0] x1 + [0]                                 
                             [1 0]      [1]                                 
                   p(c_50) = [2]                                            
                             [0]                                            
                   p(c_51) = [0]                                            
                             [0]                                            
                   p(c_52) = [0]                                            
                             [0]                                            
                   p(c_53) = [1]                                            
                             [0]                                            
                   p(c_54) = [1]                                            
                             [0]                                            
                   p(c_55) = [0]                                            
                             [0]                                            
                   p(c_56) = [0]                                            
                             [0]                                            
                   p(c_57) = [0]                                            
                             [0]                                            
                   p(c_58) = [1]                                            
                             [0]                                            
                   p(c_59) = [2 0] x1 + [0]                                 
                             [0 2]      [1]                                 
                   p(c_60) = [1]                                            
                             [0]                                            
                   p(c_61) = [0 2] x1 + [0]                                 
                             [2 0]      [0]                                 
                   p(c_62) = [1 1] x1 + [2]                                 
                             [1 0]      [2]                                 
                   p(c_63) = [1]                                            
                             [0]                                            
                   p(c_64) = [1]                                            
                             [2]                                            
                   p(c_65) = [1]                                            
                             [0]                                            
                   p(c_66) = [0]                                            
                             [0]                                            
                   p(c_67) = [0]                                            
                             [0]                                            
                   p(c_68) = [0]                                            
                             [0]                                            
                   p(c_69) = [2]                                            
                             [2]                                            
                   p(c_70) = [0 0] x1 + [1]                                 
                             [1 0]      [0]                                 
        
        Following rules are strictly oriented:
        quicksort#(@l) = [0 2] @l + [1]        
                         [0 3]      [0]        
                       > [0 2] @l + [0]        
                         [0 3]      [0]        
                       = c_13(quicksort#1#(@l))
        
        
        Following rules are (at-least) weakly oriented:
                                  quicksort#1#(::(@z,@zs)) =  [0 2] @zs + [2]                                        
                                                              [0 3]       [3]                                        
                                                           >= [0 2] @zs + [2]                                        
                                                              [0 3]       [2]                                        
                                                           =  c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
        
                         quicksort#2#(tuple#2(@xs,@ys),@z) =  [0 2] @xs + [0 2] @ys + [0 0] @z + [2]                 
                                                              [0 3]       [0 2]       [2 2]      [3]                 
                                                           >= [0 2] @xs + [0 2] @ys + [2]                            
                                                              [0 3]       [0 0]       [0]                            
                                                           =  c_16(quicksort#(@xs),quicksort#(@ys))                  
        
                                              sortAll#(@l) =  [2 0] @l + [1]                                         
                                                              [3 0]      [0]                                         
                                                           >= [2 0] @l + [1]                                         
                                                              [3 0]      [0]                                         
                                                           =  sortAll#1#(@l)                                         
        
                                    sortAll#1#(::(@x,@xs)) =  [0 2] @x + [2 0] @xs + [1]                             
                                                              [0 3]      [3 0]       [0]                             
                                                           >= [0 2] @x + [2 0] @xs + [1]                             
                                                              [0 3]      [3 0]       [0]                             
                                                           =  sortAll#2#(@x,@xs)                                     
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 2] @vals + [2 0] @xs + [1]                          
                                                              [0 3]         [3 0]       [0]                          
                                                           >= [0 2] @vals + [1]                                      
                                                              [0 3]         [0]                                      
                                                           =  quicksort#(@vals)                                      
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 2] @vals + [2 0] @xs + [1]                          
                                                              [0 3]         [3 0]       [0]                          
                                                           >= [2 0] @xs + [1]                                        
                                                              [3 0]       [0]                                        
                                                           =  sortAll#(@xs)                                          
        
                                         splitAndSort#(@l) =  [2 2] @l + [1]                                         
                                                              [2 3]      [0]                                         
                                                           >= [0 2] @l + [1]                                         
                                                              [0 3]      [0]                                         
                                                           =  sortAll#(split(@l))                                    
        
                                              #ckgt(#EQ()) =  [0]                                                    
                                                              [2]                                                    
                                                           >= [0]                                                    
                                                              [1]                                                    
                                                           =  #false()                                               
        
                                              #ckgt(#GT()) =  [0]                                                    
                                                              [2]                                                    
                                                           >= [0]                                                    
                                                              [2]                                                    
                                                           =  #true()                                                
        
                                              #ckgt(#LT()) =  [0]                                                    
                                                              [2]                                                    
                                                           >= [0]                                                    
                                                              [1]                                                    
                                                           =  #false()                                               
        
                                           #greater(@x,@y) =  [2 0] @x + [0]                                         
                                                              [0 1]      [2]                                         
                                                           >= [0]                                                    
                                                              [2]                                                    
                                                           =  #ckgt(#compare(@x,@y))                                 
        
                                             insert(@x,@l) =  [1 0] @l + [1]                                         
                                                              [0 1]      [2]                                         
                                                           >= [1 0] @l + [1]                                         
                                                              [0 1]      [2]                                         
                                                           =  insert#1(@x,@l,@x)                                     
        
                      insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1 0] @l + [1]                                         
                                                              [0 1]      [2]                                         
                                                           >= [1 0] @l + [1]                                         
                                                              [0 1]      [2]                                         
                                                           =  insert#2(@l,@keyX,@valX,@x)                            
        
                      insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [0 1] @l1 + [1 0] @ls + [1]                            
                                                              [0 0]       [0 1]       [3]                            
                                                           >= [0 1] @l1 + [1 0] @ls + [1]                            
                                                              [0 0]       [0 1]       [3]                            
                                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)                       
        
                            insert#2(nil(),@keyX,@valX,@x) =  [1]                                                    
                                                              [2]                                                    
                                                           >= [1]                                                    
                                                              [1]                                                    
                                                           =  ::(tuple#2(::(@valX,nil()),@keyX),nil())               
        
        insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1 0] @ls + [0 1] @vals1 + [1]                         
                                                              [0 1]       [0 0]          [3]                         
                                                           >= [1 0] @ls + [0 1] @vals1 + [1]                         
                                                              [0 1]       [0 0]          [3]                         
                                                           =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)
        
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1 0] @ls + [0 1] @vals1 + [1]                         
                                                              [0 1]       [0 0]          [3]                         
                                                           >= [1 0] @ls + [0 1] @vals1 + [1]                         
                                                              [0 1]       [0 0]          [3]                         
                                                           =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))               
        
               insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1 0] @ls + [0 1] @vals1 + [1]                         
                                                              [0 1]       [0 0]          [3]                         
                                                           >= [1 0] @ls + [0 1] @vals1 + [1]                         
                                                              [0 1]       [0 0]          [1]                         
                                                           =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                
        
                                                 split(@l) =  [0 1] @l + [0]                                         
                                                              [0 2]      [0]                                         
                                                           >= [0 1] @l + [0]                                         
                                                              [0 2]      [0]                                         
                                                           =  split#1(@l)                                            
        
                                       split#1(::(@x,@xs)) =  [0 1] @xs + [1]                                        
                                                              [0 2]       [2]                                        
                                                           >= [0 1] @xs + [1]                                        
                                                              [0 2]       [2]                                        
                                                           =  insert(@x,split(@xs))                                  
        
                                            split#1(nil()) =  [0]                                                    
                                                              [0]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                           =  nil()                                                  
        
                                        splitqs(@pivot,@l) =  [0 2] @l + [1]                                         
                                                              [2 2]      [3]                                         
                                                           >= [0 2] @l + [1]                                         
                                                              [2 2]      [3]                                         
                                                           =  splitqs#1(@l,@pivot)                                   
        
                              splitqs#1(::(@x,@xs),@pivot) =  [0 0] @x + [0 2] @xs + [3]                             
                                                              [0 2]      [2 2]       [5]                             
                                                           >= [0 0] @x + [0 2] @xs + [3]                             
                                                              [0 2]      [0 2]       [4]                             
                                                           =  splitqs#2(splitqs(@pivot,@xs),@pivot,@x)               
        
                                   splitqs#1(nil(),@pivot) =  [1]                                                    
                                                              [3]                                                    
                                                           >= [1]                                                    
                                                              [0]                                                    
                                                           =  tuple#2(nil(),nil())                                   
        
                     splitqs#2(tuple#2(@ls,@rs),@pivot,@x) =  [0 2] @ls + [0 2] @rs + [0 0] @x + [3]                 
                                                              [0 2]       [0 2]       [0 2]      [4]                 
                                                           >= [0 2] @ls + [0 2] @rs + [0 0] @x + [3]                 
                                                              [0 2]       [0 1]       [0 2]      [4]                 
                                                           =  splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)              
        
                            splitqs#3(#false(),@ls,@rs,@x) =  [0 2] @ls + [0 2] @rs + [3]                            
                                                              [0 2]       [0 1]       [2]                            
                                                           >= [0 2] @ls + [0 2] @rs + [3]                            
                                                              [0 1]       [0 0]       [1]                            
                                                           =  tuple#2(::(@x,@ls),@rs)                                
        
                             splitqs#3(#true(),@ls,@rs,@x) =  [0 2] @ls + [0 2] @rs + [3]                            
                                                              [0 2]       [0 1]       [4]                            
                                                           >= [0 2] @ls + [0 2] @rs + [3]                            
                                                              [0 1]       [0 0]       [0]                            
                                                           =  tuple#2(@ls,::(@x,@rs))                                
        
********* Step 8.b:4.b:3.a:3.b:1.a:1.b:1.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

********* Step 8.b:4.b:3.a:3.b:1.a:1.b:1.b:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):2
          
          2:W:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys)):3
          
          3:W:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
          
          4:W:sortAll#(@l) -> sortAll#1#(@l)
             -->_1 sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs):5
          
          5:W:sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs):7
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals):6
          
          6:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
          
          7:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
             -->_1 sortAll#(@l) -> sortAll#1#(@l):4
          
          8:W:splitAndSort#(@l) -> sortAll#(split(@l))
             -->_1 sortAll#(@l) -> sortAll#1#(@l):4
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          8: splitAndSort#(@l) -> sortAll#(split(@l))
          4: sortAll#(@l) -> sortAll#1#(@l)
          7: sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          5: sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          6: sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          1: quicksort#(@l) -> c_13(quicksort#1#(@l))
          3: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
          2: quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
********* Step 8.b:4.b:3.a:3.b:1.a:1.b:1.b:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

****** Step 8.b:4.b:3.a:3.b:1.b:1: PredecessorEstimationCP WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak DPs:
            quicksort#(@l) -> quicksort#1#(@l)
            quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
            quicksort#1#(::(@z,@zs)) -> splitqs#(@z,@zs)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          
        Consider the set of all dependency pairs
          1: splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          2: splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
          3: quicksort#(@l) -> quicksort#1#(@l)
          4: quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
          5: quicksort#1#(::(@z,@zs)) -> splitqs#(@z,@zs)
          6: quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
          7: quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
          8: sortAll#(@l) -> sortAll#1#(@l)
          9: sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          10: sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          11: sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          12: splitAndSort#(@l) -> sortAll#(split(@l))
        Processor NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^2))
        SPACE(?,?)on application of the dependency pairs
          {1}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,12}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******* Step 8.b:4.b:3.a:3.b:1.b:1.a:1: NaturalMI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict DPs:
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak DPs:
            quicksort#(@l) -> quicksort#1#(@l)
            quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
            quicksort#1#(::(@z,@zs)) -> splitqs#(@z,@zs)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 2 non-zero interpretation-entries in the diagonal of the component-wise maxima):
        The following argument positions are considered usable:
          uargs(c_25) = {1},
          uargs(c_26) = {1}
        
        Following symbols are considered usable:
          {insert,insert#1,insert#2,insert#3,insert#4,split,split#1,splitqs,splitqs#1,splitqs#2,splitqs#3,#and#
          ,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#
          ,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#
          ,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                          
                             [1]                          
                             [1]                          
                    p(#EQ) = [0]                          
                             [0]                          
                             [0]                          
                    p(#GT) = [0]                          
                             [0]                          
                             [0]                          
                    p(#LT) = [0]                          
                             [1]                          
                             [0]                          
                   p(#and) = [0]                          
                             [0]                          
                             [1]                          
                  p(#ckgt) = [0 1 0]      [0]             
                             [0 0 0] x1 + [1]             
                             [0 0 1]      [1]             
               p(#compare) = [0 0 1]      [1 0 0]      [0]
                             [0 0 0] x1 + [0 0 0] x2 + [1]
                             [0 1 0]      [0 0 0]      [0]
                    p(#eq) = [0]                          
                             [0]                          
                             [0]                          
                 p(#equal) = [0]                          
                             [0]                          
                             [0]                          
                 p(#false) = [0]                          
                             [0]                          
                             [0]                          
               p(#greater) = [0]                          
                             [0]                          
                             [0]                          
                   p(#neg) = [0 0 1]      [1]             
                             [0 0 0] x1 + [0]             
                             [0 0 0]      [1]             
                   p(#pos) = [0 1 0]      [0]             
                             [0 0 0] x1 + [0]             
                             [0 0 0]      [0]             
                     p(#s) = [0]                          
                             [0]                          
                             [0]                          
                  p(#true) = [0]                          
                             [0]                          
                             [0]                          
                     p(::) = [0 1 0]      [1 0 0]      [0]
                             [0 0 0] x1 + [0 1 1] x2 + [0]
                             [0 0 0]      [0 0 0]      [1]
                 p(append) = [0]                          
                             [0]                          
                             [0]                          
               p(append#1) = [0]                          
                             [0]                          
                             [0]                          
                 p(insert) = [1 0 0]      [1]             
                             [0 1 1] x2 + [0]             
                             [0 0 0]      [1]             
               p(insert#1) = [1 0 0]      [1]             
                             [0 1 1] x2 + [0]             
                             [0 0 0]      [1]             
               p(insert#2) = [1 0 0]      [1]             
                             [0 1 1] x1 + [0]             
                             [0 0 0]      [1]             
               p(insert#3) = [0 1 0]      [1 0 0]      [1]
                             [0 0 0] x1 + [0 1 1] x3 + [1]
                             [0 0 0]      [0 0 0]      [1]
               p(insert#4) = [1 0 0]      [0 1 1]      [1]
                             [0 1 1] x3 + [0 0 0] x5 + [1]
                             [0 0 0]      [0 0 0]      [1]
                    p(nil) = [0]                          
                             [0]                          
                             [0]                          
              p(quicksort) = [0]                          
                             [0]                          
                             [0]                          
            p(quicksort#1) = [0]                          
                             [0]                          
                             [0]                          
            p(quicksort#2) = [0]                          
                             [0]                          
                             [0]                          
                p(sortAll) = [0]                          
                             [0]                          
                             [0]                          
              p(sortAll#1) = [0]                          
                             [0]                          
                             [0]                          
              p(sortAll#2) = [0]                          
                             [0]                          
                             [0]                          
                  p(split) = [0 1 1]      [0]             
                             [0 1 1] x1 + [0]             
                             [0 0 0]      [1]             
                p(split#1) = [0 1 1]      [0]             
                             [0 1 1] x1 + [0]             
                             [0 0 0]      [1]             
           p(splitAndSort) = [0]                          
                             [0]                          
                             [0]                          
                p(splitqs) = [0 0 0]      [0 1 1]      [0]
                             [1 0 1] x1 + [0 1 0] x2 + [1]
                             [0 0 0]      [0 0 0]      [1]
              p(splitqs#1) = [0 1 1]      [0]             
                             [0 1 0] x1 + [1]             
                             [0 0 0]      [1]             
              p(splitqs#2) = [1 0 1]      [0]             
                             [1 0 0] x1 + [1]             
                             [0 0 1]      [0]             
              p(splitqs#3) = [0 1 1]      [0 1 1]      [1]
                             [0 1 1] x2 + [0 0 0] x3 + [1]
                             [0 0 0]      [0 0 0]      [1]
                p(tuple#2) = [0 1 1]      [0 1 1]      [0]
                             [0 1 1] x1 + [0 0 0] x2 + [0]
                             [0 0 0]      [0 0 0]      [1]
                  p(#and#) = [0]                          
                             [0]                          
                             [0]                          
                 p(#ckgt#) = [0]                          
                             [0]                          
                             [0]                          
              p(#compare#) = [0]                          
                             [0]                          
                             [0]                          
                   p(#eq#) = [0]                          
                             [0]                          
                             [0]                          
                p(#equal#) = [0]                          
                             [0]                          
                             [0]                          
              p(#greater#) = [0]                          
                             [0]                          
                             [0]                          
                p(append#) = [0]                          
                             [0]                          
                             [0]                          
              p(append#1#) = [0]                          
                             [0]                          
                             [0]                          
                p(insert#) = [0]                          
                             [0]                          
                             [0]                          
              p(insert#1#) = [0]                          
                             [0]                          
                             [0]                          
              p(insert#2#) = [0]                          
                             [0]                          
                             [0]                          
              p(insert#3#) = [0]                          
                             [0]                          
                             [0]                          
              p(insert#4#) = [0]                          
                             [0]                          
                             [0]                          
             p(quicksort#) = [0 1 0]      [1]             
                             [0 0 0] x1 + [0]             
                             [0 0 0]      [0]             
           p(quicksort#1#) = [0 1 0]      [1]             
                             [0 0 0] x1 + [0]             
                             [0 0 0]      [0]             
           p(quicksort#2#) = [1 0 0]      [1]             
                             [0 0 0] x1 + [0]             
                             [0 0 0]      [0]             
               p(sortAll#) = [1 0 0]      [1]             
                             [0 0 0] x1 + [0]             
                             [0 0 0]      [0]             
             p(sortAll#1#) = [1 0 0]      [1]             
                             [0 0 0] x1 + [0]             
                             [0 0 0]      [0]             
             p(sortAll#2#) = [0 1 0]      [1 0 0]      [1]
                             [0 0 0] x1 + [0 0 0] x2 + [0]
                             [0 0 0]      [0 0 0]      [0]
                 p(split#) = [0]                          
                             [0]                          
                             [0]                          
               p(split#1#) = [0]                          
                             [0]                          
                             [0]                          
          p(splitAndSort#) = [0 1 1]      [1]             
                             [0 1 1] x1 + [0]             
                             [0 0 0]      [0]             
               p(splitqs#) = [0 1 1]      [1]             
                             [0 0 0] x2 + [0]             
                             [0 0 0]      [0]             
             p(splitqs#1#) = [0 1 1]      [0 0 0]      [0]
                             [1 0 0] x1 + [0 0 1] x2 + [0]
                             [0 1 0]      [1 1 0]      [0]
             p(splitqs#2#) = [0]                          
                             [0]                          
                             [0]                          
             p(splitqs#3#) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_1) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_2) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_3) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_4) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_5) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_6) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_7) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_8) = [0]                          
                             [0]                          
                             [0]                          
                    p(c_9) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_10) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_11) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_12) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_13) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_14) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_15) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_16) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_17) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_18) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_19) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_20) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_21) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_22) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_23) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_24) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_25) = [1 0 0]      [0]             
                             [0 0 0] x1 + [0]             
                             [0 0 0]      [0]             
                   p(c_26) = [1 0 0]      [0]             
                             [0 0 0] x1 + [0]             
                             [0 0 0]      [0]             
                   p(c_27) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_28) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_29) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_30) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_31) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_32) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_33) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_34) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_35) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_36) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_37) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_38) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_39) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_40) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_41) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_42) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_43) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_44) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_45) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_46) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_47) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_48) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_49) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_50) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_51) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_52) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_53) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_54) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_55) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_56) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_57) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_58) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_59) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_60) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_61) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_62) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_63) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_64) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_65) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_66) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_67) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_68) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_69) = [0]                          
                             [0]                          
                             [0]                          
                   p(c_70) = [0]                          
                             [0]                          
                             [0]                          
        
        Following rules are strictly oriented:
        splitqs#(@pivot,@l) = [0 1 1]      [1]           
                              [0 0 0] @l + [0]           
                              [0 0 0]      [0]           
                            > [0 1 1]      [0]           
                              [0 0 0] @l + [0]           
                              [0 0 0]      [0]           
                            = c_25(splitqs#1#(@l,@pivot))
        
        
        Following rules are (at-least) weakly oriented:
                                            quicksort#(@l) =  [0 1 0]      [1]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           >= [0 1 0]      [1]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           =  quicksort#1#(@l)                                       
        
                                  quicksort#1#(::(@z,@zs)) =  [0 1 1]       [1]                                      
                                                              [0 0 0] @zs + [0]                                      
                                                              [0 0 0]       [0]                                      
                                                           >= [0 1 1]       [1]                                      
                                                              [0 0 0] @zs + [0]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  quicksort#2#(splitqs(@z,@zs),@z)                       
        
                                  quicksort#1#(::(@z,@zs)) =  [0 1 1]       [1]                                      
                                                              [0 0 0] @zs + [0]                                      
                                                              [0 0 0]       [0]                                      
                                                           >= [0 1 1]       [1]                                      
                                                              [0 0 0] @zs + [0]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  splitqs#(@z,@zs)                                       
        
                         quicksort#2#(tuple#2(@xs,@ys),@z) =  [0 1 1]       [0 1 1]       [1]                        
                                                              [0 0 0] @xs + [0 0 0] @ys + [0]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 1 0]       [1]                                      
                                                              [0 0 0] @xs + [0]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  quicksort#(@xs)                                        
        
                         quicksort#2#(tuple#2(@xs,@ys),@z) =  [0 1 1]       [0 1 1]       [1]                        
                                                              [0 0 0] @xs + [0 0 0] @ys + [0]                        
                                                              [0 0 0]       [0 0 0]       [0]                        
                                                           >= [0 1 0]       [1]                                      
                                                              [0 0 0] @ys + [0]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  quicksort#(@ys)                                        
        
                                              sortAll#(@l) =  [1 0 0]      [1]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           >= [1 0 0]      [1]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           =  sortAll#1#(@l)                                         
        
                                    sortAll#1#(::(@x,@xs)) =  [0 1 0]      [1 0 0]       [1]                         
                                                              [0 0 0] @x + [0 0 0] @xs + [0]                         
                                                              [0 0 0]      [0 0 0]       [0]                         
                                                           >= [0 1 0]      [1 0 0]       [1]                         
                                                              [0 0 0] @x + [0 0 0] @xs + [0]                         
                                                              [0 0 0]      [0 0 0]       [0]                         
                                                           =  sortAll#2#(@x,@xs)                                     
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 1 1]         [1 0 0]       [1]                      
                                                              [0 0 0] @vals + [0 0 0] @xs + [0]                      
                                                              [0 0 0]         [0 0 0]       [0]                      
                                                           >= [0 1 0]         [1]                                    
                                                              [0 0 0] @vals + [0]                                    
                                                              [0 0 0]         [0]                                    
                                                           =  quicksort#(@vals)                                      
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [0 1 1]         [1 0 0]       [1]                      
                                                              [0 0 0] @vals + [0 0 0] @xs + [0]                      
                                                              [0 0 0]         [0 0 0]       [0]                      
                                                           >= [1 0 0]       [1]                                      
                                                              [0 0 0] @xs + [0]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  sortAll#(@xs)                                          
        
                                         splitAndSort#(@l) =  [0 1 1]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           >= [0 1 1]      [1]                                       
                                                              [0 0 0] @l + [0]                                       
                                                              [0 0 0]      [0]                                       
                                                           =  sortAll#(split(@l))                                    
        
                             splitqs#1#(::(@x,@xs),@pivot) =  [0 0 0]          [0 0 0]      [0 1 1]       [1]        
                                                              [0 0 1] @pivot + [0 1 0] @x + [1 0 0] @xs + [0]        
                                                              [1 1 0]          [0 0 0]      [0 1 1]       [0]        
                                                           >= [0 1 1]       [1]                                      
                                                              [0 0 0] @xs + [0]                                      
                                                              [0 0 0]       [0]                                      
                                                           =  c_26(splitqs#(@pivot,@xs))                             
        
                                             insert(@x,@l) =  [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  insert#1(@x,@l,@x)                                     
        
                      insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [1 0 0]      [1]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  insert#2(@l,@keyX,@valX,@x)                            
        
                      insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [0 1 0]       [1 0 0]       [1]                        
                                                              [0 0 0] @l1 + [0 1 1] @ls + [1]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           >= [0 1 0]       [1 0 0]       [1]                        
                                                              [0 0 0] @l1 + [0 1 1] @ls + [1]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)                       
        
                            insert#2(nil(),@keyX,@valX,@x) =  [1]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [1]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           =  ::(tuple#2(::(@valX,nil()),@keyX),nil())               
        
        insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)
        
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))               
        
               insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [1]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           >= [1 0 0]       [0 1 1]          [1]                     
                                                              [0 1 1] @ls + [0 0 0] @vals1 + [0]                     
                                                              [0 0 0]       [0 0 0]          [1]                     
                                                           =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                
        
                                                 split(@l) =  [0 1 1]      [0]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           >= [0 1 1]      [0]                                       
                                                              [0 1 1] @l + [0]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  split#1(@l)                                            
        
                                       split#1(::(@x,@xs)) =  [0 1 1]       [1]                                      
                                                              [0 1 1] @xs + [1]                                      
                                                              [0 0 0]       [1]                                      
                                                           >= [0 1 1]       [1]                                      
                                                              [0 1 1] @xs + [1]                                      
                                                              [0 0 0]       [1]                                      
                                                           =  insert(@x,split(@xs))                                  
        
                                            split#1(nil()) =  [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [0]                                                    
                                                           =  nil()                                                  
        
                                        splitqs(@pivot,@l) =  [0 1 1]      [0 0 0]          [0]                      
                                                              [0 1 0] @l + [1 0 1] @pivot + [1]                      
                                                              [0 0 0]      [0 0 0]          [1]                      
                                                           >= [0 1 1]      [0]                                       
                                                              [0 1 0] @l + [1]                                       
                                                              [0 0 0]      [1]                                       
                                                           =  splitqs#1(@l,@pivot)                                   
        
                              splitqs#1(::(@x,@xs),@pivot) =  [0 1 1]       [1]                                      
                                                              [0 1 1] @xs + [1]                                      
                                                              [0 0 0]       [1]                                      
                                                           >= [0 1 1]       [1]                                      
                                                              [0 1 1] @xs + [1]                                      
                                                              [0 0 0]       [1]                                      
                                                           =  splitqs#2(splitqs(@pivot,@xs),@pivot,@x)               
        
                                   splitqs#1(nil(),@pivot) =  [0]                                                    
                                                              [1]                                                    
                                                              [1]                                                    
                                                           >= [0]                                                    
                                                              [0]                                                    
                                                              [1]                                                    
                                                           =  tuple#2(nil(),nil())                                   
        
                     splitqs#2(tuple#2(@ls,@rs),@pivot,@x) =  [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 1 1] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           >= [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 0] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           =  splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)              
        
                            splitqs#3(#false(),@ls,@rs,@x) =  [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 0] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           >= [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 0] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           =  tuple#2(::(@x,@ls),@rs)                                
        
                             splitqs#3(#true(),@ls,@rs,@x) =  [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 0] @rs + [1]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           >= [0 1 1]       [0 1 1]       [1]                        
                                                              [0 1 1] @ls + [0 0 0] @rs + [0]                        
                                                              [0 0 0]       [0 0 0]       [1]                        
                                                           =  tuple#2(@ls,::(@x,@rs))                                
        
******* Step 8.b:4.b:3.a:3.b:1.b:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak DPs:
            quicksort#(@l) -> quicksort#1#(@l)
            quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
            quicksort#1#(::(@z,@zs)) -> splitqs#(@z,@zs)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******* Step 8.b:4.b:3.a:3.b:1.b:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            quicksort#(@l) -> quicksort#1#(@l)
            quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
            quicksort#1#(::(@z,@zs)) -> splitqs#(@z,@zs)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
            quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
            sortAll#(@l) -> sortAll#1#(@l)
            sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
            sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
            splitAndSort#(@l) -> sortAll#(split(@l))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:quicksort#(@l) -> quicksort#1#(@l)
             -->_1 quicksort#1#(::(@z,@zs)) -> splitqs#(@z,@zs):3
             -->_1 quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z):2
          
          2:W:quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys):5
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs):4
          
          3:W:quicksort#1#(::(@z,@zs)) -> splitqs#(@z,@zs)
             -->_1 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):11
          
          4:W:quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
             -->_1 quicksort#(@l) -> quicksort#1#(@l):1
          
          5:W:quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
             -->_1 quicksort#(@l) -> quicksort#1#(@l):1
          
          6:W:sortAll#(@l) -> sortAll#1#(@l)
             -->_1 sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs):7
          
          7:W:sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs):9
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals):8
          
          8:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
             -->_1 quicksort#(@l) -> quicksort#1#(@l):1
          
          9:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
             -->_1 sortAll#(@l) -> sortAll#1#(@l):6
          
          10:W:splitAndSort#(@l) -> sortAll#(split(@l))
             -->_1 sortAll#(@l) -> sortAll#1#(@l):6
          
          11:W:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs)):12
          
          12:W:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
             -->_1 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):11
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          10: splitAndSort#(@l) -> sortAll#(split(@l))
          6: sortAll#(@l) -> sortAll#1#(@l)
          9: sortAll#2#(tuple#2(@vals,@key),@xs) -> sortAll#(@xs)
          7: sortAll#1#(::(@x,@xs)) -> sortAll#2#(@x,@xs)
          8: sortAll#2#(tuple#2(@vals,@key),@xs) -> quicksort#(@vals)
          1: quicksort#(@l) -> quicksort#1#(@l)
          5: quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@ys)
          2: quicksort#1#(::(@z,@zs)) -> quicksort#2#(splitqs(@z,@zs),@z)
          4: quicksort#2#(tuple#2(@xs,@ys),@z) -> quicksort#(@xs)
          3: quicksort#1#(::(@z,@zs)) -> splitqs#(@z,@zs)
          11: splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          12: splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
******* Step 8.b:4.b:3.a:3.b:1.b:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

**** Step 8.b:4.b:3.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak DPs:
            quicksort#(@l) -> c_13(quicksort#1#(@l))
            quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
            quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
            splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
            splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):2
          
          2:S:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):3
          
          3:S:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):7
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
          4:S:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(split#(@xs)):5
          
          5:S:split#1#(::(@x,@xs)) -> c_22(split#(@xs))
             -->_1 split#(@l) -> c_21(split#1#(@l)):4
          
          6:S:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_2 split#(@l) -> c_21(split#1#(@l)):4
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
          7:W:quicksort#(@l) -> c_13(quicksort#1#(@l))
             -->_1 quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs)):8
          
          8:W:quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys)):9
          
          9:W:quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):7
             -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):7
          
          10:W:splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
             -->_1 splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs)):11
          
          11:W:splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
             -->_1 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          7: quicksort#(@l) -> c_13(quicksort#1#(@l))
          9: quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
          8: quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
          10: splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
          11: splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
**** Step 8.b:4.b:3.b:2: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/2,c_21/1,c_22/1,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):2
          
          2:S:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs)):3
          
          3:S:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
             -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
          4:S:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(split#(@xs)):5
          
          5:S:split#1#(::(@x,@xs)) -> c_22(split#(@xs))
             -->_1 split#(@l) -> c_21(split#1#(@l)):4
          
          6:S:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_2 split#(@l) -> c_21(split#1#(@l)):4
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
**** Step 8.b:4.b:3.b:3: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #ckgt(#EQ()) -> #false()
            #ckgt(#GT()) -> #true()
            #ckgt(#LT()) -> #false()
            #compare(#0(),#0()) -> #EQ()
            #compare(#0(),#neg(@y)) -> #GT()
            #compare(#0(),#pos(@y)) -> #LT()
            #compare(#0(),#s(@y)) -> #LT()
            #compare(#neg(@x),#0()) -> #LT()
            #compare(#neg(@x),#neg(@y)) -> #compare(@y,@x)
            #compare(#neg(@x),#pos(@y)) -> #LT()
            #compare(#pos(@x),#0()) -> #GT()
            #compare(#pos(@x),#neg(@y)) -> #GT()
            #compare(#pos(@x),#pos(@y)) -> #compare(@x,@y)
            #compare(#s(@x),#0()) -> #GT()
            #compare(#s(@x),#s(@y)) -> #compare(@x,@y)
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            #greater(@x,@y) -> #ckgt(#compare(@x,@y))
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
            splitqs(@pivot,@l) -> splitqs#1(@l,@pivot)
            splitqs#1(::(@x,@xs),@pivot) -> splitqs#2(splitqs(@pivot,@xs),@pivot,@x)
            splitqs#1(nil(),@pivot) -> tuple#2(nil(),nil())
            splitqs#2(tuple#2(@ls,@rs),@pivot,@x) -> splitqs#3(#greater(@x,@pivot),@ls,@rs,@x)
            splitqs#3(#false(),@ls,@rs,@x) -> tuple#2(::(@x,@ls),@rs)
            splitqs#3(#true(),@ls,@rs,@x) -> tuple#2(@ls,::(@x,@rs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          #and(#false(),#false()) -> #false()
          #and(#false(),#true()) -> #false()
          #and(#true(),#false()) -> #false()
          #and(#true(),#true()) -> #true()
          #eq(#0(),#0()) -> #true()
          #eq(#0(),#neg(@y)) -> #false()
          #eq(#0(),#pos(@y)) -> #false()
          #eq(#0(),#s(@y)) -> #false()
          #eq(#neg(@x),#0()) -> #false()
          #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
          #eq(#neg(@x),#pos(@y)) -> #false()
          #eq(#pos(@x),#0()) -> #false()
          #eq(#pos(@x),#neg(@y)) -> #false()
          #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
          #eq(#s(@x),#0()) -> #false()
          #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
          #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #eq(::(@x_1,@x_2),nil()) -> #false()
          #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
          #eq(nil(),::(@y_1,@y_2)) -> #false()
          #eq(nil(),nil()) -> #true()
          #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
          #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
          #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
          #equal(@x,@y) -> #eq(@x,@y)
          insert(@x,@l) -> insert#1(@x,@l,@x)
          insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
          insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
          insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
          insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                        ,@key1
                                                                        ,@ls
                                                                        ,@valX
                                                                        ,@vals1
                                                                        ,@x)
          insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
          insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
          split(@l) -> split#1(@l)
          split#1(::(@x,@xs)) -> insert(@x,split(@xs))
          split#1(nil()) -> nil()
          sortAll#(@l) -> c_17(sortAll#1#(@l))
          sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
          split#(@l) -> c_21(split#1#(@l))
          split#1#(::(@x,@xs)) -> c_22(split#(@xs))
          splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
**** Step 8.b:4.b:3.b:4: Decompose WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        We analyse the complexity of following sub-problems (R) and (S).
        Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
        
        Problem (R)
          - Strict DPs:
              sortAll#(@l) -> c_17(sortAll#1#(@l))
              sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
              sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
          - Weak DPs:
              split#(@l) -> c_21(split#1#(@l))
              split#1#(::(@x,@xs)) -> c_22(split#(@xs))
              splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
          - Weak TRS:
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              insert(@x,@l) -> insert#1(@x,@l,@x)
              insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
              insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
              insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
              insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                            ,@key1
                                                                            ,@ls
                                                                            ,@valX
                                                                            ,@vals1
                                                                            ,@x)
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
              insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
              split(@l) -> split#1(@l)
              split#1(::(@x,@xs)) -> insert(@x,split(@xs))
              split#1(nil()) -> nil()
          - Signature:
              {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
              ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
              ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2
              ,#eq#/2,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5
              ,insert#4#/6,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1
              ,split#1#/1,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0
              ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1
              ,c_9/0,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0
              ,c_24/2,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0
              ,c_39/0,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0
              ,c_54/0,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0
              ,c_69/0,c_70/3}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
              ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
              ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
              ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              split#(@l) -> c_21(split#1#(@l))
              split#1#(::(@x,@xs)) -> c_22(split#(@xs))
              splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
          - Weak DPs:
              sortAll#(@l) -> c_17(sortAll#1#(@l))
              sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
              sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
          - Weak TRS:
              #and(#false(),#false()) -> #false()
              #and(#false(),#true()) -> #false()
              #and(#true(),#false()) -> #false()
              #and(#true(),#true()) -> #true()
              #eq(#0(),#0()) -> #true()
              #eq(#0(),#neg(@y)) -> #false()
              #eq(#0(),#pos(@y)) -> #false()
              #eq(#0(),#s(@y)) -> #false()
              #eq(#neg(@x),#0()) -> #false()
              #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
              #eq(#neg(@x),#pos(@y)) -> #false()
              #eq(#pos(@x),#0()) -> #false()
              #eq(#pos(@x),#neg(@y)) -> #false()
              #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
              #eq(#s(@x),#0()) -> #false()
              #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
              #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #eq(::(@x_1,@x_2),nil()) -> #false()
              #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
              #eq(nil(),::(@y_1,@y_2)) -> #false()
              #eq(nil(),nil()) -> #true()
              #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
              #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
              #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
              #equal(@x,@y) -> #eq(@x,@y)
              insert(@x,@l) -> insert#1(@x,@l,@x)
              insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
              insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
              insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
              insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                            ,@key1
                                                                            ,@ls
                                                                            ,@valX
                                                                            ,@vals1
                                                                            ,@x)
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
              insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
              split(@l) -> split#1(@l)
              split#1(::(@x,@xs)) -> insert(@x,split(@xs))
              split#1(nil()) -> nil()
          - Signature:
              {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
              ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
              ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2
              ,#eq#/2,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5
              ,insert#4#/6,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1
              ,split#1#/1,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0
              ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1
              ,c_9/0,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0
              ,c_24/2,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0
              ,c_39/0,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0
              ,c_54/0,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0
              ,c_69/0,c_70/3}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
              ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
              ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
              ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
***** Step 8.b:4.b:3.b:4.a:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
        - Weak DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):2
          
          2:S:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs)):3
          
          3:S:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
          4:W:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(split#(@xs)):5
          
          5:W:split#1#(::(@x,@xs)) -> c_22(split#(@xs))
             -->_1 split#(@l) -> c_21(split#1#(@l)):4
          
          6:W:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
             -->_2 split#(@l) -> c_21(split#1#(@l)):4
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          4: split#(@l) -> c_21(split#1#(@l))
          5: split#1#(::(@x,@xs)) -> c_22(split#(@xs))
***** Step 8.b:4.b:3.b:4.a:2: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
        - Weak DPs:
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):2
          
          2:S:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs)):3
          
          3:S:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
          6:W:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
***** Step 8.b:4.b:3.b:4.a:3: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
        - Weak DPs:
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          2: sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          
        Consider the set of all dependency pairs
          1: sortAll#(@l) -> c_17(sortAll#1#(@l))
          2: sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
          3: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
          4: splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {2}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,3,4}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
****** Step 8.b:4.b:3.b:4.a:3.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
        - Weak DPs:
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_17) = {1},
          uargs(c_18) = {1},
          uargs(c_20) = {1},
          uargs(c_24) = {1}
        
        Following symbols are considered usable:
          {insert,insert#1,insert#2,insert#3,insert#4,split,split#1,#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#
          ,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#
          ,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                                             
                    p(#EQ) = [0]                                             
                    p(#GT) = [1]                                             
                    p(#LT) = [2]                                             
                   p(#and) = [4]                                             
                  p(#ckgt) = [4] x1 + [0]                                    
               p(#compare) = [4]                                             
                    p(#eq) = [1] x2 + [0]                                    
                 p(#equal) = [0]                                             
                 p(#false) = [0]                                             
               p(#greater) = [1] x1 + [1]                                    
                   p(#neg) = [1] x1 + [0]                                    
                   p(#pos) = [0]                                             
                     p(#s) = [1]                                             
                  p(#true) = [0]                                             
                     p(::) = [1] x2 + [1]                                    
                 p(append) = [1] x2 + [4]                                    
               p(append#1) = [2] x1 + [2]                                    
                 p(insert) = [1] x2 + [4]                                    
               p(insert#1) = [1] x2 + [4]                                    
               p(insert#2) = [1] x1 + [4]                                    
               p(insert#3) = [1] x3 + [5]                                    
               p(insert#4) = [1] x3 + [5]                                    
                    p(nil) = [3]                                             
              p(quicksort) = [4]                                             
            p(quicksort#1) = [1] x1 + [0]                                    
            p(quicksort#2) = [1] x1 + [4] x2 + [4]                           
                p(sortAll) = [1] x1 + [4]                                    
              p(sortAll#1) = [1] x1 + [1]                                    
              p(sortAll#2) = [1]                                             
                  p(split) = [4] x1 + [0]                                    
                p(split#1) = [4] x1 + [0]                                    
           p(splitAndSort) = [1]                                             
                p(splitqs) = [4] x2 + [1]                                    
              p(splitqs#1) = [0]                                             
              p(splitqs#2) = [1] x3 + [0]                                    
              p(splitqs#3) = [4] x1 + [1] x3 + [1] x4 + [1]                  
                p(tuple#2) = [0]                                             
                  p(#and#) = [4] x2 + [2]                                    
                 p(#ckgt#) = [4]                                             
              p(#compare#) = [0]                                             
                   p(#eq#) = [1] x1 + [0]                                    
                p(#equal#) = [4] x2 + [0]                                    
              p(#greater#) = [0]                                             
                p(append#) = [4] x1 + [1]                                    
              p(append#1#) = [4] x2 + [0]                                    
                p(insert#) = [1] x1 + [0]                                    
              p(insert#1#) = [0]                                             
              p(insert#2#) = [2] x1 + [1] x3 + [1] x4 + [2]                  
              p(insert#3#) = [1] x1 + [4] x2 + [2] x3 + [1] x4 + [2] x5 + [0]
              p(insert#4#) = [2] x3 + [1] x6 + [0]                           
             p(quicksort#) = [2] x1 + [1]                                    
           p(quicksort#1#) = [2] x1 + [1]                                    
           p(quicksort#2#) = [1] x2 + [0]                                    
               p(sortAll#) = [1] x1 + [0]                                    
             p(sortAll#1#) = [1] x1 + [0]                                    
             p(sortAll#2#) = [1] x2 + [0]                                    
                 p(split#) = [0]                                             
               p(split#1#) = [1] x1 + [2]                                    
          p(splitAndSort#) = [6] x1 + [0]                                    
               p(splitqs#) = [0]                                             
             p(splitqs#1#) = [0]                                             
             p(splitqs#2#) = [4]                                             
             p(splitqs#3#) = [1] x1 + [1] x2 + [0]                           
                    p(c_1) = [4]                                             
                    p(c_2) = [4] x1 + [1]                                    
                    p(c_3) = [2] x1 + [0]                                    
                    p(c_4) = [2]                                             
                    p(c_5) = [1]                                             
                    p(c_6) = [1] x1 + [1]                                    
                    p(c_7) = [0]                                             
                    p(c_8) = [1] x1 + [2]                                    
                    p(c_9) = [4]                                             
                   p(c_10) = [1] x1 + [1]                                    
                   p(c_11) = [0]                                             
                   p(c_12) = [4]                                             
                   p(c_13) = [4] x1 + [0]                                    
                   p(c_14) = [2] x1 + [0]                                    
                   p(c_15) = [4]                                             
                   p(c_16) = [1]                                             
                   p(c_17) = [1] x1 + [0]                                    
                   p(c_18) = [1] x1 + [0]                                    
                   p(c_19) = [2]                                             
                   p(c_20) = [1] x1 + [0]                                    
                   p(c_21) = [0]                                             
                   p(c_22) = [1] x1 + [1]                                    
                   p(c_23) = [0]                                             
                   p(c_24) = [1] x1 + [0]                                    
                   p(c_25) = [2] x1 + [0]                                    
                   p(c_26) = [0]                                             
                   p(c_27) = [2]                                             
                   p(c_28) = [2] x1 + [2] x2 + [4]                           
                   p(c_29) = [2]                                             
                   p(c_30) = [0]                                             
                   p(c_31) = [4]                                             
                   p(c_32) = [0]                                             
                   p(c_33) = [4]                                             
                   p(c_34) = [1]                                             
                   p(c_35) = [1]                                             
                   p(c_36) = [0]                                             
                   p(c_37) = [0]                                             
                   p(c_38) = [0]                                             
                   p(c_39) = [4]                                             
                   p(c_40) = [0]                                             
                   p(c_41) = [2]                                             
                   p(c_42) = [0]                                             
                   p(c_43) = [0]                                             
                   p(c_44) = [1]                                             
                   p(c_45) = [0]                                             
                   p(c_46) = [0]                                             
                   p(c_47) = [1]                                             
                   p(c_48) = [0]                                             
                   p(c_49) = [4]                                             
                   p(c_50) = [1]                                             
                   p(c_51) = [0]                                             
                   p(c_52) = [0]                                             
                   p(c_53) = [0]                                             
                   p(c_54) = [0]                                             
                   p(c_55) = [0]                                             
                   p(c_56) = [1]                                             
                   p(c_57) = [0]                                             
                   p(c_58) = [0]                                             
                   p(c_59) = [0]                                             
                   p(c_60) = [0]                                             
                   p(c_61) = [2] x1 + [1]                                    
                   p(c_62) = [4] x2 + [0]                                    
                   p(c_63) = [2]                                             
                   p(c_64) = [2]                                             
                   p(c_65) = [1]                                             
                   p(c_66) = [0]                                             
                   p(c_67) = [1]                                             
                   p(c_68) = [1]                                             
                   p(c_69) = [1]                                             
                   p(c_70) = [1]                                             
        
        Following rules are strictly oriented:
        sortAll#1#(::(@x,@xs)) = [1] @xs + [1]           
                               > [1] @xs + [0]           
                               = c_18(sortAll#2#(@x,@xs))
        
        
        Following rules are (at-least) weakly oriented:
                                              sortAll#(@l) =  [1] @l + [0]                                           
                                                           >= [1] @l + [0]                                           
                                                           =  c_17(sortAll#1#(@l))                                   
        
                       sortAll#2#(tuple#2(@vals,@key),@xs) =  [1] @xs + [0]                                          
                                                           >= [1] @xs + [0]                                          
                                                           =  c_20(sortAll#(@xs))                                    
        
                                         splitAndSort#(@l) =  [6] @l + [0]                                           
                                                           >= [4] @l + [0]                                           
                                                           =  c_24(sortAll#(split(@l)))                              
        
                                             insert(@x,@l) =  [1] @l + [4]                                           
                                                           >= [1] @l + [4]                                           
                                                           =  insert#1(@x,@l,@x)                                     
        
                      insert#1(tuple#2(@valX,@keyX),@l,@x) =  [1] @l + [4]                                           
                                                           >= [1] @l + [4]                                           
                                                           =  insert#2(@l,@keyX,@valX,@x)                            
        
                      insert#2(::(@l1,@ls),@keyX,@valX,@x) =  [1] @ls + [5]                                          
                                                           >= [1] @ls + [5]                                          
                                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)                       
        
                            insert#2(nil(),@keyX,@valX,@x) =  [7]                                                    
                                                           >= [4]                                                    
                                                           =  ::(tuple#2(::(@valX,nil()),@keyX),nil())               
        
        insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) =  [1] @ls + [5]                                          
                                                           >= [1] @ls + [5]                                          
                                                           =  insert#4(#equal(@key1,@keyX),@key1,@ls,@valX,@vals1,@x)
        
              insert#4(#false(),@key1,@ls,@valX,@vals1,@x) =  [1] @ls + [5]                                          
                                                           >= [1] @ls + [5]                                          
                                                           =  ::(tuple#2(@vals1,@key1),insert(@x,@ls))               
        
               insert#4(#true(),@key1,@ls,@valX,@vals1,@x) =  [1] @ls + [5]                                          
                                                           >= [1] @ls + [1]                                          
                                                           =  ::(tuple#2(::(@valX,@vals1),@key1),@ls)                
        
                                                 split(@l) =  [4] @l + [0]                                           
                                                           >= [4] @l + [0]                                           
                                                           =  split#1(@l)                                            
        
                                       split#1(::(@x,@xs)) =  [4] @xs + [4]                                          
                                                           >= [4] @xs + [4]                                          
                                                           =  insert(@x,split(@xs))                                  
        
                                            split#1(nil()) =  [12]                                                   
                                                           >= [3]                                                    
                                                           =  nil()                                                  
        
****** Step 8.b:4.b:3.b:4.a:3.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
        - Weak DPs:
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

****** Step 8.b:4.b:3.b:4.a:3.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):2
          
          2:W:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs)):3
          
          3:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
          4:W:splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          4: splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
          1: sortAll#(@l) -> c_17(sortAll#1#(@l))
          3: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
          2: sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
****** Step 8.b:4.b:3.b:4.a:3.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

***** Step 8.b:4.b:3.b:4.b:1: RemoveWeakSuffixes WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak DPs:
            sortAll#(@l) -> c_17(sortAll#1#(@l))
            sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:S:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(split#(@xs)):2
          
          2:S:split#1#(::(@x,@xs)) -> c_22(split#(@xs))
             -->_1 split#(@l) -> c_21(split#1#(@l)):1
          
          3:S:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
             -->_2 split#(@l) -> c_21(split#1#(@l)):1
          
          4:W:sortAll#(@l) -> c_17(sortAll#1#(@l))
             -->_1 sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs)):5
          
          5:W:sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
             -->_1 sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs)):6
          
          6:W:sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
             -->_1 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          4: sortAll#(@l) -> c_17(sortAll#1#(@l))
          6: sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
          5: sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
***** Step 8.b:4.b:3.b:4.b:2: SimplifyRHS WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/2
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        SimplifyRHS
    + Details:
        Consider the dependency graph
          1:S:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(split#(@xs)):2
          
          2:S:split#1#(::(@x,@xs)) -> c_22(split#(@xs))
             -->_1 split#(@l) -> c_21(split#1#(@l)):1
          
          3:S:splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
             -->_2 split#(@l) -> c_21(split#1#(@l)):1
          
        Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified:
          splitAndSort#(@l) -> c_24(split#(@l))
***** Step 8.b:4.b:3.b:4.b:3: UsableRules WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak TRS:
            #and(#false(),#false()) -> #false()
            #and(#false(),#true()) -> #false()
            #and(#true(),#false()) -> #false()
            #and(#true(),#true()) -> #true()
            #eq(#0(),#0()) -> #true()
            #eq(#0(),#neg(@y)) -> #false()
            #eq(#0(),#pos(@y)) -> #false()
            #eq(#0(),#s(@y)) -> #false()
            #eq(#neg(@x),#0()) -> #false()
            #eq(#neg(@x),#neg(@y)) -> #eq(@x,@y)
            #eq(#neg(@x),#pos(@y)) -> #false()
            #eq(#pos(@x),#0()) -> #false()
            #eq(#pos(@x),#neg(@y)) -> #false()
            #eq(#pos(@x),#pos(@y)) -> #eq(@x,@y)
            #eq(#s(@x),#0()) -> #false()
            #eq(#s(@x),#s(@y)) -> #eq(@x,@y)
            #eq(::(@x_1,@x_2),::(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #eq(::(@x_1,@x_2),nil()) -> #false()
            #eq(::(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #false()
            #eq(nil(),::(@y_1,@y_2)) -> #false()
            #eq(nil(),nil()) -> #true()
            #eq(nil(),tuple#2(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),::(@y_1,@y_2)) -> #false()
            #eq(tuple#2(@x_1,@x_2),nil()) -> #false()
            #eq(tuple#2(@x_1,@x_2),tuple#2(@y_1,@y_2)) -> #and(#eq(@x_1,@y_1),#eq(@x_2,@y_2))
            #equal(@x,@y) -> #eq(@x,@y)
            insert(@x,@l) -> insert#1(@x,@l,@x)
            insert#1(tuple#2(@valX,@keyX),@l,@x) -> insert#2(@l,@keyX,@valX,@x)
            insert#2(::(@l1,@ls),@keyX,@valX,@x) -> insert#3(@l1,@keyX,@ls,@valX,@x)
            insert#2(nil(),@keyX,@valX,@x) -> ::(tuple#2(::(@valX,nil()),@keyX),nil())
            insert#3(tuple#2(@vals1,@key1),@keyX,@ls,@valX,@x) -> insert#4(#equal(@key1,@keyX)
                                                                          ,@key1
                                                                          ,@ls
                                                                          ,@valX
                                                                          ,@vals1
                                                                          ,@x)
            insert#4(#false(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(@vals1,@key1),insert(@x,@ls))
            insert#4(#true(),@key1,@ls,@valX,@vals1,@x) -> ::(tuple#2(::(@valX,@vals1),@key1),@ls)
            split(@l) -> split#1(@l)
            split#1(::(@x,@xs)) -> insert(@x,split(@xs))
            split#1(nil()) -> nil()
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        UsableRules
    + Details:
        We replace rewrite rules by usable rules:
          split#(@l) -> c_21(split#1#(@l))
          split#1#(::(@x,@xs)) -> c_22(split#(@xs))
          splitAndSort#(@l) -> c_24(split#(@l))
***** Step 8.b:4.b:3.b:4.b:4: Decompose WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    + Details:
        We analyse the complexity of following sub-problems (R) and (S).
        Problem (S) is obtained from the input problem by shifting strict rules from (R) into the weak component.
        
        Problem (R)
          - Strict DPs:
              split#(@l) -> c_21(split#1#(@l))
              split#1#(::(@x,@xs)) -> c_22(split#(@xs))
          - Weak DPs:
              splitAndSort#(@l) -> c_24(split#(@l))
          - Signature:
              {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
              ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
              ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2
              ,#eq#/2,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5
              ,insert#4#/6,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1
              ,split#1#/1,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0
              ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1
              ,c_9/0,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0
              ,c_24/1,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0
              ,c_39/0,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0
              ,c_54/0,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0
              ,c_69/0,c_70/3}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
              ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
              ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
              ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        
        Problem (S)
          - Strict DPs:
              splitAndSort#(@l) -> c_24(split#(@l))
          - Weak DPs:
              split#(@l) -> c_21(split#1#(@l))
              split#1#(::(@x,@xs)) -> c_22(split#(@xs))
          - Signature:
              {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
              ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
              ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2
              ,#eq#/2,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5
              ,insert#4#/6,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1
              ,split#1#/1,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0
              ,#false/0,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1
              ,c_9/0,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0
              ,c_24/1,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0
              ,c_39/0,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0
              ,c_54/0,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0
              ,c_69/0,c_70/3}
          - Obligation:
              innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
              ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
              ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
              ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
****** Step 8.b:4.b:3.b:4.b:4.a:1: PredecessorEstimationCP WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
        - Weak DPs:
            splitAndSort#(@l) -> c_24(split#(@l))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimationCP {onSelectionCP = any intersect of rules of CDG leaf and strict-rules, withComplexityPair = NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}}
    + Details:
        We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing} to orient following rules strictly:
          1: split#(@l) -> c_21(split#1#(@l))
          2: split#1#(::(@x,@xs)) -> c_22(split#(@xs))
          
        Consider the set of all dependency pairs
          1: split#(@l) -> c_21(split#1#(@l))
          2: split#1#(::(@x,@xs)) -> c_22(split#(@xs))
          3: splitAndSort#(@l) -> c_24(split#(@l))
        Processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing}induces the complexity certificateTIME (?,O(n^1))
        SPACE(?,?)on application of the dependency pairs
          {1,2}
        These cover all (indirect) predecessors of dependency pairs
          {1,2,3}
        their number of applications is equally bounded.
        The dependency pairs are shifted into the weak component.
******* Step 8.b:4.b:3.b:4.b:4.a:1.a:1: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
        - Weak DPs:
            splitAndSort#(@l) -> c_24(split#(@l))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just first alternative for predecessorEstimation on any intersect of rules of CDG leaf and strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(c_21) = {1},
          uargs(c_22) = {1},
          uargs(c_24) = {1}
        
        Following symbols are considered usable:
          {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#,append#1#,insert#,insert#1#,insert#2#,insert#3#
          ,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#
          ,splitqs#,splitqs#1#,splitqs#2#,splitqs#3#}
        TcT has computed the following interpretation:
                     p(#0) = [0]                                    
                    p(#EQ) = [0]                                    
                    p(#GT) = [0]                                    
                    p(#LT) = [0]                                    
                   p(#and) = [0]                                    
                  p(#ckgt) = [0]                                    
               p(#compare) = [0]                                    
                    p(#eq) = [0]                                    
                 p(#equal) = [0]                                    
                 p(#false) = [0]                                    
               p(#greater) = [0]                                    
                   p(#neg) = [1] x1 + [0]                           
                   p(#pos) = [1] x1 + [0]                           
                     p(#s) = [0]                                    
                  p(#true) = [0]                                    
                     p(::) = [1] x2 + [5]                           
                 p(append) = [0]                                    
               p(append#1) = [0]                                    
                 p(insert) = [0]                                    
               p(insert#1) = [1] x3 + [0]                           
               p(insert#2) = [1] x1 + [0]                           
               p(insert#3) = [0]                                    
               p(insert#4) = [0]                                    
                    p(nil) = [0]                                    
              p(quicksort) = [4]                                    
            p(quicksort#1) = [1] x1 + [2]                           
            p(quicksort#2) = [4] x1 + [1] x2 + [1]                  
                p(sortAll) = [2]                                    
              p(sortAll#1) = [1] x1 + [1]                           
              p(sortAll#2) = [1] x1 + [1] x2 + [0]                  
                  p(split) = [2] x1 + [1]                           
                p(split#1) = [0]                                    
           p(splitAndSort) = [1] x1 + [1]                           
                p(splitqs) = [1]                                    
              p(splitqs#1) = [1] x1 + [1]                           
              p(splitqs#2) = [1] x1 + [1] x2 + [1] x3 + [1]         
              p(splitqs#3) = [1] x1 + [2] x2 + [1] x3 + [2] x4 + [0]
                p(tuple#2) = [1] x1 + [1] x2 + [0]                  
                  p(#and#) = [1] x1 + [1] x2 + [2]                  
                 p(#ckgt#) = [1]                                    
              p(#compare#) = [0]                                    
                   p(#eq#) = [0]                                    
                p(#equal#) = [0]                                    
              p(#greater#) = [0]                                    
                p(append#) = [0]                                    
              p(append#1#) = [0]                                    
                p(insert#) = [0]                                    
              p(insert#1#) = [0]                                    
              p(insert#2#) = [0]                                    
              p(insert#3#) = [0]                                    
              p(insert#4#) = [0]                                    
             p(quicksort#) = [0]                                    
           p(quicksort#1#) = [0]                                    
           p(quicksort#2#) = [1] x1 + [0]                           
               p(sortAll#) = [0]                                    
             p(sortAll#1#) = [0]                                    
             p(sortAll#2#) = [1] x1 + [0]                           
                 p(split#) = [4] x1 + [3]                           
               p(split#1#) = [4] x1 + [0]                           
          p(splitAndSort#) = [4] x1 + [3]                           
               p(splitqs#) = [0]                                    
             p(splitqs#1#) = [0]                                    
             p(splitqs#2#) = [0]                                    
             p(splitqs#3#) = [0]                                    
                    p(c_1) = [0]                                    
                    p(c_2) = [0]                                    
                    p(c_3) = [0]                                    
                    p(c_4) = [0]                                    
                    p(c_5) = [0]                                    
                    p(c_6) = [0]                                    
                    p(c_7) = [0]                                    
                    p(c_8) = [0]                                    
                    p(c_9) = [0]                                    
                   p(c_10) = [0]                                    
                   p(c_11) = [0]                                    
                   p(c_12) = [0]                                    
                   p(c_13) = [0]                                    
                   p(c_14) = [0]                                    
                   p(c_15) = [0]                                    
                   p(c_16) = [0]                                    
                   p(c_17) = [0]                                    
                   p(c_18) = [0]                                    
                   p(c_19) = [0]                                    
                   p(c_20) = [0]                                    
                   p(c_21) = [1] x1 + [1]                           
                   p(c_22) = [1] x1 + [15]                          
                   p(c_23) = [0]                                    
                   p(c_24) = [1] x1 + [0]                           
                   p(c_25) = [2] x1 + [0]                           
                   p(c_26) = [0]                                    
                   p(c_27) = [0]                                    
                   p(c_28) = [2] x2 + [0]                           
                   p(c_29) = [0]                                    
                   p(c_30) = [0]                                    
                   p(c_31) = [0]                                    
                   p(c_32) = [0]                                    
                   p(c_33) = [0]                                    
                   p(c_34) = [0]                                    
                   p(c_35) = [0]                                    
                   p(c_36) = [0]                                    
                   p(c_37) = [0]                                    
                   p(c_38) = [0]                                    
                   p(c_39) = [0]                                    
                   p(c_40) = [0]                                    
                   p(c_41) = [0]                                    
                   p(c_42) = [0]                                    
                   p(c_43) = [0]                                    
                   p(c_44) = [0]                                    
                   p(c_45) = [0]                                    
                   p(c_46) = [0]                                    
                   p(c_47) = [1] x1 + [0]                           
                   p(c_48) = [0]                                    
                   p(c_49) = [0]                                    
                   p(c_50) = [0]                                    
                   p(c_51) = [0]                                    
                   p(c_52) = [0]                                    
                   p(c_53) = [0]                                    
                   p(c_54) = [0]                                    
                   p(c_55) = [0]                                    
                   p(c_56) = [0]                                    
                   p(c_57) = [0]                                    
                   p(c_58) = [0]                                    
                   p(c_59) = [1] x1 + [0]                           
                   p(c_60) = [8]                                    
                   p(c_61) = [4]                                    
                   p(c_62) = [2] x1 + [2] x2 + [4] x3 + [0]         
                   p(c_63) = [1]                                    
                   p(c_64) = [2]                                    
                   p(c_65) = [1]                                    
                   p(c_66) = [1]                                    
                   p(c_67) = [4]                                    
                   p(c_68) = [0]                                    
                   p(c_69) = [8]                                    
                   p(c_70) = [2] x2 + [4] x3 + [0]                  
        
        Following rules are strictly oriented:
                  split#(@l) = [4] @l + [3]      
                             > [4] @l + [1]      
                             = c_21(split#1#(@l))
        
        split#1#(::(@x,@xs)) = [4] @xs + [20]    
                             > [4] @xs + [18]    
                             = c_22(split#(@xs)) 
        
        
        Following rules are (at-least) weakly oriented:
        splitAndSort#(@l) =  [4] @l + [3]    
                          >= [4] @l + [3]    
                          =  c_24(split#(@l))
        
******* Step 8.b:4.b:3.b:4.b:4.a:1.a:2: Assumption WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        Assumption {assumed = Certificate {spaceUB = Unknown, spaceLB = Unknown, timeUB = Poly (Just 0), timeLB = Unknown}}
    + Details:
        ()

******* Step 8.b:4.b:3.b:4.b:4.a:1.b:1: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(split#(@xs)):2
          
          2:W:split#1#(::(@x,@xs)) -> c_22(split#(@xs))
             -->_1 split#(@l) -> c_21(split#1#(@l)):1
          
          3:W:splitAndSort#(@l) -> c_24(split#(@l))
             -->_1 split#(@l) -> c_21(split#1#(@l)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          3: splitAndSort#(@l) -> c_24(split#(@l))
          1: split#(@l) -> c_21(split#1#(@l))
          2: split#1#(::(@x,@xs)) -> c_22(split#(@xs))
******* Step 8.b:4.b:3.b:4.b:4.a:1.b:2: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

****** Step 8.b:4.b:3.b:4.b:4.b:1: PredecessorEstimation WORST_CASE(?,O(1))
    + Considered Problem:
        - Strict DPs:
            splitAndSort#(@l) -> c_24(split#(@l))
        - Weak DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    + Details:
        We estimate the number of application of
          {1}
        by application of
          Pre({1}) = {}.
        Here rules are labelled as follows:
          1: splitAndSort#(@l) -> c_24(split#(@l))
          2: split#(@l) -> c_21(split#1#(@l))
          3: split#1#(::(@x,@xs)) -> c_22(split#(@xs))
****** Step 8.b:4.b:3.b:4.b:4.b:2: RemoveWeakSuffixes WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak DPs:
            split#(@l) -> c_21(split#1#(@l))
            split#1#(::(@x,@xs)) -> c_22(split#(@xs))
            splitAndSort#(@l) -> c_24(split#(@l))
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        RemoveWeakSuffixes
    + Details:
        Consider the dependency graph
          1:W:split#(@l) -> c_21(split#1#(@l))
             -->_1 split#1#(::(@x,@xs)) -> c_22(split#(@xs)):2
          
          2:W:split#1#(::(@x,@xs)) -> c_22(split#(@xs))
             -->_1 split#(@l) -> c_21(split#1#(@l)):1
          
          3:W:splitAndSort#(@l) -> c_24(split#(@l))
             -->_1 split#(@l) -> c_21(split#1#(@l)):1
          
        The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed.
          3: splitAndSort#(@l) -> c_24(split#(@l))
          1: split#(@l) -> c_21(split#1#(@l))
          2: split#1#(::(@x,@xs)) -> c_22(split#(@xs))
****** Step 8.b:4.b:3.b:4.b:4.b:3: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        
        - Signature:
            {#and/2,#ckgt/1,#compare/2,#eq/2,#equal/2,#greater/2,append/2,append#1/2,insert/2,insert#1/3,insert#2/4
            ,insert#3/5,insert#4/6,quicksort/1,quicksort#1/1,quicksort#2/2,sortAll/1,sortAll#1/1,sortAll#2/2,split/1
            ,split#1/1,splitAndSort/1,splitqs/2,splitqs#1/2,splitqs#2/3,splitqs#3/4,#and#/2,#ckgt#/1,#compare#/2,#eq#/2
            ,#equal#/2,#greater#/2,append#/2,append#1#/2,insert#/2,insert#1#/3,insert#2#/4,insert#3#/5,insert#4#/6
            ,quicksort#/1,quicksort#1#/1,quicksort#2#/2,sortAll#/1,sortAll#1#/1,sortAll#2#/2,split#/1,split#1#/1
            ,splitAndSort#/1,splitqs#/2,splitqs#1#/2,splitqs#2#/3,splitqs#3#/4} / {#0/0,#EQ/0,#GT/0,#LT/0,#false/0
            ,#neg/1,#pos/1,#s/1,#true/0,::/2,nil/0,tuple#2/2,c_1/1,c_2/2,c_3/1,c_4/1,c_5/0,c_6/1,c_7/1,c_8/1,c_9/0
            ,c_10/1,c_11/1,c_12/0,c_13/1,c_14/2,c_15/0,c_16/2,c_17/1,c_18/1,c_19/0,c_20/1,c_21/1,c_22/1,c_23/0,c_24/1
            ,c_25/1,c_26/1,c_27/0,c_28/2,c_29/0,c_30/0,c_31/0,c_32/0,c_33/0,c_34/0,c_35/0,c_36/0,c_37/0,c_38/0,c_39/0
            ,c_40/0,c_41/0,c_42/0,c_43/1,c_44/0,c_45/0,c_46/0,c_47/1,c_48/0,c_49/1,c_50/0,c_51/0,c_52/0,c_53/0,c_54/0
            ,c_55/1,c_56/0,c_57/0,c_58/0,c_59/1,c_60/0,c_61/1,c_62/3,c_63/0,c_64/0,c_65/0,c_66/0,c_67/0,c_68/0,c_69/0
            ,c_70/3}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {#and#,#ckgt#,#compare#,#eq#,#equal#,#greater#,append#
            ,append#1#,insert#,insert#1#,insert#2#,insert#3#,insert#4#,quicksort#,quicksort#1#,quicksort#2#,sortAll#
            ,sortAll#1#,sortAll#2#,split#,split#1#,splitAndSort#,splitqs#,splitqs#1#,splitqs#2#
            ,splitqs#3#} and constructors {#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(n^5))