*** 1 Progress [(?,O(n^6))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        #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 DP Rules:
        
      Weak TRS 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))
      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
        basic terms: {#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}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    Applied Processor:
      DependencyPairs {dpKind_ = DT}
    Proof:
      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.
*** 1.1 Progress [(?,O(n^6))]  ***
    Considered Problem:
      Strict DP Rules:
        #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()
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 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)))
        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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    Applied Processor:
      UsableRules
    Proof:
      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()
*** 1.1.1 Progress [(?,O(n^6))]  ***
    Considered Problem:
      Strict DP Rules:
        #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()
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 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))
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    Applied Processor:
      PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    Proof:
      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))                  
*** 1.1.1.1 Progress [(?,O(n^6))]  ***
    Considered Problem:
      Strict DP Rules:
        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))
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 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))
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    Applied Processor:
      PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    Proof:
      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()                 
*** 1.1.1.1.1 Progress [(?,O(n^6))]  ***
    Considered Problem:
      Strict DP Rules:
        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))
      Strict TRS Rules:
        
      Weak DP Rules:
        #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 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))
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    Applied Processor:
      RemoveWeakSuffixes
    Proof:
      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()     
*** 1.1.1.1.1.1 Progress [(?,O(n^6))]  ***
    Considered Problem:
      Strict DP Rules:
        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))
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS 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))
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    Applied Processor:
      SimplifyRHS
    Proof:
      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))
*** 1.1.1.1.1.1.1 Progress [(?,O(n^6))]  ***
    Considered Problem:
      Strict DP Rules:
        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))
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS 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))
      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
        basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    Applied Processor:
      Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
    Proof:
      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 DP Rules:
          append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        Strict TRS Rules:
          
        Weak DP Rules:
          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 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))
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
      
      Problem (S)
        Strict DP Rules:
          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))
        Strict TRS Rules:
          
        Weak DP Rules:
          append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        Weak TRS 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))
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
  *** 1.1.1.1.1.1.1.1 Progress [(?,O(n^6))]  ***
      Considered Problem:
        Strict DP Rules:
          append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        Strict TRS Rules:
          
        Weak DP Rules:
          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 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))
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
      Applied Processor:
        RemoveWeakSuffixes
      Proof:
        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))
             -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys))),quicksort#(@xs),quicksort#(@ys)):10
             -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):17
          
          10: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)):8
             -->_2 quicksort#(@l) -> c_13(quicksort#1#(@l)):8
             -->_1 append#(@l,@ys) -> c_3(append#1#(@l,@ys)):1
          
          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))
             -->_2 split#(@l) -> c_21(split#1#(@l)):14
             -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):3
          
          16:W: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: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))   
  *** 1.1.1.1.1.1.1.1.1 Progress [(?,O(n^6))]  ***
      Considered Problem:
        Strict DP Rules:
          append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        Strict TRS Rules:
          
        Weak DP Rules:
          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 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))
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
      Applied Processor:
        SimplifyRHS
      Proof:
        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))
             -->_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: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)))
  *** 1.1.1.1.1.1.1.1.1.1 Progress [(?,O(n^6))]  ***
      Considered Problem:
        Strict DP Rules:
          append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        Strict TRS Rules:
          
        Weak DP Rules:
          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 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))
        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
          basic terms: {#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#}/{#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}
      Proof:
        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))
    *** 1.1.1.1.1.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
        Considered Problem:
          Strict DP Rules:
            sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
          Strict TRS Rules:
            
          Weak DP Rules:
            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 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))
          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
            basic terms: {#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#}/{#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, greedy = NoGreedy}}
        Proof:
          We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} 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, greedy = NoGreedy}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.
      *** 1.1.1.1.1.1.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
          Considered Problem:
            Strict DP Rules:
              sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#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 any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
          Proof:
            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) = [5]                  
                        p(#EQ) = [0]                  
                        p(#GT) = [0]                  
                        p(#LT) = [0]                  
                       p(#and) = [0]                  
                      p(#ckgt) = [0]                  
                   p(#compare) = [2] x1 + [5]         
                        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 + [1]         
                     p(append) = [0]                  
                   p(append#1) = [3] x1 + [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) = [2] x1 + [0]         
                p(quicksort#1) = [0]                  
                p(quicksort#2) = [0]                  
                    p(sortAll) = [0]                  
                  p(sortAll#1) = [0]                  
                  p(sortAll#2) = [0]                  
                      p(split) = [1] x1 + [0]         
                    p(split#1) = [1] x1 + [0]         
               p(splitAndSort) = [0]                  
                    p(splitqs) = [0]                  
                  p(splitqs#1) = [0]                  
                  p(splitqs#2) = [0]                  
                  p(splitqs#3) = [0]                  
                    p(tuple#2) = [1] x2 + [0]         
                      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#) = [1]                  
               p(quicksort#1#) = [0]                  
               p(quicksort#2#) = [0]                  
                   p(sortAll#) = [4] x1 + [0]         
                 p(sortAll#1#) = [4] x1 + [0]         
                 p(sortAll#2#) = [4] x2 + [2]         
                     p(split#) = [0]                  
                   p(split#1#) = [0]                  
              p(splitAndSort#) = [4] 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 + [2]         
                       p(c_19) = [0]                  
                       p(c_20) = [1] x1 + [1] x2 + [0]
                       p(c_21) = [2] x1 + [0]         
                       p(c_22) = [1] x2 + [0]         
                       p(c_23) = [0]                  
                       p(c_24) = [1] x1 + [0]         
                       p(c_25) = [0]                  
                       p(c_26) = [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) = [2] x1 + [4] 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) = [0]                  
            
            Following rules are strictly oriented:
            sortAll#2#(tuple#2(@vals,@key) = [4] @xs + [2]         
                                     ,@xs)                         
                                           > [4] @xs + [1]         
                                           = c_20(quicksort#(@vals)
                                                 ,sortAll#(@xs))   
            
            
            Following rules are (at-least) weakly oriented:
                              sortAll#(@l) =  [4] @l + [0]                    
                                           >= [4] @l + [0]                    
                                           =  c_17(sortAll#1#(@l))            
            
                    sortAll#1#(::(@x,@xs)) =  [4] @xs + [4]                   
                                           >= [4] @xs + [4]                   
                                           =  c_18(sortAll#2#(@x,@xs))        
            
                         splitAndSort#(@l) =  [4] @l + [0]                    
                                           >= [4] @l + [0]                    
                                           =  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) =  [1] @l + [1]                    
                                       ,@l                                    
                                      ,@x)                                    
                                           >= [1] @l + [1]                    
                                           =  insert#2(@l,@keyX,@valX,@x)     
            
                      insert#2(::(@l1,@ls) =  [1] @ls + [2]                   
                                    ,@keyX                                    
                                    ,@valX                                    
                                      ,@x)                                    
                                           >= [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) =  [1] @ls + [2]                   
                                    ,@keyX                                    
                                      ,@ls                                    
                                    ,@valX                                    
                                      ,@x)                                    
                                           >= [1] @ls + [2]                   
                                           =  insert#4(#equal(@key1,@keyX)    
                                                      ,@key1                  
                                                      ,@ls                    
                                                      ,@valX                  
                                                      ,@vals1                 
                                                      ,@x)                    
            
                         insert#4(#false() =  [1] @ls + [2]                   
                                    ,@key1                                    
                                      ,@ls                                    
                                    ,@valX                                    
                                   ,@vals1                                    
                                      ,@x)                                    
                                           >= [1] @ls + [2]                   
                                           =  ::(tuple#2(@vals1,@key1)        
                                                ,insert(@x,@ls))              
            
                          insert#4(#true() =  [1] @ls + [2]                   
                                    ,@key1                                    
                                      ,@ls                                    
                                    ,@valX                                    
                                   ,@vals1                                    
                                      ,@x)                                    
                                           >= [1] @ls + [1]                   
                                           =  ::(tuple#2(::(@valX,@vals1)     
                                                        ,@key1)               
                                                ,@ls)                         
            
                                 split(@l) =  [1] @l + [0]                    
                                           >= [1] @l + [0]                    
                                           =  split#1(@l)                     
            
                       split#1(::(@x,@xs)) =  [1] @xs + [1]                   
                                           >= [1] @xs + [1]                   
                                           =  insert(@x,split(@xs))           
            
                            split#1(nil()) =  [0]                             
                                           >= [0]                             
                                           =  nil()                           
            
      *** 1.1.1.1.1.1.1.1.1.1.1.1.1 Progress [(?,O(1))]  ***
          Considered Problem:
            Strict DP Rules:
              
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            Assumption
          Proof:
            ()
      
      *** 1.1.1.1.1.1.1.1.1.1.1.2 Progress [(O(1),O(1))]  ***
          Considered Problem:
            Strict DP Rules:
              
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            RemoveWeakSuffixes
          Proof:
            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))               
      *** 1.1.1.1.1.1.1.1.1.1.1.2.1 Progress [(O(1),O(1))]  ***
          Considered Problem:
            Strict DP Rules:
              
            Strict TRS Rules:
              
            Weak DP Rules:
              
            Weak TRS 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            EmptyProcessor
          Proof:
            The problem is already closed. The intended complexity is O(1).
      
    *** 1.1.1.1.1.1.1.1.1.1.2 Progress [(O(1),O(n^5))]  ***
        Considered Problem:
          Strict DP Rules:
            append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
          Strict TRS Rules:
            
          Weak DP Rules:
            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 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))
          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
            basic terms: {#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#}/{#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}
        Proof:
          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))
      *** 1.1.1.1.1.1.1.1.1.1.2.1 Progress [(O(1),O(n^3))]  ***
          Considered Problem:
            Strict DP Rules:
              quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(append#(quicksort(@xs),::(@z,quicksort(@ys))),quicksort#(@xs),quicksort#(@ys))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            NaturalMI {miDimension = 3, miDegree = 3, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules, greedy = NoGreedy}
          Proof:
            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,3}
            
            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]                           
                                 [1]                           
                        p(#EQ) = [1]                           
                                 [0]                           
                                 [0]                           
                        p(#GT) = [0]                           
                                 [0]                           
                                 [0]                           
                        p(#LT) = [0]                           
                                 [0]                           
                                 [1]                           
                       p(#and) = [0 0 1]      [0 0 0]      [1] 
                                 [0 0 1] x1 + [0 0 0] x2 + [1] 
                                 [0 0 1]      [0 0 1]      [0] 
                      p(#ckgt) = [1 0 0]      [0]              
                                 [0 0 1] x1 + [1]              
                                 [0 1 1]      [0]              
                   p(#compare) = [0 0 0]      [0]              
                                 [1 0 1] x1 + [0]              
                                 [0 1 1]      [1]              
                        p(#eq) = [0]                           
                                 [0]                           
                                 [1]                           
                     p(#equal) = [0]                           
                                 [0]                           
                                 [0]                           
                     p(#false) = [0]                           
                                 [0]                           
                                 [0]                           
                   p(#greater) = [0]                           
                                 [0]                           
                                 [0]                           
                       p(#neg) = [0 1 0]      [0]              
                                 [0 0 1] x1 + [0]              
                                 [0 0 0]      [0]              
                       p(#pos) = [0 0 0]      [1]              
                                 [0 0 0] x1 + [0]              
                                 [0 0 1]      [0]              
                         p(#s) = [0 0 0]      [0]              
                                 [0 0 0] x1 + [0]              
                                 [0 0 1]      [0]              
                      p(#true) = [0]                           
                                 [0]                           
                                 [0]                           
                         p(::) = [1 0 0]      [1 0 0]      [0] 
                                 [0 0 0] x1 + [0 1 0] x2 + [0] 
                                 [0 0 0]      [0 0 1]      [1] 
                     p(append) = [0 0 0]      [0 0 1]      [1] 
                                 [1 0 0] x1 + [1 0 1] x2 + [0] 
                                 [0 1 0]      [1 0 0]      [1] 
                   p(append#1) = [0 0 0]      [0]              
                                 [0 0 0] x1 + [1]              
                                 [0 1 0]      [0]              
                     p(insert) = [1 0 0]      [1]              
                                 [0 1 0] x2 + [0]              
                                 [0 1 1]      [0]              
                   p(insert#1) = [1 0 0]      [1]              
                                 [0 1 0] x2 + [0]              
                                 [0 1 1]      [0]              
                   p(insert#2) = [1 0 0]      [1]              
                                 [0 1 0] x1 + [0]              
                                 [0 1 1]      [0]              
                   p(insert#3) = [1 0 0]      [1 0 0]      [1] 
                                 [0 0 0] x1 + [0 1 0] x3 + [0] 
                                 [0 0 0]      [0 1 1]      [1] 
                   p(insert#4) = [1 0 0]      [0 0 1]      [1] 
                                 [0 1 0] x3 + [0 0 0] x5 + [0] 
                                 [0 1 1]      [0 0 0]      [1] 
                        p(nil) = [1]                           
                                 [1]                           
                                 [0]                           
                  p(quicksort) = [1 1 1]      [0]              
                                 [0 0 1] x1 + [1]              
                                 [0 0 0]      [0]              
                p(quicksort#1) = [0 1 0]      [0]              
                                 [0 0 0] x1 + [0]              
                                 [0 0 0]      [0]              
                p(quicksort#2) = [1 0 0]      [0]              
                                 [0 0 0] x1 + [1]              
                                 [0 0 0]      [0]              
                    p(sortAll) = [0]                           
                                 [0]                           
                                 [0]                           
                  p(sortAll#1) = [0]                           
                                 [0]                           
                                 [0]                           
                  p(sortAll#2) = [0]                           
                                 [0]                           
                                 [0]                           
                      p(split) = [0 0 1]      [1]              
                                 [0 0 0] x1 + [1]              
                                 [0 0 1]      [0]              
                    p(split#1) = [0 0 1]      [1]              
                                 [0 0 0] x1 + [1]              
                                 [0 0 1]      [0]              
               p(splitAndSort) = [0]                           
                                 [0]                           
                                 [0]                           
                    p(splitqs) = [0 1 0]      [1 0 1]      [0] 
                                 [0 1 1] x1 + [0 0 1] x2 + [1] 
                                 [0 0 0]      [0 0 1]      [0] 
                  p(splitqs#1) = [0 0 1]      [0 0 0]      [0] 
                                 [0 0 1] x1 + [0 1 1] x2 + [1] 
                                 [0 0 1]      [0 0 0]      [0] 
                  p(splitqs#2) = [0 0 1]      [1]              
                                 [0 1 0] x1 + [1]              
                                 [0 0 1]      [1]              
                  p(splitqs#3) = [0 0 1]      [0 0 1]      [1] 
                                 [0 1 1] x2 + [0 0 0] x3 + [1] 
                                 [0 0 1]      [0 0 1]      [1] 
                    p(tuple#2) = [0 0 1]      [0 0 0]      [0] 
                                 [0 1 1] x1 + [0 0 0] x2 + [0] 
                                 [0 0 1]      [0 0 1]      [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 0 1]      [0]              
                                 [0 0 0] x1 + [0]              
                                 [0 0 0]      [0]              
               p(quicksort#1#) = [0 0 1]      [0]              
                                 [0 0 1] x1 + [0]              
                                 [0 1 0]      [0]              
               p(quicksort#2#) = [0 0 1]      [0 0 0]      [1] 
                                 [0 0 0] x1 + [1 0 0] x2 + [0] 
                                 [0 1 1]      [0 1 0]      [1] 
                   p(sortAll#) = [1 0 0]      [0]              
                                 [0 0 0] x1 + [0]              
                                 [0 0 1]      [0]              
                 p(sortAll#1#) = [1 0 0]      [0]              
                                 [0 0 0] x1 + [0]              
                                 [0 0 1]      [0]              
                 p(sortAll#2#) = [1 0 0]      [1 0 0]      [0] 
                                 [0 0 0] x1 + [0 0 0] x2 + [0] 
                                 [0 0 0]      [0 0 1]      [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 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) = [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] x1 + [0]              
                                 [0 0 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) = [0 0 1]       [0 0 1]       [0 0   
                                     ,@z)   0]      [1]                        
                                            [0 0 0] @xs + [0 0 0] @ys + [1 0   
                                            0] @z + [0]                        
                                            [0 1 2]       [0 0 1]       [0 1   
                                            0]      [1]                        
                                          > [0 0 1]       [0 0 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 0 1]      [0]                
                                              [0 0 0] @l + [0]                
                                              [0 0 0]      [0]                
                                           >= [0 0 1]      [0]                
                                              [0 0 0] @l + [0]                
                                              [0 0 0]      [0]                
                                           =  c_13(quicksort#1#(@l))          
            
                  quicksort#1#(::(@z,@zs)) =  [0 0 1]       [1]               
                                              [0 0 1] @zs + [1]               
                                              [0 1 0]       [0]               
                                           >= [0 0 1]       [1]               
                                              [0 0 0] @zs + [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 1]      [0]                
                                           >= [1 0 0]      [0]                
                                              [0 0 0] @l + [0]                
                                              [0 0 1]      [0]                
                                           =  sortAll#1#(@l)                  
            
                    sortAll#1#(::(@x,@xs)) =  [1 0 0]      [1 0 0]       [0]  
                                              [0 0 0] @x + [0 0 0] @xs + [0]  
                                              [0 0 0]      [0 0 1]       [1]  
                                           >= [1 0 0]      [1 0 0]       [0]  
                                              [0 0 0] @x + [0 0 0] @xs + [0]  
                                              [0 0 0]      [0 0 1]       [0]  
                                           =  sortAll#2#(@x,@xs)              
            
            sortAll#2#(tuple#2(@vals,@key) =  [0 0 1]         [1 0            
                                     ,@xs)    0]       [0]                    
                                              [0 0 0] @vals + [0 0            
                                              0] @xs + [0]                    
                                              [0 0 0]         [0 0            
                                              1]       [0]                    
                                           >= [0 0 1]         [0]             
                                              [0 0 0] @vals + [0]             
                                              [0 0 0]         [0]             
                                           =  quicksort#(@vals)               
            
            sortAll#2#(tuple#2(@vals,@key) =  [0 0 1]         [1 0            
                                     ,@xs)    0]       [0]                    
                                              [0 0 0] @vals + [0 0            
                                              0] @xs + [0]                    
                                              [0 0 0]         [0 0            
                                              1]       [0]                    
                                           >= [1 0 0]       [0]               
                                              [0 0 0] @xs + [0]               
                                              [0 0 1]       [0]               
                                           =  sortAll#(@xs)                   
            
                         splitAndSort#(@l) =  [1 1 1]      [1]                
                                              [1 0 1] @l + [0]                
                                              [0 0 1]      [0]                
                                           >= [0 0 1]      [1]                
                                              [0 0 0] @l + [0]                
                                              [0 0 1]      [0]                
                                           =  sortAll#(split(@l))             
            
                             insert(@x,@l) =  [1 0 0]      [1]                
                                              [0 1 0] @l + [0]                
                                              [0 1 1]      [0]                
                                           >= [1 0 0]      [1]                
                                              [0 1 0] @l + [0]                
                                              [0 1 1]      [0]                
                                           =  insert#1(@x,@l,@x)              
            
             insert#1(tuple#2(@valX,@keyX) =  [1 0 0]      [1]                
                                       ,@l    [0 1 0] @l + [0]                
                                      ,@x)    [0 1 1]      [0]                
                                           >= [1 0 0]      [1]                
                                              [0 1 0] @l + [0]                
                                              [0 1 1]      [0]                
                                           =  insert#2(@l,@keyX,@valX,@x)     
            
                      insert#2(::(@l1,@ls) =  [1 0 0]       [1 0 0]       [1] 
                                    ,@keyX    [0 0 0] @l1 + [0 1 0] @ls + [0] 
                                    ,@valX    [0 0 0]       [0 1 1]       [1] 
                                      ,@x)                                    
                                           >= [1 0 0]       [1 0 0]       [1] 
                                              [0 0 0] @l1 + [0 1 0] @ls + [0] 
                                              [0 0 0]       [0 1 1]       [1] 
                                           =  insert#3(@l1,@keyX,@ls,@valX,@x)
            
            insert#2(nil(),@keyX,@valX,@x) =  [2]                             
                                              [1]                             
                                              [1]                             
                                           >= [2]                             
                                              [1]                             
                                              [1]                             
                                           =  ::(tuple#2(::(@valX,nil())      
                                                        ,@keyX)               
                                                ,nil())                       
            
            insert#3(tuple#2(@vals1,@key1) =  [1 0 0]       [0 0              
                                    ,@keyX    1]          [1]                 
                                      ,@ls    [0 1 0] @ls + [0 0              
                                    ,@valX    0] @vals1 + [0]                 
                                      ,@x)    [0 1 1]       [0 0              
                                              0]          [1]                 
                                           >= [1 0 0]       [0 0              
                                              1]          [1]                 
                                              [0 1 0] @ls + [0 0              
                                              0] @vals1 + [0]                 
                                              [0 1 1]       [0 0              
                                              0]          [1]                 
                                           =  insert#4(#equal(@key1,@keyX)    
                                                      ,@key1                  
                                                      ,@ls                    
                                                      ,@valX                  
                                                      ,@vals1                 
                                                      ,@x)                    
            
                         insert#4(#false() =  [1 0 0]       [0 0              
                                    ,@key1    1]          [1]                 
                                      ,@ls    [0 1 0] @ls + [0 0              
                                    ,@valX    0] @vals1 + [0]                 
                                   ,@vals1    [0 1 1]       [0 0              
                                      ,@x)    0]          [1]                 
                                           >= [1 0 0]       [0 0              
                                              1]          [1]                 
                                              [0 1 0] @ls + [0 0              
                                              0] @vals1 + [0]                 
                                              [0 1 1]       [0 0              
                                              0]          [1]                 
                                           =  ::(tuple#2(@vals1,@key1)        
                                                ,insert(@x,@ls))              
            
                          insert#4(#true() =  [1 0 0]       [0 0              
                                    ,@key1    1]          [1]                 
                                      ,@ls    [0 1 0] @ls + [0 0              
                                    ,@valX    0] @vals1 + [0]                 
                                   ,@vals1    [0 1 1]       [0 0              
                                      ,@x)    0]          [1]                 
                                           >= [1 0 0]       [0 0              
                                              1]          [1]                 
                                              [0 1 0] @ls + [0 0              
                                              0] @vals1 + [0]                 
                                              [0 0 1]       [0 0              
                                              0]          [1]                 
                                           =  ::(tuple#2(::(@valX,@vals1)     
                                                        ,@key1)               
                                                ,@ls)                         
            
                                 split(@l) =  [0 0 1]      [1]                
                                              [0 0 0] @l + [1]                
                                              [0 0 1]      [0]                
                                           >= [0 0 1]      [1]                
                                              [0 0 0] @l + [1]                
                                              [0 0 1]      [0]                
                                           =  split#1(@l)                     
            
                       split#1(::(@x,@xs)) =  [0 0 1]       [2]               
                                              [0 0 0] @xs + [1]               
                                              [0 0 1]       [1]               
                                           >= [0 0 1]       [2]               
                                              [0 0 0] @xs + [1]               
                                              [0 0 1]       [1]               
                                           =  insert(@x,split(@xs))           
            
                            split#1(nil()) =  [1]                             
                                              [1]                             
                                              [0]                             
                                           >= [1]                             
                                              [1]                             
                                              [0]                             
                                           =  nil()                           
            
                        splitqs(@pivot,@l) =  [1 0 1]      [0 1               
                                              0]          [0]                 
                                              [0 0 1] @l + [0 1               
                                              1] @pivot + [1]                 
                                              [0 0 1]      [0 0               
                                              0]          [0]                 
                                           >= [0 0 1]      [0 0               
                                              0]          [0]                 
                                              [0 0 1] @l + [0 1               
                                              1] @pivot + [1]                 
                                              [0 0 1]      [0 0               
                                              0]          [0]                 
                                           =  splitqs#1(@l,@pivot)            
            
              splitqs#1(::(@x,@xs),@pivot) =  [0 0 0]          [0 0           
                                              1]       [1]                    
                                              [0 1 1] @pivot + [0 0           
                                              1] @xs + [2]                    
                                              [0 0 0]          [0 0           
                                              1]       [1]                    
                                           >= [0 0 0]          [0 0           
                                              1]       [1]                    
                                              [0 1 1] @pivot + [0 0           
                                              1] @xs + [2]                    
                                              [0 0 0]          [0 0           
                                              1]       [1]                    
                                           =  splitqs#2(splitqs(@pivot,@xs)   
                                                       ,@pivot                
                                                       ,@x)                   
            
                   splitqs#1(nil(),@pivot) =  [0 0 0]          [0]            
                                              [0 1 1] @pivot + [1]            
                                              [0 0 0]          [0]            
                                           >= [0]                             
                                              [1]                             
                                              [0]                             
                                           =  tuple#2(nil(),nil())            
            
                splitqs#2(tuple#2(@ls,@rs) =  [0 0 1]       [0 0 1]       [1] 
                                   ,@pivot    [0 1 1] @ls + [0 0 0] @rs + [1] 
                                      ,@x)    [0 0 1]       [0 0 1]       [1] 
                                           >= [0 0 1]       [0 0 1]       [1] 
                                              [0 1 1] @ls + [0 0 0] @rs + [1] 
                                              [0 0 1]       [0 0 1]       [1] 
                                           =  splitqs#3(#greater(@x,@pivot)   
                                                       ,@ls                   
                                                       ,@rs                   
                                                       ,@x)                   
            
            splitqs#3(#false(),@ls,@rs,@x) =  [0 0 1]       [0 0 1]       [1] 
                                              [0 1 1] @ls + [0 0 0] @rs + [1] 
                                              [0 0 1]       [0 0 1]       [1] 
                                           >= [0 0 1]       [0 0 0]       [1] 
                                              [0 1 1] @ls + [0 0 0] @rs + [1] 
                                              [0 0 1]       [0 0 1]       [1] 
                                           =  tuple#2(::(@x,@ls),@rs)         
            
             splitqs#3(#true(),@ls,@rs,@x) =  [0 0 1]       [0 0 1]       [1] 
                                              [0 1 1] @ls + [0 0 0] @rs + [1] 
                                              [0 0 1]       [0 0 1]       [1] 
                                           >= [0 0 1]       [0 0 0]       [0] 
                                              [0 1 1] @ls + [0 0 0] @rs + [0] 
                                              [0 0 1]       [0 0 1]       [1] 
                                           =  tuple#2(@ls,::(@x,@rs))         
            
      *** 1.1.1.1.1.1.1.1.1.1.2.1.1 Progress [(O(1),O(1))]  ***
          Considered Problem:
            Strict DP Rules:
              
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            EmptyProcessor
          Proof:
            The problem is already closed. The intended complexity is O(1).
      
      *** 1.1.1.1.1.1.1.1.1.1.2.2 Progress [(O(1),O(n^2))]  ***
          Considered Problem:
            Strict DP Rules:
              append#(@l,@ys) -> c_3(append#1#(@l,@ys))
              append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            NaturalMI {miDimension = 3, miDegree = 3, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules, greedy = NoGreedy}
          Proof:
            We apply a matrix interpretation of kind constructor based matrix interpretation:
            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 1 1]      [0 1 0]      [1] 
                                 [0 0 0] x1 + [0 0 0] x2 + [0] 
                                 [0 1 0]      [0 0 0]      [1] 
                      p(#ckgt) = [1]                           
                                 [0]                           
                                 [0]                           
                   p(#compare) = [0]                           
                                 [0]                           
                                 [0]                           
                        p(#eq) = [0 0 0]      [0]              
                                 [0 0 1] x2 + [1]              
                                 [0 0 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 0 0]      [1 0 0]      [0] 
                                 [0 1 0] x1 + [0 1 0] x2 + [0] 
                                 [0 0 0]      [0 0 1]      [1] 
                     p(append) = [0 0 0]      [1 0 0]      [0] 
                                 [0 1 0] x1 + [0 1 0] x2 + [0] 
                                 [0 0 1]      [0 0 1]      [0] 
                   p(append#1) = [0 0 0]      [1 0 0]      [0] 
                                 [0 1 0] x1 + [0 1 0] x2 + [0] 
                                 [0 0 1]      [0 0 1]      [0] 
                     p(insert) = [1 0 0]      [0]              
                                 [0 1 0] x2 + [1]              
                                 [1 0 1]      [0]              
                   p(insert#1) = [1 0 0]      [0]              
                                 [0 1 0] x2 + [1]              
                                 [1 0 1]      [0]              
                   p(insert#2) = [1 0 0]      [0]              
                                 [0 1 0] x1 + [1]              
                                 [1 0 1]      [0]              
                   p(insert#3) = [0 0 0]      [1 0 0]      [0] 
                                 [0 1 0] x1 + [0 1 0] x3 + [1] 
                                 [0 0 0]      [1 0 1]      [1] 
                   p(insert#4) = [1 0 0]      [0 0 0]      [0] 
                                 [0 1 0] x3 + [0 0 1] x5 + [1] 
                                 [1 0 1]      [0 0 0]      [1] 
                        p(nil) = [1]                           
                                 [0]                           
                                 [0]                           
                  p(quicksort) = [0 0 0]      [1]              
                                 [0 1 0] x1 + [0]              
                                 [0 0 1]      [0]              
                p(quicksort#1) = [0 0 0]      [1]              
                                 [0 1 0] x1 + [0]              
                                 [0 0 1]      [0]              
                p(quicksort#2) = [0 0 0]      [0 0 0]      [1] 
                                 [1 0 0] x1 + [0 1 0] x2 + [0] 
                                 [0 0 1]      [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] x1 + [0]              
                                 [0 0 1]      [0]              
                    p(split#1) = [0 0 0]      [1]              
                                 [0 0 1] x1 + [0]              
                                 [0 0 1]      [0]              
               p(splitAndSort) = [0]                           
                                 [0]                           
                                 [0]                           
                    p(splitqs) = [0 0 0]      [0 1 0]      [0] 
                                 [1 0 0] x1 + [0 0 1] x2 + [0] 
                                 [0 0 0]      [0 0 1]      [0] 
                  p(splitqs#1) = [0 1 0]      [0 0 0]      [0] 
                                 [0 0 1] x1 + [1 0 0] x2 + [0] 
                                 [0 0 1]      [0 0 0]      [0] 
                  p(splitqs#2) = [1 0 0]      [0 1 0]      [0] 
                                 [0 1 0] x1 + [0 0 0] x3 + [1] 
                                 [0 0 1]      [0 0 0]      [1] 
                  p(splitqs#3) = [0 1 0]      [0 1 0]      [0 1
                                 0]      [0]                   
                                 [0 0 1] x2 + [0 0 0] x3 + [0 0
                                 0] x4 + [1]                   
                                 [0 0 1]      [0 0 1]      [0 0
                                 0]      [1]                   
                    p(tuple#2) = [0 1 0]      [0 1 0]      [0] 
                                 [0 0 1] x1 + [0 0 0] x2 + [0] 
                                 [0 0 1]      [0 0 1]      [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 0 0]      [0] 
                                 [0 0 0] x1 + [0 0 0] x2 + [0] 
                                 [1 0 0]      [0 0 0]      [0] 
                  p(append#1#) = [0 0 1]      [1 0 0]      [0] 
                                 [1 0 0] x1 + [0 0 0] x2 + [0] 
                                 [0 1 1]      [0 0 0]      [1] 
                    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]      [1]              
                                 [0 0 0] x1 + [1]              
                                 [0 0 1]      [0]              
               p(quicksort#1#) = [0 0 1]      [1]              
                                 [0 0 0] x1 + [1]              
                                 [0 0 1]      [0]              
               p(quicksort#2#) = [0 0 1]      [1]              
                                 [0 0 0] x1 + [1]              
                                 [0 0 1]      [1]              
                   p(sortAll#) = [0 1 0]      [1]              
                                 [0 0 0] x1 + [1]              
                                 [0 1 0]      [1]              
                 p(sortAll#1#) = [0 1 0]      [1]              
                                 [0 0 0] x1 + [1]              
                                 [0 1 0]      [1]              
                 p(sortAll#2#) = [0 1 0]      [0 1 0]      [1] 
                                 [0 0 0] x1 + [0 0 0] x2 + [1] 
                                 [0 1 0]      [0 1 0]      [1] 
                     p(split#) = [0]                           
                                 [0]                           
                                 [0]                           
                   p(split#1#) = [0]                           
                                 [0]                           
                                 [0]                           
              p(splitAndSort#) = [1 1 1]      [1]              
                                 [0 1 1] x1 + [1]              
                                 [1 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) = [1 0 0]      [0]              
                                 [0 0 0] x1 + [0]              
                                 [0 1 0]      [0]              
                        p(c_4) = [1 0 0]      [0]              
                                 [0 0 1] x1 + [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]       [1 0
                                        0]       [1]                   
                                        [0 0 0] @x + [1 0 0] @xs + [0 0
                                        0] @ys + [0]                   
                                        [0 1 0]      [0 1 1]       [0 0
                                        0]       [2]                   
                                      > [0 0 1]       [1 0 0]       [0]
                                        [1 0 0] @xs + [0 0 0] @ys + [0]
                                        [0 0 0]       [0 0 0]       [0]
                                      = c_4(append#(@xs,@ys))          
            
            
            Following rules are (at-least) weakly oriented:
                             append#(@l,@ys) =  [0 0 1]      [1 0 0]       [0]  
                                                [0 0 0] @l + [0 0 0] @ys + [0]  
                                                [1 0 0]      [0 0 0]       [0]  
                                             >= [0 0 1]      [1 0 0]       [0]  
                                                [0 0 0] @l + [0 0 0] @ys + [0]  
                                                [1 0 0]      [0 0 0]       [0]  
                                             =  c_3(append#1#(@l,@ys))          
            
                              quicksort#(@l) =  [0 0 1]      [1]                
                                                [0 0 0] @l + [1]                
                                                [0 0 1]      [0]                
                                             >= [0 0 1]      [1]                
                                                [0 0 0] @l + [1]                
                                                [0 0 1]      [0]                
                                             =  quicksort#1#(@l)                
            
                    quicksort#1#(::(@z,@zs)) =  [0 0 1]       [2]               
                                                [0 0 0] @zs + [1]               
                                                [0 0 1]       [1]               
                                             >= [0 0 1]       [1]               
                                                [0 0 0] @zs + [1]               
                                                [0 0 1]       [1]               
                                             =  quicksort#2#(splitqs(@z,@zs),@z)
            
               quicksort#2#(tuple#2(@xs,@ys) =  [0 0 1]       [0 0 1]       [1] 
                                        ,@z)    [0 0 0] @xs + [0 0 0] @ys + [1] 
                                                [0 0 1]       [0 0 1]       [1] 
                                             >= [0 0 1]       [1]               
                                                [0 0 0] @xs + [0]               
                                                [0 0 0]       [1]               
                                             =  append#(quicksort(@xs)          
                                                       ,::(@z,quicksort(@ys)))  
            
               quicksort#2#(tuple#2(@xs,@ys) =  [0 0 1]       [0 0 1]       [1] 
                                        ,@z)    [0 0 0] @xs + [0 0 0] @ys + [1] 
                                                [0 0 1]       [0 0 1]       [1] 
                                             >= [0 0 1]       [1]               
                                                [0 0 0] @xs + [1]               
                                                [0 0 1]       [0]               
                                             =  quicksort#(@xs)                 
            
               quicksort#2#(tuple#2(@xs,@ys) =  [0 0 1]       [0 0 1]       [1] 
                                        ,@z)    [0 0 0] @xs + [0 0 0] @ys + [1] 
                                                [0 0 1]       [0 0 1]       [1] 
                                             >= [0 0 1]       [1]               
                                                [0 0 0] @ys + [1]               
                                                [0 0 1]       [0]               
                                             =  quicksort#(@ys)                 
            
                                sortAll#(@l) =  [0 1 0]      [1]                
                                                [0 0 0] @l + [1]                
                                                [0 1 0]      [1]                
                                             >= [0 1 0]      [1]                
                                                [0 0 0] @l + [1]                
                                                [0 1 0]      [1]                
                                             =  sortAll#1#(@l)                  
            
                      sortAll#1#(::(@x,@xs)) =  [0 1 0]      [0 1 0]       [1]  
                                                [0 0 0] @x + [0 0 0] @xs + [1]  
                                                [0 1 0]      [0 1 0]       [1]  
                                             >= [0 1 0]      [0 1 0]       [1]  
                                                [0 0 0] @x + [0 0 0] @xs + [1]  
                                                [0 1 0]      [0 1 0]       [1]  
                                             =  sortAll#2#(@x,@xs)              
            
              sortAll#2#(tuple#2(@vals,@key) =  [0 0 1]         [0 1            
                                       ,@xs)    0]       [1]                    
                                                [0 0 0] @vals + [0 0            
                                                0] @xs + [1]                    
                                                [0 0 1]         [0 1            
                                                0]       [1]                    
                                             >= [0 0 1]         [1]             
                                                [0 0 0] @vals + [1]             
                                                [0 0 1]         [0]             
                                             =  quicksort#(@vals)               
            
              sortAll#2#(tuple#2(@vals,@key) =  [0 0 1]         [0 1            
                                       ,@xs)    0]       [1]                    
                                                [0 0 0] @vals + [0 0            
                                                0] @xs + [1]                    
                                                [0 0 1]         [0 1            
                                                0]       [1]                    
                                             >= [0 1 0]       [1]               
                                                [0 0 0] @xs + [1]               
                                                [0 1 0]       [1]               
                                             =  sortAll#(@xs)                   
            
                           splitAndSort#(@l) =  [1 1 1]      [1]                
                                                [0 1 1] @l + [1]                
                                                [1 1 1]      [1]                
                                             >= [0 0 1]      [1]                
                                                [0 0 0] @l + [1]                
                                                [0 0 1]      [1]                
                                             =  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 1 0] @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 1 0] @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) =  [1 0 0]      [0]                
                                         ,@l    [0 1 0] @l + [1]                
                                        ,@x)    [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) =  [0 0 0]       [1 0 0]       [0] 
                                      ,@keyX    [0 1 0] @l1 + [0 1 0] @ls + [1] 
                                      ,@valX    [0 0 0]       [1 0 1]       [1] 
                                        ,@x)                                    
                                             >= [0 0 0]       [1 0 0]       [0] 
                                                [0 1 0] @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) =  [1 0 0]       [0 0              
                                      ,@keyX    0]          [0]                 
                                        ,@ls    [0 1 0] @ls + [0 0              
                                      ,@valX    1] @vals1 + [1]                 
                                        ,@x)    [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() =  [1 0 0]       [0 0              
                                      ,@key1    0]          [0]                 
                                        ,@ls    [0 1 0] @ls + [0 0              
                                      ,@valX    1] @vals1 + [1]                 
                                     ,@vals1    [1 0 1]       [0 0              
                                        ,@x)    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() =  [1 0 0]       [0 0              
                                      ,@key1    0]          [0]                 
                                        ,@ls    [0 1 0] @ls + [0 0              
                                      ,@valX    1] @vals1 + [1]                 
                                     ,@vals1    [1 0 1]       [0 0              
                                        ,@x)    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 1 0] @z + [0 1 0] @zs + [0]  
                                                [0 0 0]      [0 0 1]       [1]  
                                             >= [0 0 0]      [0 0 0]       [1]  
                                                [0 1 0] @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 1
                                                0] @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 1
                                                0] @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 + [1 0               
                                                0] @pivot + [0]                 
                                                [0 0 1]      [0 0               
                                                0]          [0]                 
                                             >= [0 1 0]      [0 0               
                                                0]          [0]                 
                                                [0 0 1] @l + [1 0               
                                                0] @pivot + [0]                 
                                                [0 0 1]      [0 0               
                                                0]          [0]                 
                                             =  splitqs#1(@l,@pivot)            
            
                splitqs#1(::(@x,@xs),@pivot) =  [0 0 0]          [0 1 0]      [0
                                                1 0]       [0]                  
                                                [1 0 0] @pivot + [0 0 0] @x + [0
                                                0 1] @xs + [1]                  
                                                [0 0 0]          [0 0 0]      [0
                                                0 1]       [1]                  
                                             >= [0 0 0]          [0 1 0]      [0
                                                1 0]       [0]                  
                                                [1 0 0] @pivot + [0 0 0] @x + [0
                                                0 1] @xs + [1]                  
                                                [0 0 0]          [0 0 0]      [0
                                                0 1]       [1]                  
                                             =  splitqs#2(splitqs(@pivot,@xs)   
                                                         ,@pivot                
                                                         ,@x)                   
            
                     splitqs#1(nil(),@pivot) =  [0 0 0]          [0]            
                                                [1 0 0] @pivot + [0]            
                                                [0 0 0]          [0]            
                                             >= [0]                             
                                                [0]                             
                                                [0]                             
                                             =  tuple#2(nil(),nil())            
            
                  splitqs#2(tuple#2(@ls,@rs) =  [0 1 0]       [0 1 0]       [0 1
                                     ,@pivot    0]      [0]                     
                                        ,@x)    [0 0 1] @ls + [0 0 0] @rs + [0 0
                                                0] @x + [1]                     
                                                [0 0 1]       [0 0 1]       [0 0
                                                0]      [1]                     
                                             >= [0 1 0]       [0 1 0]       [0 1
                                                0]      [0]                     
                                                [0 0 1] @ls + [0 0 0] @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 1
                                                0]      [0]                     
                                                [0 0 1] @ls + [0 0 0] @rs + [0 0
                                                0] @x + [1]                     
                                                [0 0 1]       [0 0 1]       [0 0
                                                0]      [1]                     
                                             >= [0 1 0]       [0 1 0]       [0 1
                                                0]      [0]                     
                                                [0 0 1] @ls + [0 0 0] @rs + [0 0
                                                0] @x + [1]                     
                                                [0 0 1]       [0 0 1]       [0 0
                                                0]      [1]                     
                                             =  tuple#2(::(@x,@ls),@rs)         
            
               splitqs#3(#true(),@ls,@rs,@x) =  [0 1 0]       [0 1 0]       [0 1
                                                0]      [0]                     
                                                [0 0 1] @ls + [0 0 0] @rs + [0 0
                                                0] @x + [1]                     
                                                [0 0 1]       [0 0 1]       [0 0
                                                0]      [1]                     
                                             >= [0 1 0]       [0 1 0]       [0 1
                                                0]      [0]                     
                                                [0 0 1] @ls + [0 0 0] @rs + [0 0
                                                0] @x + [0]                     
                                                [0 0 1]       [0 0 1]       [0 0
                                                0]      [1]                     
                                             =  tuple#2(@ls,::(@x,@rs))         
            
      *** 1.1.1.1.1.1.1.1.1.1.2.2.1 Progress [(O(1),O(n^2))]  ***
          Considered Problem:
            Strict DP Rules:
              append#(@l,@ys) -> c_3(append#1#(@l,@ys))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            NaturalMI {miDimension = 3, miDegree = 3, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules, greedy = NoGreedy}
          Proof:
            We apply a matrix interpretation of kind constructor based matrix interpretation:
            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) = [1]                           
                                 [0]                           
                                 [0]                           
                        p(#EQ) = [1]                           
                                 [0]                           
                                 [0]                           
                        p(#GT) = [0]                           
                                 [0]                           
                                 [0]                           
                        p(#LT) = [1]                           
                                 [0]                           
                                 [0]                           
                       p(#and) = [0 1 0]      [0 0 0]      [1] 
                                 [0 0 0] x1 + [0 0 0] x2 + [0] 
                                 [0 1 0]      [0 1 0]      [1] 
                      p(#ckgt) = [0 0 0]      [0]              
                                 [1 1 0] x1 + [0]              
                                 [0 1 0]      [0]              
                   p(#compare) = [0 0 0]      [0 0 0]      [0] 
                                 [1 0 0] x1 + [1 0 0] x2 + [0] 
                                 [0 0 0]      [0 0 0]      [0] 
                        p(#eq) = [0 0 0]      [0]              
                                 [0 0 1] x1 + [1]              
                                 [0 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]      [0]              
                                 [0 0 0] x1 + [0]              
                                 [0 0 1]      [1]              
                         p(#s) = [1]                           
                                 [0]                           
                                 [0]                           
                      p(#true) = [0]                           
                                 [0]                           
                                 [0]                           
                         p(::) = [0 0 0]      [1 0 0]      [0] 
                                 [0 0 1] x1 + [0 1 0] x2 + [0] 
                                 [0 0 0]      [0 0 1]      [1] 
                     p(append) = [0 0 0]      [1 0 0]      [0] 
                                 [0 1 0] x1 + [0 1 0] x2 + [0] 
                                 [0 0 1]      [0 0 1]      [0] 
                   p(append#1) = [0 0 0]      [1 0 0]      [0] 
                                 [0 1 0] x1 + [0 1 0] x2 + [0] 
                                 [0 0 1]      [0 0 1]      [0] 
                     p(insert) = [1 0 0]      [0]              
                                 [0 1 0] x2 + [1]              
                                 [1 0 1]      [0]              
                   p(insert#1) = [1 0 0]      [0]              
                                 [0 1 0] x2 + [1]              
                                 [1 0 1]      [0]              
                   p(insert#2) = [1 0 0]      [0]              
                                 [0 1 0] x1 + [1]              
                                 [1 0 1]      [0]              
                   p(insert#3) = [0 0 0]      [1 0 0]      [0] 
                                 [0 0 1] x1 + [0 1 0] x3 + [1] 
                                 [0 0 0]      [1 0 1]      [1] 
                   p(insert#4) = [1 0 0]      [0 0 0]      [0] 
                                 [0 1 0] x3 + [0 0 1] x5 + [1] 
                                 [1 0 1]      [0 0 0]      [1] 
                        p(nil) = [1]                           
                                 [1]                           
                                 [0]                           
                  p(quicksort) = [0 0 0]      [1]              
                                 [0 1 1] x1 + [0]              
                                 [0 0 1]      [0]              
                p(quicksort#1) = [0 0 0]      [1]              
                                 [0 1 1] x1 + [0]              
                                 [0 0 1]      [0]              
                p(quicksort#2) = [0 0 0]      [0 0 0]      [1] 
                                 [0 1 0] x1 + [0 0 1] x2 + [0] 
                                 [1 0 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] x1 + [1]              
                                 [0 0 1]      [0]              
                    p(split#1) = [0 0 0]      [1]              
                                 [0 0 1] x1 + [1]              
                                 [0 0 1]      [0]              
               p(splitAndSort) = [0]                           
                                 [0]                           
                                 [0]                           
                    p(splitqs) = [0 0 0]      [0 0 1]      [0] 
                                 [0 0 0] x1 + [0 1 1] x2 + [1] 
                                 [1 0 0]      [0 1 1]      [1] 
                  p(splitqs#1) = [0 0 1]      [0 0 0]      [0] 
                                 [0 1 1] x1 + [0 0 0] x2 + [1] 
                                 [0 1 1]      [1 0 0]      [1] 
                  p(splitqs#2) = [1 0 0]      [0 0 0]      [1] 
                                 [0 1 0] x1 + [0 0 1] x3 + [1] 
                                 [0 1 0]      [0 0 1]      [1] 
                  p(splitqs#3) = [0 0 1]      [0 0 1]      [0 0
                                 0]      [1]                   
                                 [0 1 1] x2 + [0 1 1] x3 + [0 0
                                 1] x4 + [1]                   
                                 [0 0 1]      [0 1 0]      [0 0
                                 0]      [1]                   
                    p(tuple#2) = [0 0 1]      [0 0 1]      [0] 
                                 [0 1 1] x1 + [0 1 1] x2 + [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]              
                                 [0 0 0] x1 + [1]              
                                 [0 0 0]      [0]              
                  p(append#1#) = [0 0 1]      [0 0 0]      [0] 
                                 [0 0 0] x1 + [1 1 0] x2 + [1] 
                                 [0 0 0]      [1 0 1]      [1] 
                    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] x1 + [1]              
                                 [0 0 0]      [0]              
               p(quicksort#1#) = [0 0 1]      [0]              
                                 [0 0 0] x1 + [1]              
                                 [0 0 0]      [0]              
               p(quicksort#2#) = [1 0 0]      [1]              
                                 [0 0 0] x1 + [1]              
                                 [0 0 0]      [0]              
                   p(sortAll#) = [0 1 0]      [0]              
                                 [0 0 1] x1 + [1]              
                                 [0 0 0]      [0]              
                 p(sortAll#1#) = [0 1 0]      [0]              
                                 [0 0 1] x1 + [1]              
                                 [0 0 0]      [0]              
                 p(sortAll#2#) = [0 0 1]      [0 1 0]      [0] 
                                 [0 0 0] x1 + [0 0 1] x2 + [1] 
                                 [0 0 0]      [0 0 0]      [0] 
                     p(split#) = [0]                           
                                 [0]                           
                                 [0]                           
                   p(split#1#) = [0]                           
                                 [0]                           
                                 [0]                           
              p(splitAndSort#) = [0 1 1]      [1]              
                                 [1 1 1] x1 + [1]              
                                 [1 0 0]      [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] x1 + [0]              
                                 [0 0 0]      [0]              
                        p(c_4) = [1 0 0]      [0]              
                                 [0 0 0] x1 + [0]              
                                 [0 0 0]      [1]              
                        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]      
                              [0 0 0] @l + [1]      
                              [0 0 0]      [0]      
                            > [0 0 1]      [0]      
                              [0 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 1]       [0 0 0]       [1] 
                                                [0 0 0] @xs + [1 1 0] @ys + [1] 
                                                [0 0 0]       [1 0 1]       [1] 
                                             >= [0 0 1]       [1]               
                                                [0 0 0] @xs + [0]               
                                                [0 0 0]       [1]               
                                             =  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) =  [0 0 1]       [0 0 1]       [1] 
                                        ,@z)    [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) =  [0 0 1]       [0 0 1]       [1] 
                                        ,@z)    [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) =  [0 0 1]       [0 0 1]       [1] 
                                        ,@z)    [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 1] @l + [1]                
                                                [0 0 0]      [0]                
                                             >= [0 1 0]      [0]                
                                                [0 0 1] @l + [1]                
                                                [0 0 0]      [0]                
                                             =  sortAll#1#(@l)                  
            
                      sortAll#1#(::(@x,@xs)) =  [0 0 1]      [0 1 0]       [0]  
                                                [0 0 0] @x + [0 0 1] @xs + [2]  
                                                [0 0 0]      [0 0 0]       [0]  
                                             >= [0 0 1]      [0 1 0]       [0]  
                                                [0 0 0] @x + [0 0 1] @xs + [1]  
                                                [0 0 0]      [0 0 0]       [0]  
                                             =  sortAll#2#(@x,@xs)              
            
              sortAll#2#(tuple#2(@vals,@key) =  [0 0 1]         [0 1            
                                       ,@xs)    0]       [0]                    
                                                [0 0 0] @vals + [0 0            
                                                1] @xs + [1]                    
                                                [0 0 0]         [0 0            
                                                0]       [0]                    
                                             >= [0 0 1]         [0]             
                                                [0 0 0] @vals + [1]             
                                                [0 0 0]         [0]             
                                             =  quicksort#(@vals)               
            
              sortAll#2#(tuple#2(@vals,@key) =  [0 0 1]         [0 1            
                                       ,@xs)    0]       [0]                    
                                                [0 0 0] @vals + [0 0            
                                                1] @xs + [1]                    
                                                [0 0 0]         [0 0            
                                                0]       [0]                    
                                             >= [0 1 0]       [0]               
                                                [0 0 1] @xs + [1]               
                                                [0 0 0]       [0]               
                                             =  sortAll#(@xs)                   
            
                           splitAndSort#(@l) =  [0 1 1]      [1]                
                                                [1 1 1] @l + [1]                
                                                [1 0 0]      [0]                
                                             >= [0 0 1]      [1]                
                                                [0 0 1] @l + [1]                
                                                [0 0 0]      [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 + [1]               
                                                [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) =  [1 0 0]      [0]                
                                         ,@l    [0 1 0] @l + [1]                
                                        ,@x)    [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) =  [0 0 0]       [1 0 0]       [0] 
                                      ,@keyX    [0 0 1] @l1 + [0 1 0] @ls + [1] 
                                      ,@valX    [0 0 0]       [1 0 1]       [1] 
                                        ,@x)                                    
                                             >= [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]                             
                                                [2]                             
                                                [1]                             
                                             >= [1]                             
                                                [2]                             
                                                [1]                             
                                             =  ::(tuple#2(::(@valX,nil())      
                                                          ,@keyX)               
                                                  ,nil())                       
            
              insert#3(tuple#2(@vals1,@key1) =  [1 0 0]       [0 0              
                                      ,@keyX    0]          [0]                 
                                        ,@ls    [0 1 0] @ls + [0 0              
                                      ,@valX    1] @vals1 + [1]                 
                                        ,@x)    [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() =  [1 0 0]       [0 0              
                                      ,@key1    0]          [0]                 
                                        ,@ls    [0 1 0] @ls + [0 0              
                                      ,@valX    1] @vals1 + [1]                 
                                     ,@vals1    [1 0 1]       [0 0              
                                        ,@x)    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() =  [1 0 0]       [0 0              
                                      ,@key1    0]          [0]                 
                                        ,@ls    [0 1 0] @ls + [0 0              
                                      ,@valX    1] @vals1 + [1]                 
                                     ,@vals1    [1 0 1]       [0 0              
                                        ,@x)    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 1] @l + [0]                
                                                [0 0 1]      [0]                
                                             >= [0 0 0]      [1]                
                                                [0 1 1] @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 1] @zs + [1]  
                                                [0 0 0]      [0 0 1]       [1]  
                                             >= [0 0 0]      [0 0 0]       [1]  
                                                [0 0 1] @z + [0 1 1] @zs + [1]  
                                                [0 0 0]      [0 0 1]       [1]  
                                             =  quicksort#2(splitqs(@z,@zs),@z) 
            
                          quicksort#1(nil()) =  [1]                             
                                                [1]                             
                                                [0]                             
                                             >= [1]                             
                                                [1]                             
                                                [0]                             
                                             =  nil()                           
            
            quicksort#2(tuple#2(@xs,@ys),@z) =  [0 0 0]       [0 0 0]       [0 0
                                                0]      [1]                     
                                                [0 1 1] @xs + [0 1 1] @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 1] @xs + [0 1 1] @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 + [1]                
                                                [0 0 1]      [0]                
                                             >= [0 0 0]      [1]                
                                                [0 0 1] @l + [1]                
                                                [0 0 1]      [0]                
                                             =  split#1(@l)                     
            
                         split#1(::(@x,@xs)) =  [0 0 0]       [1]               
                                                [0 0 1] @xs + [2]               
                                                [0 0 1]       [1]               
                                             >= [0 0 0]       [1]               
                                                [0 0 1] @xs + [2]               
                                                [0 0 1]       [1]               
                                             =  insert(@x,split(@xs))           
            
                              split#1(nil()) =  [1]                             
                                                [1]                             
                                                [0]                             
                                             >= [1]                             
                                                [1]                             
                                                [0]                             
                                             =  nil()                           
            
                          splitqs(@pivot,@l) =  [0 0 1]      [0 0               
                                                0]          [0]                 
                                                [0 1 1] @l + [0 0               
                                                0] @pivot + [1]                 
                                                [0 1 1]      [1 0               
                                                0]          [1]                 
                                             >= [0 0 1]      [0 0               
                                                0]          [0]                 
                                                [0 1 1] @l + [0 0               
                                                0] @pivot + [1]                 
                                                [0 1 1]      [1 0               
                                                0]          [1]                 
                                             =  splitqs#1(@l,@pivot)            
            
                splitqs#1(::(@x,@xs),@pivot) =  [0 0 0]          [0 0 0]      [0
                                                0 1]       [1]                  
                                                [0 0 0] @pivot + [0 0 1] @x + [0
                                                1 1] @xs + [2]                  
                                                [1 0 0]          [0 0 1]      [0
                                                1 1]       [2]                  
                                             >= [0 0 0]      [0 0 1]       [1]  
                                                [0 0 1] @x + [0 1 1] @xs + [2]  
                                                [0 0 1]      [0 1 1]       [2]  
                                             =  splitqs#2(splitqs(@pivot,@xs)   
                                                         ,@pivot                
                                                         ,@x)                   
            
                     splitqs#1(nil(),@pivot) =  [0 0 0]          [0]            
                                                [0 0 0] @pivot + [2]            
                                                [1 0 0]          [2]            
                                             >= [0]                             
                                                [2]                             
                                                [0]                             
                                             =  tuple#2(nil(),nil())            
            
                  splitqs#2(tuple#2(@ls,@rs) =  [0 0 1]       [0 0 1]       [0 0
                                     ,@pivot    0]      [1]                     
                                        ,@x)    [0 1 1] @ls + [0 1 1] @rs + [0 0
                                                1] @x + [1]                     
                                                [0 1 1]       [0 1 1]       [0 0
                                                1]      [1]                     
                                             >= [0 0 1]       [0 0 1]       [0 0
                                                0]      [1]                     
                                                [0 1 1] @ls + [0 1 1] @rs + [0 0
                                                1] @x + [1]                     
                                                [0 0 1]       [0 1 0]       [0 0
                                                0]      [1]                     
                                             =  splitqs#3(#greater(@x,@pivot)   
                                                         ,@ls                   
                                                         ,@rs                   
                                                         ,@x)                   
            
              splitqs#3(#false(),@ls,@rs,@x) =  [0 0 1]       [0 0 1]       [0 0
                                                0]      [1]                     
                                                [0 1 1] @ls + [0 1 1] @rs + [0 0
                                                1] @x + [1]                     
                                                [0 0 1]       [0 1 0]       [0 0
                                                0]      [1]                     
                                             >= [0 0 1]       [0 0 1]       [0 0
                                                0]      [1]                     
                                                [0 1 1] @ls + [0 1 1] @rs + [0 0
                                                1] @x + [1]                     
                                                [0 0 1]       [0 0 0]       [0 0
                                                0]      [1]                     
                                             =  tuple#2(::(@x,@ls),@rs)         
            
               splitqs#3(#true(),@ls,@rs,@x) =  [0 0 1]       [0 0 1]       [0 0
                                                0]      [1]                     
                                                [0 1 1] @ls + [0 1 1] @rs + [0 0
                                                1] @x + [1]                     
                                                [0 0 1]       [0 1 0]       [0 0
                                                0]      [1]                     
                                             >= [0 0 1]       [0 0 1]       [0 0
                                                0]      [1]                     
                                                [0 1 1] @ls + [0 1 1] @rs + [0 0
                                                1] @x + [1]                     
                                                [0 0 1]       [0 0 0]       [0 0
                                                0]      [0]                     
                                             =  tuple#2(@ls,::(@x,@rs))         
            
      *** 1.1.1.1.1.1.1.1.1.1.2.2.1.1 Progress [(O(1),O(1))]  ***
          Considered Problem:
            Strict DP Rules:
              
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            EmptyProcessor
          Proof:
            The problem is already closed. The intended complexity is O(1).
      
  *** 1.1.1.1.1.1.1.2 Progress [(?,O(n^5))]  ***
      Considered Problem:
        Strict DP Rules:
          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))
        Strict TRS Rules:
          
        Weak DP Rules:
          append#(@l,@ys) -> c_3(append#1#(@l,@ys))
          append#1#(::(@x,@xs),@ys) -> c_4(append#(@xs,@ys))
        Weak TRS 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))
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
      Applied Processor:
        RemoveWeakSuffixes
      Proof:
        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))     
  *** 1.1.1.1.1.1.1.2.1 Progress [(?,O(n^5))]  ***
      Considered Problem:
        Strict DP Rules:
          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))
        Strict TRS Rules:
          
        Weak DP Rules:
          
        Weak TRS 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))
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
      Applied Processor:
        SimplifyRHS
      Proof:
        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))
  *** 1.1.1.1.1.1.1.2.1.1 Progress [(?,O(n^5))]  ***
      Considered Problem:
        Strict DP Rules:
          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))
        Strict TRS Rules:
          
        Weak DP Rules:
          
        Weak TRS 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))
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
      Applied Processor:
        UsableRules
      Proof:
        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))
  *** 1.1.1.1.1.1.1.2.1.1.1 Progress [(?,O(n^5))]  ***
      Considered Problem:
        Strict DP Rules:
          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))
        Strict TRS Rules:
          
        Weak DP Rules:
          
        Weak TRS 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))
        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
          basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
      Applied Processor:
        Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
      Proof:
        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 DP Rules:
            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))
          Strict TRS Rules:
            
          Weak DP Rules:
            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 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))
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        
        Problem (S)
          Strict DP Rules:
            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))
          Strict TRS Rules:
            
          Weak DP Rules:
            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 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))
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
    *** 1.1.1.1.1.1.1.2.1.1.1.1 Progress [(?,O(n^2))]  ***
        Considered Problem:
          Strict DP Rules:
            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))
          Strict TRS Rules:
            
          Weak DP Rules:
            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 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))
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        Applied Processor:
          RemoveWeakSuffixes
        Proof:
          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))
               -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys)):8
               -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):15
            
            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))
               -->_2 split#(@l) -> c_21(split#1#(@l)):12
               -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
            
            14:W: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: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))             
    *** 1.1.1.1.1.1.1.2.1.1.1.1.1 Progress [(?,O(n^2))]  ***
        Considered Problem:
          Strict DP Rules:
            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))
          Strict TRS Rules:
            
          Weak DP Rules:
            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 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))
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        Applied Processor:
          SimplifyRHS
        Proof:
          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))
               -->_2 split#(@l) -> c_21(split#1#(@l)):12
               -->_1 insert#(@x,@l) -> c_6(insert#1#(@x,@l,@x)):1
            
            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))
    *** 1.1.1.1.1.1.1.2.1.1.1.1.1.1 Progress [(?,O(n^2))]  ***
        Considered Problem:
          Strict DP Rules:
            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))
          Strict TRS Rules:
            
          Weak DP Rules:
            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 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))
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        Applied Processor:
          UsableRules
        Proof:
          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))
    *** 1.1.1.1.1.1.1.2.1.1.1.1.1.1.1 Progress [(?,O(n^2))]  ***
        Considered Problem:
          Strict DP Rules:
            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))
          Strict TRS Rules:
            
          Weak DP Rules:
            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 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()
          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
            basic terms: {#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#}/{#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, greedy = NoGreedy}}
        Proof:
          We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
            3: insert#2#(::(@l1,@ls)               
                        ,@keyX                     
                        ,@valX                     
                        ,@x) -> c_8(insert#3#(@l1  
                                             ,@keyX
                                             ,@ls  
                                             ,@valX
                                             ,@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, greedy = NoGreedy}induces the complexity certificateTIME (?,O(n^2))
          SPACE(?,?)on application of the dependency pairs
            {3}
          These cover all (indirect) predecessors of dependency pairs
            {3,4,5,8}
          their number of applications is equally bounded.
          The dependency pairs are shifted into the weak component.
      *** 1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1 Progress [(?,O(n^2))]  ***
          Considered Problem:
            Strict DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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()
            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
              basic terms: {#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#}/{#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 any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
          Proof:
            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]                      
                                 [2]                      
                        p(#EQ) = [0]                      
                                 [0]                      
                        p(#GT) = [0]                      
                                 [0]                      
                        p(#LT) = [2]                      
                                 [0]                      
                       p(#and) = [0]                      
                                 [3]                      
                      p(#ckgt) = [0]                      
                                 [0]                      
                   p(#compare) = [0 0] x1 + [1]           
                                 [0 1]      [2]           
                        p(#eq) = [0]                      
                                 [0]                      
                     p(#equal) = [0]                      
                                 [0]                      
                     p(#false) = [0]                      
                                 [0]                      
                   p(#greater) = [1 0] x1 + [0 0] x2 + [1]
                                 [1 0]      [2 0]      [0]
                       p(#neg) = [1 0] x1 + [0]           
                                 [0 1]      [0]           
                       p(#pos) = [0 0] x1 + [0]           
                                 [0 1]      [0]           
                         p(#s) = [0]                      
                                 [2]                      
                      p(#true) = [0]                      
                                 [0]                      
                         p(::) = [1 1] x2 + [0]           
                                 [0 1]      [1]           
                     p(append) = [0 0] x1 + [0]           
                                 [0 2]      [0]           
                   p(append#1) = [2 2] x1 + [0]           
                                 [1 0]      [0]           
                     p(insert) = [1 2] x2 + [0]           
                                 [0 1]      [1]           
                   p(insert#1) = [1 2] x2 + [0]           
                                 [0 1]      [1]           
                   p(insert#2) = [1 2] x1 + [0]           
                                 [0 1]      [1]           
                   p(insert#3) = [1 3] x3 + [2]           
                                 [0 1]      [2]           
                   p(insert#4) = [1 3] x3 + [2]           
                                 [0 1]      [2]           
                        p(nil) = [0]                      
                                 [0]                      
                  p(quicksort) = [1]                      
                                 [0]                      
                p(quicksort#1) = [0]                      
                                 [0]                      
                p(quicksort#2) = [0 0] x1 + [2 0] x2 + [0]
                                 [2 1]      [0 0]      [0]
                    p(sortAll) = [0]                      
                                 [2]                      
                  p(sortAll#1) = [0]                      
                                 [1]                      
                  p(sortAll#2) = [0 1] x1 + [0]           
                                 [0 2]      [0]           
                      p(split) = [2 0] x1 + [0]           
                                 [0 1]      [0]           
                    p(split#1) = [2 0] x1 + [0]           
                                 [0 1]      [0]           
               p(splitAndSort) = [2]                      
                                 [1]                      
                    p(splitqs) = [0]                      
                                 [2]                      
                  p(splitqs#1) = [2 0] x1 + [0]           
                                 [0 0]      [0]           
                  p(splitqs#2) = [0 0] x1 + [0 0] x2 + [0 
                                 0] x3 + [0]              
                                 [2 0]      [0 1]      [1 
                                 1]      [0]              
                  p(splitqs#3) = [1 0] x1 + [0 0] x2 + [0 
                                 0] x3 + [0 1] x4 + [1]   
                                 [0 1]      [2 0]      [2 
                                 0]      [0 0]      [1]   
                    p(tuple#2) = [0]                      
                                 [0]                      
                      p(#and#) = [0 0] x1 + [0]           
                                 [0 2]      [2]           
                     p(#ckgt#) = [2]                      
                                 [0]                      
                  p(#compare#) = [0 0] x1 + [2]           
                                 [0 1]      [0]           
                       p(#eq#) = [0]                      
                                 [2]                      
                    p(#equal#) = [1]                      
                                 [0]                      
                  p(#greater#) = [0 1] x1 + [2]           
                                 [0 1]      [2]           
                    p(append#) = [2 1] x1 + [0]           
                                 [0 1]      [0]           
                  p(append#1#) = [0 1] x1 + [1 0] x2 + [0]
                                 [0 1]      [0 2]      [2]
                    p(insert#) = [0 2] x2 + [0]           
                                 [0 2]      [0]           
                  p(insert#1#) = [0 0] x1 + [0 2] x2 + [0]
                                 [0 2]      [0 2]      [2]
                  p(insert#2#) = [0 2] x1 + [0 0] x3 + [0]
                                 [0 0]      [0 2]      [2]
                  p(insert#3#) = [0 0] x2 + [0 2] x3 + [0 
                                 0] x4 + [0]              
                                 [0 1]      [0 0]      [2 
                                 2]      [1]              
                  p(insert#4#) = [0 2] x3 + [0 0] x4 + [0]
                                 [0 0]      [2 2]      [1]
                 p(quicksort#) = [0]                      
                                 [0]                      
               p(quicksort#1#) = [1 2] x1 + [1]           
                                 [0 2]      [0]           
               p(quicksort#2#) = [0 0] x2 + [1]           
                                 [0 2]      [0]           
                   p(sortAll#) = [2]                      
                                 [0]                      
                 p(sortAll#1#) = [2]                      
                                 [0]                      
                 p(sortAll#2#) = [0 1] x2 + [2]           
                                 [2 0]      [0]           
                     p(split#) = [2 0] x1 + [0]           
                                 [0 2]      [0]           
                   p(split#1#) = [2 0] x1 + [0]           
                                 [3 1]      [2]           
              p(splitAndSort#) = [2 2] x1 + [2]           
                                 [2 2]      [2]           
                   p(splitqs#) = [0]                      
                                 [2]                      
                 p(splitqs#1#) = [2]                      
                                 [0]                      
                 p(splitqs#2#) = [1 2] x1 + [0 0] x3 + [1]
                                 [0 1]      [2 1]      [1]
                 p(splitqs#3#) = [1 0] x1 + [1 0] x2 + [0 
                                 0] x3 + [0 0] x4 + [2]   
                                 [0 0]      [0 1]      [1 
                                 0]      [0 1]      [1]   
                        p(c_1) = [0 0] x1 + [2]           
                                 [0 1]      [0]           
                        p(c_2) = [2 2] x2 + [0]           
                                 [0 0]      [1]           
                        p(c_3) = [2]                      
                                 [2]                      
                        p(c_4) = [0 1] x1 + [1]           
                                 [0 2]      [2]           
                        p(c_5) = [0]                      
                                 [0]                      
                        p(c_6) = [1 0] x1 + [0]           
                                 [0 0]      [0]           
                        p(c_7) = [1 0] x1 + [0]           
                                 [1 0]      [0]           
                        p(c_8) = [1 0] x1 + [1]           
                                 [0 0]      [2]           
                        p(c_9) = [2]                      
                                 [2]                      
                       p(c_10) = [1 0] x1 + [0]           
                                 [0 1]      [0]           
                       p(c_11) = [1 0] x1 + [0]           
                                 [0 0]      [0]           
                       p(c_12) = [0]                      
                                 [0]                      
                       p(c_13) = [0 0] x1 + [0]           
                                 [0 1]      [1]           
                       p(c_14) = [0 2] x1 + [0]           
                                 [1 0]      [2]           
                       p(c_15) = [0]                      
                                 [0]                      
                       p(c_16) = [2]                      
                                 [1]                      
                       p(c_17) = [0 1] x1 + [1]           
                                 [2 0]      [0]           
                       p(c_18) = [0 1] x1 + [1]           
                                 [2 0]      [0]           
                       p(c_19) = [0]                      
                                 [1]                      
                       p(c_20) = [0 0] x1 + [0]           
                                 [2 2]      [1]           
                       p(c_21) = [1 0] x1 + [0]           
                                 [0 0]      [0]           
                       p(c_22) = [1 0] x1 + [1 0] x2 + [0]
                                 [1 1]      [1 0]      [3]
                       p(c_23) = [0]                      
                                 [0]                      
                       p(c_24) = [1 1] x1 + [2]           
                                 [0 1]      [0]           
                       p(c_25) = [2 0] x1 + [1]           
                                 [2 0]      [0]           
                       p(c_26) = [0]                      
                                 [0]                      
                       p(c_27) = [1]                      
                                 [0]                      
                       p(c_28) = [0 0] x1 + [2 1] x2 + [2]
                                 [2 0]      [0 2]      [1]
                       p(c_29) = [0]                      
                                 [2]                      
                       p(c_30) = [0]                      
                                 [1]                      
                       p(c_31) = [0]                      
                                 [0]                      
                       p(c_32) = [2]                      
                                 [2]                      
                       p(c_33) = [1]                      
                                 [0]                      
                       p(c_34) = [0]                      
                                 [0]                      
                       p(c_35) = [0]                      
                                 [0]                      
                       p(c_36) = [0]                      
                                 [1]                      
                       p(c_37) = [1]                      
                                 [0]                      
                       p(c_38) = [2]                      
                                 [1]                      
                       p(c_39) = [1]                      
                                 [2]                      
                       p(c_40) = [0]                      
                                 [1]                      
                       p(c_41) = [2]                      
                                 [1]                      
                       p(c_42) = [0]                      
                                 [1]                      
                       p(c_43) = [0 0] x1 + [0]           
                                 [0 1]      [0]           
                       p(c_44) = [0]                      
                                 [1]                      
                       p(c_45) = [0]                      
                                 [1]                      
                       p(c_46) = [0]                      
                                 [1]                      
                       p(c_47) = [0]                      
                                 [0]                      
                       p(c_48) = [0]                      
                                 [0]                      
                       p(c_49) = [0]                      
                                 [0]                      
                       p(c_50) = [0]                      
                                 [0]                      
                       p(c_51) = [0]                      
                                 [0]                      
                       p(c_52) = [0]                      
                                 [0]                      
                       p(c_53) = [0]                      
                                 [2]                      
                       p(c_54) = [1]                      
                                 [0]                      
                       p(c_55) = [0 2] x1 + [0]           
                                 [1 1]      [1]           
                       p(c_56) = [2]                      
                                 [1]                      
                       p(c_57) = [0]                      
                                 [0]                      
                       p(c_58) = [1]                      
                                 [0]                      
                       p(c_59) = [0 0] x1 + [1]           
                                 [1 2]      [0]           
                       p(c_60) = [1]                      
                                 [0]                      
                       p(c_61) = [0]                      
                                 [0]                      
                       p(c_62) = [0 1] x1 + [0 0] x2 + [0 
                                 0] x3 + [0]              
                                 [1 0]      [0 1]      [0 
                                 1]      [1]              
                       p(c_63) = [0]                      
                                 [0]                      
                       p(c_64) = [1]                      
                                 [1]                      
                       p(c_65) = [0]                      
                                 [0]                      
                       p(c_66) = [1]                      
                                 [0]                      
                       p(c_67) = [0]                      
                                 [1]                      
                       p(c_68) = [0]                      
                                 [0]                      
                       p(c_69) = [0]                      
                                 [0]                      
                       p(c_70) = [0 0] x2 + [0]           
                                 [1 1]      [0]           
            
            Following rules are strictly oriented:
            insert#2#(::(@l1,@ls) = [0 2] @ls + [0 0] @valX + [2]
                           ,@keyX   [0 0]       [0 2]         [2]
                           ,@valX                                
                             ,@x)                                
                                  > [0 2] @ls + [1]              
                                    [0 0]       [2]              
                                  = c_8(insert#3#(@l1            
                                                 ,@keyX          
                                                 ,@ls            
                                                 ,@valX          
                                                 ,@x))           
            
            
            Following rules are (at-least) weakly oriented:
                             insert#(@x,@l) =  [0 2] @l + [0]                  
                                               [0 2]      [0]                  
                                            >= [0 2] @l + [0]                  
                                               [0 0]      [0]                  
                                            =  c_6(insert#1#(@x,@l,@x))        
            
             insert#1#(tuple#2(@valX,@keyX) =  [0 2] @l + [0]                  
                                        ,@l    [0 2]      [2]                  
                                       ,@x)                                    
                                            >= [0 2] @l + [0]                  
                                               [0 2]      [0]                  
                                            =  c_7(insert#2#(@l                
                                                            ,@keyX             
                                                            ,@valX             
                                                            ,@x))              
            
            insert#3#(tuple#2(@vals1,@key1) =  [0 0] @keyX + [0 2] @ls + [0    
                                     ,@keyX    0] @valX + [0]                  
                                       ,@ls    [0 1]         [0 0]       [2    
                                     ,@valX    2]         [1]                  
                                       ,@x)                                    
                                            >= [0 2] @ls + [0 0] @valX + [0]   
                                               [0 0]       [2 2]         [1]   
                                            =  c_10(insert#4#(#equal(@key1     
                                                                    ,@keyX)    
                                                             ,@key1            
                                                             ,@ls              
                                                             ,@valX            
                                                             ,@vals1           
                                                             ,@x))             
            
                         insert#4#(#false() =  [0 2] @ls + [0 0] @valX + [0]   
                                     ,@key1    [0 0]       [2 2]         [1]   
                                       ,@ls                                    
                                     ,@valX                                    
                                    ,@vals1                                    
                                       ,@x)                                    
                                            >= [0 2] @ls + [0]                 
                                               [0 0]       [0]                 
                                            =  c_11(insert#(@x,@ls))           
            
                                 split#(@l) =  [2 0] @l + [0]                  
                                               [0 2]      [0]                  
                                            >= [2 0] @l + [0]                  
                                               [0 0]      [0]                  
                                            =  c_21(split#1#(@l))              
            
                       split#1#(::(@x,@xs)) =  [2 2] @xs + [0]                 
                                               [3 4]       [3]                 
                                            >= [2 2] @xs + [0]                 
                                               [2 4]       [3]                 
                                            =  c_22(insert#(@x,split(@xs))     
                                                   ,split#(@xs))               
            
                          splitAndSort#(@l) =  [2 2] @l + [2]                  
                                               [2 2]      [2]                  
                                            >= [2 2] @l + [2]                  
                                               [0 2]      [0]                  
                                            =  c_24(split#(@l))                
            
                              insert(@x,@l) =  [1 2] @l + [0]                  
                                               [0 1]      [1]                  
                                            >= [1 2] @l + [0]                  
                                               [0 1]      [1]                  
                                            =  insert#1(@x,@l,@x)              
            
              insert#1(tuple#2(@valX,@keyX) =  [1 2] @l + [0]                  
                                        ,@l    [0 1]      [1]                  
                                       ,@x)                                    
                                            >= [1 2] @l + [0]                  
                                               [0 1]      [1]                  
                                            =  insert#2(@l,@keyX,@valX,@x)     
            
                       insert#2(::(@l1,@ls) =  [1 3] @ls + [2]                 
                                     ,@keyX    [0 1]       [2]                 
                                     ,@valX                                    
                                       ,@x)                                    
                                            >= [1 3] @ls + [2]                 
                                               [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) =  [1 3] @ls + [2]                 
                                     ,@keyX    [0 1]       [2]                 
                                       ,@ls                                    
                                     ,@valX                                    
                                       ,@x)                                    
                                            >= [1 3] @ls + [2]                 
                                               [0 1]       [2]                 
                                            =  insert#4(#equal(@key1,@keyX)    
                                                       ,@key1                  
                                                       ,@ls                    
                                                       ,@valX                  
                                                       ,@vals1                 
                                                       ,@x)                    
            
                          insert#4(#false() =  [1 3] @ls + [2]                 
                                     ,@key1    [0 1]       [2]                 
                                       ,@ls                                    
                                     ,@valX                                    
                                    ,@vals1                                    
                                       ,@x)                                    
                                            >= [1 3] @ls + [1]                 
                                               [0 1]       [2]                 
                                            =  ::(tuple#2(@vals1,@key1)        
                                                 ,insert(@x,@ls))              
            
                           insert#4(#true() =  [1 3] @ls + [2]                 
                                     ,@key1    [0 1]       [2]                 
                                       ,@ls                                    
                                     ,@valX                                    
                                    ,@vals1                                    
                                       ,@x)                                    
                                            >= [1 1] @ls + [0]                 
                                               [0 1]       [1]                 
                                            =  ::(tuple#2(::(@valX,@vals1)     
                                                         ,@key1)               
                                                 ,@ls)                         
            
                                  split(@l) =  [2 0] @l + [0]                  
                                               [0 1]      [0]                  
                                            >= [2 0] @l + [0]                  
                                               [0 1]      [0]                  
                                            =  split#1(@l)                     
            
                        split#1(::(@x,@xs)) =  [2 2] @xs + [0]                 
                                               [0 1]       [1]                 
                                            >= [2 2] @xs + [0]                 
                                               [0 1]       [1]                 
                                            =  insert(@x,split(@xs))           
            
                             split#1(nil()) =  [0]                             
                                               [0]                             
                                            >= [0]                             
                                               [0]                             
                                            =  nil()                           
            
      *** 1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1 Progress [(?,O(1))]  ***
          Considered Problem:
            Strict DP Rules:
              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#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))
            Strict TRS Rules:
              
            Weak DP Rules:
              insert#2#(::(@l1,@ls),@keyX,@valX,@x) -> c_8(insert#3#(@l1,@keyX,@ls,@valX,@x))
              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 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()
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            Assumption
          Proof:
            ()
      
      *** 1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2 Progress [(?,O(n^2))]  ***
          Considered Problem:
            Strict DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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()
            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
              basic terms: {#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#}/{#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, greedy = NoGreedy}}
          Proof:
            We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} 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, greedy = NoGreedy}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.
        *** 1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1 Progress [(?,O(n^2))]  ***
            Considered Problem:
              Strict DP Rules:
                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))
              Strict TRS Rules:
                
              Weak DP Rules:
                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 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()
              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
                basic terms: {#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#}/{#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 any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
            Proof:
              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) = [1]                      
                                   [0]                      
                          p(#GT) = [0]                      
                                   [0]                      
                          p(#LT) = [0]                      
                                   [2]                      
                         p(#and) = [1 0] x2 + [1]           
                                   [0 2]      [2]           
                        p(#ckgt) = [0]                      
                                   [0]                      
                     p(#compare) = [2 2] x1 + [0]           
                                   [2 0]      [0]           
                          p(#eq) = [0]                      
                                   [0]                      
                       p(#equal) = [0]                      
                                   [0]                      
                       p(#false) = [0]                      
                                   [0]                      
                     p(#greater) = [2]                      
                                   [0]                      
                         p(#neg) = [1]                      
                                   [2]                      
                         p(#pos) = [0]                      
                                   [0]                      
                           p(#s) = [2]                      
                                   [0]                      
                        p(#true) = [1]                      
                                   [0]                      
                           p(::) = [1 1] x2 + [0]           
                                   [0 1]      [1]           
                       p(append) = [0]                      
                                   [0]                      
                     p(append#1) = [2 0] x2 + [0]           
                                   [1 0]      [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] x1 + [0]           
                                   [0 2]      [0]           
                  p(quicksort#1) = [0]                      
                                   [2]                      
                  p(quicksort#2) = [0]                      
                                   [0]                      
                      p(sortAll) = [0]                      
                                   [0]                      
                    p(sortAll#1) = [2]                      
                                   [0]                      
                    p(sortAll#2) = [0]                      
                                   [2]                      
                        p(split) = [1 0] x1 + [0]           
                                   [0 1]      [0]           
                      p(split#1) = [1 0] x1 + [0]           
                                   [0 1]      [0]           
                 p(splitAndSort) = [2]                      
                                   [0]                      
                      p(splitqs) = [1]                      
                                   [1]                      
                    p(splitqs#1) = [0 0] x1 + [0 0] x2 + [1]
                                   [0 1]      [2 2]      [0]
                    p(splitqs#2) = [1]                      
                                   [0]                      
                    p(splitqs#3) = [0 0] x2 + [2 2] x4 + [0]
                                   [1 1]      [0 2]      [0]
                      p(tuple#2) = [0]                      
                                   [0]                      
                        p(#and#) = [0 0] x1 + [1]           
                                   [0 2]      [0]           
                       p(#ckgt#) = [0]                      
                                   [0]                      
                    p(#compare#) = [0 2] x2 + [0]           
                                   [1 2]      [2]           
                         p(#eq#) = [1 0] x1 + [1 2] x2 + [0]
                                   [1 0]      [0 1]      [0]
                      p(#equal#) = [0 0] x2 + [0]           
                                   [2 0]      [0]           
                    p(#greater#) = [0 2] x1 + [0 0] x2 + [0]
                                   [0 0]      [2 2]      [2]
                      p(append#) = [0 0] x2 + [2]           
                                   [1 1]      [1]           
                    p(append#1#) = [0 0] x2 + [2]           
                                   [2 1]      [0]           
                      p(insert#) = [0 2] x2 + [1]           
                                   [0 0]      [2]           
                    p(insert#1#) = [0 2] x2 + [0 0] x3 + [0]
                                   [0 1]      [0 3]      [0]
                    p(insert#2#) = [0 2] x1 + [0 0] x3 + [0]
                                   [0 3]      [3 2]      [2]
                    p(insert#3#) = [0 2] x3 + [0 0] x4 + [2]
                                   [0 1]      [1 0]      [1]
                    p(insert#4#) = [0 2] x3 + [0 0] x4 + [2]
                                   [0 0]      [1 0]      [0]
                   p(quicksort#) = [1]                      
                                   [1]                      
                 p(quicksort#1#) = [0 0] x1 + [1]           
                                   [1 0]      [1]           
                 p(quicksort#2#) = [0 1] x1 + [0 0] x2 + [1]
                                   [2 2]      [1 0]      [0]
                     p(sortAll#) = [1]                      
                                   [2]                      
                   p(sortAll#1#) = [0 0] x1 + [1]           
                                   [0 2]      [2]           
                   p(sortAll#2#) = [2 1] x2 + [0]           
                                   [1 1]      [0]           
                       p(split#) = [2 1] x1 + [0]           
                                   [0 1]      [0]           
                     p(split#1#) = [2 1] x1 + [0]           
                                   [3 3]      [3]           
                p(splitAndSort#) = [2 2] x1 + [2]           
                                   [2 2]      [3]           
                     p(splitqs#) = [0 0] x1 + [2 2] x2 + [1]
                                   [0 1]      [1 0]      [0]
                   p(splitqs#1#) = [0 2] x1 + [2 0] x2 + [0]
                                   [0 0]      [0 0]      [0]
                   p(splitqs#2#) = [0 0] x1 + [2]           
                                   [0 2]      [1]           
                   p(splitqs#3#) = [1 0] x4 + [0]           
                                   [0 0]      [0]           
                          p(c_1) = [1 2] x1 + [0]           
                                   [1 1]      [2]           
                          p(c_2) = [0 0] x1 + [0 0] x2 + [1]
                                   [0 1]      [0 1]      [0]
                          p(c_3) = [2 0] x1 + [0]           
                                   [0 2]      [0]           
                          p(c_4) = [0]                      
                                   [0]                      
                          p(c_5) = [2]                      
                                   [0]                      
                          p(c_6) = [1 0] x1 + [0]           
                                   [0 0]      [2]           
                          p(c_7) = [1 0] x1 + [0]           
                                   [0 0]      [0]           
                          p(c_8) = [1 0] x1 + [0]           
                                   [0 3]      [1]           
                          p(c_9) = [0]                      
                                   [0]                      
                         p(c_10) = [1 0] x1 + [0]           
                                   [0 1]      [1]           
                         p(c_11) = [1 0] x1 + [0]           
                                   [0 0]      [0]           
                         p(c_12) = [1]                      
                                   [0]                      
                         p(c_13) = [1]                      
                                   [0]                      
                         p(c_14) = [2]                      
                                   [0]                      
                         p(c_15) = [0]                      
                                   [0]                      
                         p(c_16) = [0]                      
                                   [0]                      
                         p(c_17) = [1 0] x1 + [0]           
                                   [0 0]      [2]           
                         p(c_18) = [0]                      
                                   [2]                      
                         p(c_19) = [0]                      
                                   [0]                      
                         p(c_20) = [1 2] x1 + [0 2] x2 + [0]
                                   [1 0]      [0 2]      [0]
                         p(c_21) = [1 0] x1 + [0]           
                                   [0 0]      [0]           
                         p(c_22) = [1 0] x1 + [1 0] x2 + [0]
                                   [2 2]      [1 1]      [0]
                         p(c_23) = [0]                      
                                   [2]                      
                         p(c_24) = [1 0] x1 + [2]           
                                   [0 2]      [2]           
                         p(c_25) = [1]                      
                                   [0]                      
                         p(c_26) = [0 0] x1 + [1]           
                                   [0 2]      [0]           
                         p(c_27) = [0]                      
                                   [0]                      
                         p(c_28) = [0 0] x2 + [0]           
                                   [0 2]      [2]           
                         p(c_29) = [0]                      
                                   [1]                      
                         p(c_30) = [1]                      
                                   [0]                      
                         p(c_31) = [2]                      
                                   [0]                      
                         p(c_32) = [0]                      
                                   [0]                      
                         p(c_33) = [0]                      
                                   [0]                      
                         p(c_34) = [0]                      
                                   [0]                      
                         p(c_35) = [0]                      
                                   [2]                      
                         p(c_36) = [0]                      
                                   [0]                      
                         p(c_37) = [0]                      
                                   [0]                      
                         p(c_38) = [1]                      
                                   [1]                      
                         p(c_39) = [2]                      
                                   [0]                      
                         p(c_40) = [0]                      
                                   [0]                      
                         p(c_41) = [0]                      
                                   [0]                      
                         p(c_42) = [1]                      
                                   [0]                      
                         p(c_43) = [0 1] x1 + [0]           
                                   [0 1]      [0]           
                         p(c_44) = [0]                      
                                   [0]                      
                         p(c_45) = [2]                      
                                   [0]                      
                         p(c_46) = [0]                      
                                   [0]                      
                         p(c_47) = [2]                      
                                   [1]                      
                         p(c_48) = [1]                      
                                   [1]                      
                         p(c_49) = [1]                      
                                   [2]                      
                         p(c_50) = [0]                      
                                   [1]                      
                         p(c_51) = [2]                      
                                   [1]                      
                         p(c_52) = [2]                      
                                   [0]                      
                         p(c_53) = [0]                      
                                   [0]                      
                         p(c_54) = [0]                      
                                   [0]                      
                         p(c_55) = [0 0] x1 + [0]           
                                   [0 2]      [0]           
                         p(c_56) = [2]                      
                                   [0]                      
                         p(c_57) = [0]                      
                                   [0]                      
                         p(c_58) = [0]                      
                                   [0]                      
                         p(c_59) = [0 2] x1 + [0]           
                                   [0 2]      [0]           
                         p(c_60) = [0]                      
                                   [1]                      
                         p(c_61) = [2]                      
                                   [0]                      
                         p(c_62) = [0 0] x1 + [2]           
                                   [2 1]      [0]           
                         p(c_63) = [2]                      
                                   [2]                      
                         p(c_64) = [1]                      
                                   [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) = [1 0] x1 + [2 1] x2 + [2]
                                   [1 0]      [0 1]      [2]
              
              Following rules are strictly oriented:
              insert#(@x,@l) = [0 2] @l + [1]          
                               [0 0]      [2]          
                             > [0 2] @l + [0]          
                               [0 0]      [2]          
                             = c_6(insert#1#(@x,@l,@x))
              
              
              Following rules are (at-least) weakly oriented:
               insert#1#(tuple#2(@valX,@keyX) =  [0 2] @l + [0 0] @x + [0]       
                                          ,@l    [0 1]      [0 3]      [0]       
                                         ,@x)                                    
                                              >= [0 2] @l + [0]                  
                                                 [0 0]      [0]                  
                                              =  c_7(insert#2#(@l                
                                                              ,@keyX             
                                                              ,@valX             
                                                              ,@x))              
              
                        insert#2#(::(@l1,@ls) =  [0 2] @ls + [0 0] @valX + [2]   
                                       ,@keyX    [0 3]       [3 2]         [5]   
                                       ,@valX                                    
                                         ,@x)                                    
                                              >= [0 2] @ls + [0 0] @valX + [2]   
                                                 [0 3]       [3 0]         [4]   
                                              =  c_8(insert#3#(@l1               
                                                              ,@keyX             
                                                              ,@ls               
                                                              ,@valX             
                                                              ,@x))              
              
              insert#3#(tuple#2(@vals1,@key1) =  [0 2] @ls + [0 0] @valX + [2]   
                                       ,@keyX    [0 1]       [1 0]         [1]   
                                         ,@ls                                    
                                       ,@valX                                    
                                         ,@x)                                    
                                              >= [0 2] @ls + [0 0] @valX + [2]   
                                                 [0 0]       [1 0]         [1]   
                                              =  c_10(insert#4#(#equal(@key1     
                                                                      ,@keyX)    
                                                               ,@key1            
                                                               ,@ls              
                                                               ,@valX            
                                                               ,@vals1           
                                                               ,@x))             
              
                           insert#4#(#false() =  [0 2] @ls + [0 0] @valX + [2]   
                                       ,@key1    [0 0]       [1 0]         [0]   
                                         ,@ls                                    
                                       ,@valX                                    
                                      ,@vals1                                    
                                         ,@x)                                    
                                              >= [0 2] @ls + [1]                 
                                                 [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]                 
                                                 [3 6]       [6]                 
                                              >= [2 3] @xs + [1]                 
                                                 [2 6]       [6]                 
                                              =  c_22(insert#(@x,split(@xs))     
                                                     ,split#(@xs))               
              
                            splitAndSort#(@l) =  [2 2] @l + [2]                  
                                                 [2 2]      [3]                  
                                              >= [2 1] @l + [2]                  
                                                 [0 2]      [2]                  
                                              =  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) =  [1 1] @l + [0]                  
                                          ,@l    [0 1]      [1]                  
                                         ,@x)                                    
                                              >= [1 1] @l + [0]                  
                                                 [0 1]      [1]                  
                                              =  insert#2(@l,@keyX,@valX,@x)     
              
                         insert#2(::(@l1,@ls) =  [1 2] @ls + [1]                 
                                       ,@keyX    [0 1]       [2]                 
                                       ,@valX                                    
                                         ,@x)                                    
                                              >= [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) =  [1 2] @ls + [1]                 
                                       ,@keyX    [0 1]       [2]                 
                                         ,@ls                                    
                                       ,@valX                                    
                                         ,@x)                                    
                                              >= [1 2] @ls + [1]                 
                                                 [0 1]       [2]                 
                                              =  insert#4(#equal(@key1,@keyX)    
                                                         ,@key1                  
                                                         ,@ls                    
                                                         ,@valX                  
                                                         ,@vals1                 
                                                         ,@x)                    
              
                            insert#4(#false() =  [1 2] @ls + [1]                 
                                       ,@key1    [0 1]       [2]                 
                                         ,@ls                                    
                                       ,@valX                                    
                                      ,@vals1                                    
                                         ,@x)                                    
                                              >= [1 2] @ls + [1]                 
                                                 [0 1]       [2]                 
                                              =  ::(tuple#2(@vals1,@key1)        
                                                   ,insert(@x,@ls))              
              
                             insert#4(#true() =  [1 2] @ls + [1]                 
                                       ,@key1    [0 1]       [2]                 
                                         ,@ls                                    
                                       ,@valX                                    
                                      ,@vals1                                    
                                         ,@x)                                    
                                              >= [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()                           
              
        *** 1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1 Progress [(?,O(1))]  ***
            Considered Problem:
              Strict DP Rules:
                insert#1#(tuple#2(@valX,@keyX),@l,@x) -> c_7(insert#2#(@l,@keyX,@valX,@x))
              Strict TRS Rules:
                
              Weak DP Rules:
                insert#(@x,@l) -> c_6(insert#1#(@x,@l,@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 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()
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
            Applied Processor:
              Assumption
            Proof:
              ()
        
        *** 1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.2 Progress [(O(1),O(1))]  ***
            Considered Problem:
              Strict DP Rules:
                
              Strict TRS Rules:
                
              Weak DP Rules:
                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 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()
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
            Applied Processor:
              RemoveWeakSuffixes
            Proof:
              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))   
        *** 1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.2.1 Progress [(O(1),O(1))]  ***
            Considered Problem:
              Strict DP Rules:
                
              Strict TRS Rules:
                
              Weak DP Rules:
                
              Weak TRS 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()
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
            Applied Processor:
              EmptyProcessor
            Proof:
              The problem is already closed. The intended complexity is O(1).
        
    *** 1.1.1.1.1.1.1.2.1.1.1.2 Progress [(?,O(n^5))]  ***
        Considered Problem:
          Strict DP Rules:
            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))
          Strict TRS Rules:
            
          Weak DP Rules:
            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 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))
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        Applied Processor:
          RemoveWeakSuffixes
        Proof:
          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))   
    *** 1.1.1.1.1.1.1.2.1.1.1.2.1 Progress [(?,O(n^5))]  ***
        Considered Problem:
          Strict DP Rules:
            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))
          Strict TRS Rules:
            
          Weak DP Rules:
            
          Weak TRS 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))
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        Applied Processor:
          SimplifyRHS
        Proof:
          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))
    *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1 Progress [(?,O(n^5))]  ***
        Considered Problem:
          Strict DP Rules:
            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))
          Strict TRS Rules:
            
          Weak DP Rules:
            
          Weak TRS 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))
          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
            basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        Applied Processor:
          Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
        Proof:
          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 DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          
          Problem (S)
            Strict DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
      *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1 Progress [(?,O(n^5))]  ***
          Considered Problem:
            Strict DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            RemoveWeakSuffixes
          Proof:
            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))
                 -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys)):3
                 -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
              
              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))
                 -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
                 -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
              
              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))             
      *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1 Progress [(?,O(n^5))]  ***
          Considered Problem:
            Strict DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            SimplifyRHS
          Proof:
            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))
                 -->_1 quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys)):3
                 -->_2 splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot)):10
              
              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))
                 -->_2 sortAll#(@l) -> c_17(sortAll#1#(@l)):4
                 -->_1 quicksort#(@l) -> c_13(quicksort#1#(@l)):1
              
              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)))
      *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1 Progress [(?,O(n^5))]  ***
          Considered Problem:
            Strict DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#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}
          Proof:
            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))
        *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
            Considered Problem:
              Strict DP Rules:
                sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
              Strict TRS Rules:
                
              Weak DP Rules:
                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 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))
              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
                basic terms: {#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#}/{#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, greedy = NoGreedy}}
            Proof:
              We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} 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, greedy = NoGreedy}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.
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
              Considered Problem:
                Strict DP Rules:
                  sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(quicksort#(@vals),sortAll#(@xs))
                Strict TRS Rules:
                  
                Weak DP Rules:
                  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 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))
                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
                  basic terms: {#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#}/{#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 any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
              Proof:
                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) = [0]                           
                          p(#ckgt) = [0]                           
                       p(#compare) = [0]                           
                            p(#eq) = [0]                           
                         p(#equal) = [0]                           
                         p(#false) = [0]                           
                       p(#greater) = [2] x2 + [2]                  
                           p(#neg) = [0]                           
                           p(#pos) = [0]                           
                             p(#s) = [1] x1 + [0]                  
                          p(#true) = [0]                           
                             p(::) = [1] x2 + [1]                  
                         p(append) = [1] x2 + [0]                  
                       p(append#1) = [0]                           
                         p(insert) = [1] x2 + [3]                  
                       p(insert#1) = [1] x2 + [3]                  
                       p(insert#2) = [1] x1 + [3]                  
                       p(insert#3) = [1] x3 + [4]                  
                       p(insert#4) = [1] x3 + [4]                  
                            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) = [3] x1 + [0]                  
                        p(split#1) = [3] x1 + [0]                  
                   p(splitAndSort) = [0]                           
                        p(splitqs) = [0]                           
                      p(splitqs#1) = [0]                           
                      p(splitqs#2) = [0]                           
                      p(splitqs#3) = [5] x1 + [0]                  
                        p(tuple#2) = [0]                           
                          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#) = [2] x3 + [1] x6 + [0]         
                     p(quicksort#) = [0]                           
                   p(quicksort#1#) = [2] x1 + [4]                  
                   p(quicksort#2#) = [1]                           
                       p(sortAll#) = [2] x1 + [0]                  
                     p(sortAll#1#) = [2] x1 + [0]                  
                     p(sortAll#2#) = [2] x2 + [1]                  
                         p(split#) = [1]                           
                       p(split#1#) = [1] x1 + [1]                  
                  p(splitAndSort#) = [6] x1 + [1]                  
                       p(splitqs#) = [2] x1 + [0]                  
                     p(splitqs#1#) = [1]                           
                     p(splitqs#2#) = [0]                           
                     p(splitqs#3#) = [1] x2 + [4] x3 + [1] x4 + [0]
                            p(c_1) = [1] x1 + [2]                  
                            p(c_2) = [0]                           
                            p(c_3) = [0]                           
                            p(c_4) = [2]                           
                            p(c_5) = [1]                           
                            p(c_6) = [0]                           
                            p(c_7) = [4] x1 + [1]                  
                            p(c_8) = [1]                           
                            p(c_9) = [1]                           
                           p(c_10) = [0]                           
                           p(c_11) = [1] x1 + [1]                  
                           p(c_12) = [1]                           
                           p(c_13) = [1]                           
                           p(c_14) = [1]                           
                           p(c_15) = [4]                           
                           p(c_16) = [2]                           
                           p(c_17) = [1] x1 + [0]                  
                           p(c_18) = [1] x1 + [1]                  
                           p(c_19) = [1]                           
                           p(c_20) = [1] x2 + [0]                  
                           p(c_21) = [0]                           
                           p(c_22) = [0]                           
                           p(c_23) = [0]                           
                           p(c_24) = [1] x1 + [1]                  
                           p(c_25) = [0]                           
                           p(c_26) = [1]                           
                           p(c_27) = [0]                           
                           p(c_28) = [4] x1 + [4] x2 + [0]         
                           p(c_29) = [4]                           
                           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) = [1]                           
                           p(c_38) = [0]                           
                           p(c_39) = [2]                           
                           p(c_40) = [0]                           
                           p(c_41) = [1]                           
                           p(c_42) = [2]                           
                           p(c_43) = [1] x1 + [2]                  
                           p(c_44) = [1]                           
                           p(c_45) = [0]                           
                           p(c_46) = [0]                           
                           p(c_47) = [0]                           
                           p(c_48) = [1]                           
                           p(c_49) = [0]                           
                           p(c_50) = [2]                           
                           p(c_51) = [1]                           
                           p(c_52) = [1]                           
                           p(c_53) = [4]                           
                           p(c_54) = [0]                           
                           p(c_55) = [2] x1 + [2]                  
                           p(c_56) = [0]                           
                           p(c_57) = [4]                           
                           p(c_58) = [2]                           
                           p(c_59) = [2] x1 + [0]                  
                           p(c_60) = [1]                           
                           p(c_61) = [4] x1 + [0]                  
                           p(c_62) = [1] x2 + [1] x3 + [1]         
                           p(c_63) = [2]                           
                           p(c_64) = [1]                           
                           p(c_65) = [1]                           
                           p(c_66) = [0]                           
                           p(c_67) = [2]                           
                           p(c_68) = [1]                           
                           p(c_69) = [0]                           
                           p(c_70) = [2] x1 + [4] x2 + [2] x3 + [0]
                
                Following rules are strictly oriented:
                sortAll#2#(tuple#2(@vals,@key) = [2] @xs + [1]         
                                         ,@xs)                         
                                               > [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] @xs + [2]                   
                                               >= [2] @xs + [2]                   
                                               =  c_18(sortAll#2#(@x,@xs))        
                
                             splitAndSort#(@l) =  [6] @l + [1]                    
                                               >= [6] @l + [1]                    
                                               =  c_24(sortAll#(split(@l)))       
                
                                 insert(@x,@l) =  [1] @l + [3]                    
                                               >= [1] @l + [3]                    
                                               =  insert#1(@x,@l,@x)              
                
                 insert#1(tuple#2(@valX,@keyX) =  [1] @l + [3]                    
                                           ,@l                                    
                                          ,@x)                                    
                                               >= [1] @l + [3]                    
                                               =  insert#2(@l,@keyX,@valX,@x)     
                
                          insert#2(::(@l1,@ls) =  [1] @ls + [4]                   
                                        ,@keyX                                    
                                        ,@valX                                    
                                          ,@x)                                    
                                               >= [1] @ls + [4]                   
                                               =  insert#3(@l1,@keyX,@ls,@valX,@x)
                
                insert#2(nil(),@keyX,@valX,@x) =  [3]                             
                                               >= [1]                             
                                               =  ::(tuple#2(::(@valX,nil())      
                                                            ,@keyX)               
                                                    ,nil())                       
                
                insert#3(tuple#2(@vals1,@key1) =  [1] @ls + [4]                   
                                        ,@keyX                                    
                                          ,@ls                                    
                                        ,@valX                                    
                                          ,@x)                                    
                                               >= [1] @ls + [4]                   
                                               =  insert#4(#equal(@key1,@keyX)    
                                                          ,@key1                  
                                                          ,@ls                    
                                                          ,@valX                  
                                                          ,@vals1                 
                                                          ,@x)                    
                
                             insert#4(#false() =  [1] @ls + [4]                   
                                        ,@key1                                    
                                          ,@ls                                    
                                        ,@valX                                    
                                       ,@vals1                                    
                                          ,@x)                                    
                                               >= [1] @ls + [4]                   
                                               =  ::(tuple#2(@vals1,@key1)        
                                                    ,insert(@x,@ls))              
                
                              insert#4(#true() =  [1] @ls + [4]                   
                                        ,@key1                                    
                                          ,@ls                                    
                                        ,@valX                                    
                                       ,@vals1                                    
                                          ,@x)                                    
                                               >= [1] @ls + [1]                   
                                               =  ::(tuple#2(::(@valX,@vals1)     
                                                            ,@key1)               
                                                    ,@ls)                         
                
                                     split(@l) =  [3] @l + [0]                    
                                               >= [3] @l + [0]                    
                                               =  split#1(@l)                     
                
                           split#1(::(@x,@xs)) =  [3] @xs + [3]                   
                                               >= [3] @xs + [3]                   
                                               =  insert(@x,split(@xs))           
                
                                split#1(nil()) =  [0]                             
                                               >= [0]                             
                                               =  nil()                           
                
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1 Progress [(?,O(1))]  ***
              Considered Problem:
                Strict DP Rules:
                  
                Strict TRS Rules:
                  
                Weak DP Rules:
                  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 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))
                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
                  basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
              Applied Processor:
                Assumption
              Proof:
                ()
          
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.2 Progress [(O(1),O(1))]  ***
              Considered Problem:
                Strict DP Rules:
                  
                Strict TRS Rules:
                  
                Weak DP Rules:
                  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 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))
                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
                  basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
              Applied Processor:
                RemoveWeakSuffixes
              Proof:
                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))               
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.2.1 Progress [(O(1),O(1))]  ***
              Considered Problem:
                Strict DP Rules:
                  
                Strict TRS Rules:
                  
                Weak DP Rules:
                  
                Weak TRS 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))
                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
                  basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
              Applied Processor:
                EmptyProcessor
              Proof:
                The problem is already closed. The intended complexity is O(1).
          
        *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2 Progress [(?,O(n^4))]  ***
            Considered Problem:
              Strict DP Rules:
                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))
              Strict TRS Rules:
                
              Weak DP Rules:
                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 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))
              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
                basic terms: {#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#}/{#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}
            Proof:
              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))
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.1 Progress [(?,O(n^2))]  ***
              Considered Problem:
                Strict DP Rules:
                  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))
                Strict TRS Rules:
                  
                Weak DP Rules:
                  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 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))
                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
                  basic terms: {#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#}/{#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, greedy = NoGreedy}}
              Proof:
                We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} 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 = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}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.
            *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.1 Progress [(?,O(n^2))]  ***
                Considered Problem:
                  Strict DP Rules:
                    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))
                  Strict TRS Rules:
                    
                  Weak DP Rules:
                    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 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))
                  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
                    basic terms: {#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#}/{#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 any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
                Proof:
                  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:
                    {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]                             
                              p(#EQ) = [0]                             
                                       [0]                             
                              p(#GT) = [2]                             
                                       [0]                             
                              p(#LT) = [0]                             
                                       [0]                             
                             p(#and) = [1 0] x1 + [2]                  
                                       [0 0]      [3]                  
                            p(#ckgt) = [1 1] x1 + [3]                  
                                       [0 3]      [2]                  
                         p(#compare) = [1 1] x1 + [0 0] x2 + [1]       
                                       [2 2]      [0 1]      [0]       
                              p(#eq) = [0]                             
                                       [0]                             
                           p(#equal) = [0]                             
                                       [0]                             
                           p(#false) = [0]                             
                                       [0]                             
                         p(#greater) = [0]                             
                                       [0]                             
                             p(#neg) = [3]                             
                                       [0]                             
                             p(#pos) = [2]                             
                                       [1]                             
                               p(#s) = [1 3] x1 + [2]                  
                                       [0 0]      [1]                  
                            p(#true) = [0]                             
                                       [0]                             
                               p(::) = [0 1] x1 + [1 0] x2 + [0]       
                                       [0 0]      [0 1]      [1]       
                           p(append) = [2 0] x1 + [0]                  
                                       [0 1]      [0]                  
                         p(append#1) = [0]                             
                                       [0]                             
                           p(insert) = [1 0] x2 + [1]                  
                                       [0 1]      [1]                  
                         p(insert#1) = [1 0] x2 + [1]                  
                                       [0 1]      [1]                  
                         p(insert#2) = [1 0] x1 + [1]                  
                                       [0 1]      [1]                  
                         p(insert#3) = [0 1] x1 + [1 0] x3 + [1]       
                                       [0 0]      [0 1]      [2]       
                         p(insert#4) = [1 0] x3 + [0 1] x5 + [1]       
                                       [0 1]      [0 0]      [2]       
                              p(nil) = [0]                             
                                       [0]                             
                        p(quicksort) = [1 2] x1 + [0]                  
                                       [2 0]      [0]                  
                      p(quicksort#1) = [1 1] x1 + [2]                  
                                       [1 1]      [0]                  
                      p(quicksort#2) = [1 0] x1 + [1 0] x2 + [2]       
                                       [0 0]      [0 0]      [0]       
                          p(sortAll) = [2 0] x1 + [2]                  
                                       [0 1]      [0]                  
                        p(sortAll#1) = [0 0] x1 + [1]                  
                                       [2 0]      [2]                  
                        p(sortAll#2) = [2 0] x2 + [0]                  
                                       [0 0]      [0]                  
                            p(split) = [0 1] x1 + [0]                  
                                       [0 2]      [0]                  
                          p(split#1) = [0 1] x1 + [0]                  
                                       [0 2]      [0]                  
                     p(splitAndSort) = [1 0] x1 + [0]                  
                                       [0 2]      [1]                  
                          p(splitqs) = [0 0] x1 + [0 1] x2 + [0]       
                                       [1 0]      [1 1]      [0]       
                        p(splitqs#1) = [0 1] x1 + [0 0] x2 + [0]       
                                       [0 1]      [1 0]      [0]       
                        p(splitqs#2) = [1 0] x1 + [0 0] x2 + [1]       
                                       [1 0]      [1 0]      [1]       
                        p(splitqs#3) = [0 1] x2 + [0 1] x3 + [1]       
                                       [0 1]      [0 0]      [1]       
                          p(tuple#2) = [0 1] x1 + [0 1] x2 + [0]       
                                       [0 1]      [0 0]      [0]       
                            p(#and#) = [0]                             
                                       [1]                             
                           p(#ckgt#) = [2 2] x1 + [2]                  
                                       [0 0]      [0]                  
                        p(#compare#) = [0]                             
                                       [0]                             
                             p(#eq#) = [0 1] x1 + [0 0] x2 + [0]       
                                       [0 1]      [2 1]      [0]       
                          p(#equal#) = [0 1] x2 + [0]                  
                                       [0 1]      [0]                  
                        p(#greater#) = [2 0] x2 + [1]                  
                                       [0 1]      [0]                  
                          p(append#) = [1 1] x1 + [1]                  
                                       [1 1]      [2]                  
                        p(append#1#) = [1 0] x1 + [0 0] x2 + [0]       
                                       [0 0]      [1 0]      [0]       
                          p(insert#) = [0 0] x2 + [0]                  
                                       [2 2]      [0]                  
                        p(insert#1#) = [0 0] x2 + [0]                  
                                       [1 1]      [0]                  
                        p(insert#2#) = [0 1] x1 + [1 1] x2 + [1        
                                       0] x3 + [2 0] x4 + [0]          
                                       [0 1]      [0 1]      [0        
                                       0]      [0 0]      [0]          
                        p(insert#3#) = [1 2] x1 + [0 0] x2 + [0        
                                       0] x4 + [0]                     
                                       [2 1]      [2 0]      [0        
                                       1]      [0]                     
                        p(insert#4#) = [0 0] x1 + [0 2] x2 + [0        
                                       0] x3 + [2 1] x4 + [2 0] x5 + [0
                                       0] x6 + [2]                     
                                       [0 1]      [0 1]      [2        
                                       1]      [0 0]      [0 2]      [0
                                       1]      [2]                     
                       p(quicksort#) = [0 2] x1 + [0]                  
                                       [0 0]      [0]                  
                     p(quicksort#1#) = [0 2] x1 + [0]                  
                                       [2 3]      [3]                  
                     p(quicksort#2#) = [2 0] x1 + [0 0] x2 + [0]       
                                       [2 0]      [2 2]      [0]       
                         p(sortAll#) = [3 0] x1 + [0]                  
                                       [0 0]      [0]                  
                       p(sortAll#1#) = [3 0] x1 + [0]                  
                                       [0 0]      [0]                  
                       p(sortAll#2#) = [0 2] x1 + [3 0] x2 + [0]       
                                       [0 0]      [0 0]      [0]       
                           p(split#) = [2]                             
                                       [1]                             
                         p(split#1#) = [0]                             
                                       [0]                             
                    p(splitAndSort#) = [2 3] x1 + [2]                  
                                       [0 0]      [0]                  
                         p(splitqs#) = [0 1] x1 + [1 0] x2 + [2]       
                                       [0 1]      [0 0]      [3]       
                       p(splitqs#1#) = [0 0] x1 + [0]                  
                                       [1 0]      [2]                  
                       p(splitqs#2#) = [2]                             
                                       [0]                             
                       p(splitqs#3#) = [0 0] x2 + [0]                  
                                       [1 0]      [0]                  
                              p(c_1) = [0]                             
                                       [2]                             
                              p(c_2) = [2 0] x2 + [0]                  
                                       [0 2]      [0]                  
                              p(c_3) = [0]                             
                                       [0]                             
                              p(c_4) = [0 2] x1 + [1]                  
                                       [2 2]      [0]                  
                              p(c_5) = [0]                             
                                       [1]                             
                              p(c_6) = [0 0] x1 + [0]                  
                                       [1 1]      [0]                  
                              p(c_7) = [0 0] x1 + [0]                  
                                       [1 0]      [1]                  
                              p(c_8) = [0 0] x1 + [0]                  
                                       [0 2]      [1]                  
                              p(c_9) = [0]                             
                                       [1]                             
                             p(c_10) = [0]                             
                                       [0]                             
                             p(c_11) = [1]                             
                                       [2]                             
                             p(c_12) = [2]                             
                                       [0]                             
                             p(c_13) = [1 0] x1 + [0]                  
                                       [0 0]      [0]                  
                             p(c_14) = [1 0] x1 + [0 0] x2 + [0]       
                                       [0 0]      [1 1]      [1]       
                             p(c_15) = [0]                             
                                       [0]                             
                             p(c_16) = [1 0] x1 + [1 1] x2 + [0]       
                                       [0 0]      [0 0]      [0]       
                             p(c_17) = [0]                             
                                       [0]                             
                             p(c_18) = [0]                             
                                       [0]                             
                             p(c_19) = [0]                             
                                       [0]                             
                             p(c_20) = [0 0] x1 + [0]                  
                                       [0 2]      [2]                  
                             p(c_21) = [0 0] x1 + [0]                  
                                       [2 0]      [2]                  
                             p(c_22) = [0 0] x1 + [2]                  
                                       [1 0]      [2]                  
                             p(c_23) = [0]                             
                                       [1]                             
                             p(c_24) = [2]                             
                                       [2]                             
                             p(c_25) = [0]                             
                                       [1]                             
                             p(c_26) = [0]                             
                                       [0]                             
                             p(c_27) = [2]                             
                                       [1]                             
                             p(c_28) = [0 1] x1 + [0]                  
                                       [2 0]      [0]                  
                             p(c_29) = [0]                             
                                       [0]                             
                             p(c_30) = [2]                             
                                       [1]                             
                             p(c_31) = [1]                             
                                       [0]                             
                             p(c_32) = [2]                             
                                       [1]                             
                             p(c_33) = [0]                             
                                       [0]                             
                             p(c_34) = [0]                             
                                       [0]                             
                             p(c_35) = [0]                             
                                       [0]                             
                             p(c_36) = [0]                             
                                       [2]                             
                             p(c_37) = [0]                             
                                       [0]                             
                             p(c_38) = [1]                             
                                       [0]                             
                             p(c_39) = [0]                             
                                       [2]                             
                             p(c_40) = [0]                             
                                       [1]                             
                             p(c_41) = [1]                             
                                       [1]                             
                             p(c_42) = [0]                             
                                       [2]                             
                             p(c_43) = [1]                             
                                       [0]                             
                             p(c_44) = [0]                             
                                       [0]                             
                             p(c_45) = [2]                             
                                       [1]                             
                             p(c_46) = [2]                             
                                       [0]                             
                             p(c_47) = [0 1] x1 + [0]                  
                                       [1 0]      [0]                  
                             p(c_48) = [0]                             
                                       [0]                             
                             p(c_49) = [0 0] x1 + [1]                  
                                       [1 0]      [0]                  
                             p(c_50) = [1]                             
                                       [0]                             
                             p(c_51) = [0]                             
                                       [1]                             
                             p(c_52) = [0]                             
                                       [2]                             
                             p(c_53) = [2]                             
                                       [0]                             
                             p(c_54) = [2]                             
                                       [0]                             
                             p(c_55) = [2 1] x1 + [2]                  
                                       [1 0]      [1]                  
                             p(c_56) = [0]                             
                                       [0]                             
                             p(c_57) = [1]                             
                                       [2]                             
                             p(c_58) = [0]                             
                                       [1]                             
                             p(c_59) = [0]                             
                                       [0]                             
                             p(c_60) = [0]                             
                                       [0]                             
                             p(c_61) = [0]                             
                                       [1]                             
                             p(c_62) = [1 2] x1 + [0 0] x2 + [2        
                                       0] x3 + [0]                     
                                       [0 1]      [0 1]      [1        
                                       0]      [2]                     
                             p(c_63) = [0]                             
                                       [0]                             
                             p(c_64) = [2]                             
                                       [2]                             
                             p(c_65) = [0]                             
                                       [2]                             
                             p(c_66) = [0]                             
                                       [0]                             
                             p(c_67) = [0]                             
                                       [0]                             
                             p(c_68) = [1]                             
                                       [0]                             
                             p(c_69) = [0]                             
                                       [2]                             
                             p(c_70) = [1 0] x1 + [0 2] x3 + [1]       
                                       [1 0]      [0 2]      [0]       
                  
                  Following rules are strictly oriented:
                  quicksort#1#(::(@z,@zs)) = [0 0] @z + [0 2] @zs + [2]    
                                             [0 2]      [2 3]       [6]    
                                           > [0 0] @z + [0 2] @zs + [0]    
                                             [0 2]      [1 0]       [6]    
                                           = c_14(quicksort#2#(splitqs(@z  
                                                                      ,@zs)
                                                              ,@z)         
                                                 ,splitqs#(@z,@zs))        
                  
                  
                  Following rules are (at-least) weakly oriented:
                                  quicksort#(@l) =  [0 2] @l + [0]                  
                                                    [0 0]      [0]                  
                                                 >= [0 2] @l + [0]                  
                                                    [0 0]      [0]                  
                                                 =  c_13(quicksort#1#(@l))          
                  
                   quicksort#2#(tuple#2(@xs,@ys) =  [0 2] @xs + [0 2] @ys + [0      
                                            ,@z)    0] @z + [0]                     
                                                    [0 2]       [0 2]       [2      
                                                    2]      [0]                     
                                                 >= [0 2] @xs + [0 2] @ys + [0]     
                                                    [0 0]       [0 0]       [0]     
                                                 =  c_16(quicksort#(@xs)            
                                                        ,quicksort#(@ys))           
                  
                                    sortAll#(@l) =  [3 0] @l + [0]                  
                                                    [0 0]      [0]                  
                                                 >= [3 0] @l + [0]                  
                                                    [0 0]      [0]                  
                                                 =  sortAll#1#(@l)                  
                  
                          sortAll#1#(::(@x,@xs)) =  [0 3] @x + [3 0] @xs + [0]      
                                                    [0 0]      [0 0]       [0]      
                                                 >= [0 2] @x + [3 0] @xs + [0]      
                                                    [0 0]      [0 0]       [0]      
                                                 =  sortAll#2#(@x,@xs)              
                  
                  sortAll#2#(tuple#2(@vals,@key) =  [0 2] @vals + [3 0] @xs + [0]   
                                           ,@xs)    [0 0]         [0 0]       [0]   
                                                 >= [0 2] @vals + [0]               
                                                    [0 0]         [0]               
                                                 =  quicksort#(@vals)               
                  
                  sortAll#2#(tuple#2(@vals,@key) =  [0 2] @vals + [3 0] @xs + [0]   
                                           ,@xs)    [0 0]         [0 0]       [0]   
                                                 >= [3 0] @xs + [0]                 
                                                    [0 0]       [0]                 
                                                 =  sortAll#(@xs)                   
                  
                               splitAndSort#(@l) =  [2 3] @l + [2]                  
                                                    [0 0]      [0]                  
                                                 >= [0 3] @l + [0]                  
                                                    [0 0]      [0]                  
                                                 =  sortAll#(split(@l))             
                  
                                   insert(@x,@l) =  [1 0] @l + [1]                  
                                                    [0 1]      [1]                  
                                                 >= [1 0] @l + [1]                  
                                                    [0 1]      [1]                  
                                                 =  insert#1(@x,@l,@x)              
                  
                   insert#1(tuple#2(@valX,@keyX) =  [1 0] @l + [1]                  
                                             ,@l    [0 1]      [1]                  
                                            ,@x)                                    
                                                 >= [1 0] @l + [1]                  
                                                    [0 1]      [1]                  
                                                 =  insert#2(@l,@keyX,@valX,@x)     
                  
                            insert#2(::(@l1,@ls) =  [0 1] @l1 + [1 0] @ls + [1]     
                                          ,@keyX    [0 0]       [0 1]       [2]     
                                          ,@valX                                    
                                            ,@x)                                    
                                                 >= [0 1] @l1 + [1 0] @ls + [1]     
                                                    [0 0]       [0 1]       [2]     
                                                 =  insert#3(@l1,@keyX,@ls,@valX,@x)
                  
                  insert#2(nil(),@keyX,@valX,@x) =  [1]                             
                                                    [1]                             
                                                 >= [1]                             
                                                    [1]                             
                                                 =  ::(tuple#2(::(@valX,nil())      
                                                              ,@keyX)               
                                                      ,nil())                       
                  
                  insert#3(tuple#2(@vals1,@key1) =  [1 0] @ls + [0 1] @vals1 + [1]  
                                          ,@keyX    [0 1]       [0 0]          [2]  
                                            ,@ls                                    
                                          ,@valX                                    
                                            ,@x)                                    
                                                 >= [1 0] @ls + [0 1] @vals1 + [1]  
                                                    [0 1]       [0 0]          [2]  
                                                 =  insert#4(#equal(@key1,@keyX)    
                                                            ,@key1                  
                                                            ,@ls                    
                                                            ,@valX                  
                                                            ,@vals1                 
                                                            ,@x)                    
                  
                               insert#4(#false() =  [1 0] @ls + [0 1] @vals1 + [1]  
                                          ,@key1    [0 1]       [0 0]          [2]  
                                            ,@ls                                    
                                          ,@valX                                    
                                         ,@vals1                                    
                                            ,@x)                                    
                                                 >= [1 0] @ls + [0 1] @vals1 + [1]  
                                                    [0 1]       [0 0]          [2]  
                                                 =  ::(tuple#2(@vals1,@key1)        
                                                      ,insert(@x,@ls))              
                  
                                insert#4(#true() =  [1 0] @ls + [0 1] @vals1 + [1]  
                                          ,@key1    [0 1]       [0 0]          [2]  
                                            ,@ls                                    
                                          ,@valX                                    
                                         ,@vals1                                    
                                            ,@x)                                    
                                                 >= [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]       [1]                 
                                                 =  insert(@x,split(@xs))           
                  
                                  split#1(nil()) =  [0]                             
                                                    [0]                             
                                                 >= [0]                             
                                                    [0]                             
                                                 =  nil()                           
                  
                              splitqs(@pivot,@l) =  [0 1] @l + [0 0] @pivot + [0]   
                                                    [1 1]      [1 0]          [0]   
                                                 >= [0 1] @l + [0 0] @pivot + [0]   
                                                    [0 1]      [1 0]          [0]   
                                                 =  splitqs#1(@l,@pivot)            
                  
                    splitqs#1(::(@x,@xs),@pivot) =  [0 0] @pivot + [0 1] @xs + [1]  
                                                    [1 0]          [0 1]       [1]  
                                                 >= [0 0] @pivot + [0 1] @xs + [1]  
                                                    [1 0]          [0 1]       [1]  
                                                 =  splitqs#2(splitqs(@pivot,@xs)   
                                                             ,@pivot                
                                                             ,@x)                   
                  
                         splitqs#1(nil(),@pivot) =  [0 0] @pivot + [0]              
                                                    [1 0]          [0]              
                                                 >= [0]                             
                                                    [0]                             
                                                 =  tuple#2(nil(),nil())            
                  
                      splitqs#2(tuple#2(@ls,@rs) =  [0 1] @ls + [0 0] @pivot + [0   
                                         ,@pivot    1] @rs + [1]                    
                                            ,@x)    [0 1]       [1 0]          [0   
                                                    1]       [1]                    
                                                 >= [0 1] @ls + [0 1] @rs + [1]     
                                                    [0 1]       [0 0]       [1]     
                                                 =  splitqs#3(#greater(@x,@pivot)   
                                                             ,@ls                   
                                                             ,@rs                   
                                                             ,@x)                   
                  
                  splitqs#3(#false(),@ls,@rs,@x) =  [0 1] @ls + [0 1] @rs + [1]     
                                                    [0 1]       [0 0]       [1]     
                                                 >= [0 1] @ls + [0 1] @rs + [1]     
                                                    [0 1]       [0 0]       [1]     
                                                 =  tuple#2(::(@x,@ls),@rs)         
                  
                   splitqs#3(#true(),@ls,@rs,@x) =  [0 1] @ls + [0 1] @rs + [1]     
                                                    [0 1]       [0 0]       [1]     
                                                 >= [0 1] @ls + [0 1] @rs + [1]     
                                                    [0 1]       [0 0]       [0]     
                                                 =  tuple#2(@ls,::(@x,@rs))         
                  
            *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.1.1 Progress [(?,O(1))]  ***
                Considered Problem:
                  Strict DP Rules:
                    quicksort#(@l) -> c_13(quicksort#1#(@l))
                    quicksort#2#(tuple#2(@xs,@ys),@z) -> c_16(quicksort#(@xs),quicksort#(@ys))
                  Strict TRS Rules:
                    
                  Weak DP Rules:
                    quicksort#1#(::(@z,@zs)) -> c_14(quicksort#2#(splitqs(@z,@zs),@z),splitqs#(@z,@zs))
                    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 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))
                  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
                    basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
                Applied Processor:
                  Assumption
                Proof:
                  ()
            
            *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.2 Progress [(?,O(n^2))]  ***
                Considered Problem:
                  Strict DP Rules:
                    quicksort#(@l) -> c_13(quicksort#1#(@l))
                  Strict TRS Rules:
                    
                  Weak DP Rules:
                    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 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))
                  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
                    basic terms: {#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#}/{#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, greedy = NoGreedy}}
                Proof:
                  We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} 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, greedy = NoGreedy}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.
              *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.2.1 Progress [(?,O(n^2))]  ***
                  Considered Problem:
                    Strict DP Rules:
                      quicksort#(@l) -> c_13(quicksort#1#(@l))
                    Strict TRS Rules:
                      
                    Weak DP Rules:
                      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 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))
                    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
                      basic terms: {#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#}/{#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 any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
                  Proof:
                    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:
                      {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]                      
                                         [3]                      
                                p(#EQ) = [0]                      
                                         [0]                      
                                p(#GT) = [0]                      
                                         [0]                      
                                p(#LT) = [0]                      
                                         [0]                      
                               p(#and) = [1 2] x1 + [0]           
                                         [0 3]      [0]           
                              p(#ckgt) = [0]                      
                                         [3]                      
                           p(#compare) = [1 0] x1 + [0 0] x2 + [2]
                                         [0 1]      [1 1]      [0]
                                p(#eq) = [0]                      
                                         [1]                      
                             p(#equal) = [0]                      
                                         [0]                      
                             p(#false) = [2]                      
                                         [0]                      
                           p(#greater) = [0]                      
                                         [0]                      
                               p(#neg) = [0 0] x1 + [1]           
                                         [0 1]      [2]           
                               p(#pos) = [1 0] x1 + [0]           
                                         [0 1]      [0]           
                                 p(#s) = [1 0] x1 + [2]           
                                         [0 0]      [0]           
                              p(#true) = [0]                      
                                         [0]                      
                                 p(::) = [0 3] x1 + [1 0] x2 + [0]
                                         [0 0]      [0 1]      [1]
                             p(append) = [1]                      
                                         [2]                      
                           p(append#1) = [0 2] x1 + [1 0] x2 + [1]
                                         [2 0]      [1 1]      [1]
                             p(insert) = [1 0] x2 + [3]           
                                         [0 1]      [1]           
                           p(insert#1) = [1 0] x2 + [3]           
                                         [0 1]      [1]           
                           p(insert#2) = [1 0] x1 + [3]           
                                         [0 1]      [1]           
                           p(insert#3) = [0 3] x1 + [1 0] x3 + [3]
                                         [0 0]      [0 1]      [2]
                           p(insert#4) = [1 0] x3 + [0 3] x5 + [3]
                                         [0 1]      [0 0]      [2]
                                p(nil) = [0]                      
                                         [0]                      
                          p(quicksort) = [2 0] x1 + [0]           
                                         [0 0]      [0]           
                        p(quicksort#1) = [0]                      
                                         [2]                      
                        p(quicksort#2) = [2]                      
                                         [0]                      
                            p(sortAll) = [1 0] x1 + [2]           
                                         [0 0]      [1]           
                          p(sortAll#1) = [0]                      
                                         [2]                      
                          p(sortAll#2) = [0]                      
                                         [1]                      
                              p(split) = [0 3] x1 + [0]           
                                         [0 1]      [0]           
                            p(split#1) = [0 3] x1 + [0]           
                                         [0 1]      [0]           
                       p(splitAndSort) = [0 0] x1 + [2]           
                                         [0 2]      [0]           
                            p(splitqs) = [0 0] x1 + [0 3] x2 + [0]
                                         [0 2]      [0 2]      [0]
                          p(splitqs#1) = [0 3] x1 + [0 0] x2 + [0]
                                         [0 2]      [0 2]      [0]
                          p(splitqs#2) = [1 0] x1 + [3]           
                                         [0 1]      [2]           
                          p(splitqs#3) = [0 3] x2 + [0 3] x3 + [3]
                                         [0 1]      [0 0]      [1]
                            p(tuple#2) = [0 3] x1 + [0 3] x2 + [0]
                                         [0 1]      [0 0]      [0]
                              p(#and#) = [0 0] x1 + [0]           
                                         [1 0]      [0]           
                             p(#ckgt#) = [0 2] x1 + [0]           
                                         [1 0]      [0]           
                          p(#compare#) = [2 0] x2 + [0]           
                                         [2 2]      [2]           
                               p(#eq#) = [1]                      
                                         [2]                      
                            p(#equal#) = [1 1] x2 + [0]           
                                         [0 0]      [0]           
                          p(#greater#) = [1 0] x1 + [0]           
                                         [0 1]      [2]           
                            p(append#) = [0 0] x2 + [0]           
                                         [2 2]      [0]           
                          p(append#1#) = [0 1] x1 + [0 1] x2 + [2]
                                         [1 0]      [0 0]      [0]
                            p(insert#) = [0 0] x2 + [0]           
                                         [0 1]      [2]           
                          p(insert#1#) = [0 0] x1 + [2]           
                                         [1 0]      [0]           
                          p(insert#2#) = [0 0] x1 + [0 0] x3 + [1]
                                         [0 2]      [0 1]      [1]
                          p(insert#3#) = [2 2] x5 + [0]           
                                         [0 1]      [0]           
                          p(insert#4#) = [0 2] x1 + [1 2] x4 + [1]
                                         [2 0]      [0 2]      [0]
                         p(quicksort#) = [0 3] x1 + [1]           
                                         [0 0]      [0]           
                       p(quicksort#1#) = [0 3] x1 + [0]           
                                         [2 1]      [3]           
                       p(quicksort#2#) = [1 0] x1 + [2]           
                                         [0 0]      [2]           
                           p(sortAll#) = [1 0] x1 + [2]           
                                         [0 0]      [0]           
                         p(sortAll#1#) = [1 0] x1 + [2]           
                                         [0 0]      [0]           
                         p(sortAll#2#) = [0 3] x1 + [1 0] x2 + [2]
                                         [0 0]      [0 0]      [0]
                             p(split#) = [0 0] x1 + [1]           
                                         [1 0]      [0]           
                           p(split#1#) = [0]                      
                                         [0]                      
                      p(splitAndSort#) = [0 3] x1 + [2]           
                                         [2 2]      [1]           
                           p(splitqs#) = [0 2] x1 + [2 0] x2 + [0]
                                         [0 2]      [0 0]      [1]
                         p(splitqs#1#) = [0]                      
                                         [1]                      
                         p(splitqs#2#) = [2 1] x1 + [0 0] x3 + [0]
                                         [0 2]      [0 2]      [1]
                         p(splitqs#3#) = [1 2] x1 + [0 2] x3 + [1 
                                         0] x4 + [0]              
                                         [0 2]      [2 1]      [1 
                                         2]      [1]              
                                p(c_1) = [2 0] x1 + [2]           
                                         [2 0]      [0]           
                                p(c_2) = [2 0] x1 + [0 0] x2 + [1]
                                         [1 0]      [2 0]      [0]
                                p(c_3) = [0 0] x1 + [0]           
                                         [2 0]      [0]           
                                p(c_4) = [1]                      
                                         [1]                      
                                p(c_5) = [0]                      
                                         [2]                      
                                p(c_6) = [0]                      
                                         [1]                      
                                p(c_7) = [1]                      
                                         [0]                      
                                p(c_8) = [0]                      
                                         [0]                      
                                p(c_9) = [0]                      
                                         [2]                      
                               p(c_10) = [0 1] x1 + [2]           
                                         [0 2]      [0]           
                               p(c_11) = [0 0] x1 + [0]           
                                         [0 1]      [0]           
                               p(c_12) = [0]                      
                                         [0]                      
                               p(c_13) = [1 0] x1 + [0]           
                                         [0 0]      [0]           
                               p(c_14) = [1 0] x1 + [0 0] x2 + [1]
                                         [0 0]      [1 2]      [0]
                               p(c_15) = [2]                      
                                         [1]                      
                               p(c_16) = [1 0] x1 + [1 1] x2 + [0]
                                         [0 0]      [0 1]      [2]
                               p(c_17) = [0 0] x1 + [0]           
                                         [2 1]      [0]           
                               p(c_18) = [0 0] x1 + [2]           
                                         [0 2]      [0]           
                               p(c_19) = [2]                      
                                         [0]                      
                               p(c_20) = [0 0] x1 + [2 2] x2 + [2]
                                         [0 1]      [0 2]      [2]
                               p(c_21) = [1]                      
                                         [0]                      
                               p(c_22) = [2 0] x1 + [2]           
                                         [0 0]      [2]           
                               p(c_23) = [2]                      
                                         [0]                      
                               p(c_24) = [1 0] x1 + [0]           
                                         [0 2]      [0]           
                               p(c_25) = [0]                      
                                         [1]                      
                               p(c_26) = [0]                      
                                         [1]                      
                               p(c_27) = [0]                      
                                         [0]                      
                               p(c_28) = [0]                      
                                         [1]                      
                               p(c_29) = [0]                      
                                         [1]                      
                               p(c_30) = [0]                      
                                         [0]                      
                               p(c_31) = [1]                      
                                         [0]                      
                               p(c_32) = [2]                      
                                         [2]                      
                               p(c_33) = [2]                      
                                         [0]                      
                               p(c_34) = [0]                      
                                         [0]                      
                               p(c_35) = [1]                      
                                         [0]                      
                               p(c_36) = [2]                      
                                         [0]                      
                               p(c_37) = [0]                      
                                         [1]                      
                               p(c_38) = [1]                      
                                         [1]                      
                               p(c_39) = [0]                      
                                         [2]                      
                               p(c_40) = [2]                      
                                         [1]                      
                               p(c_41) = [1]                      
                                         [1]                      
                               p(c_42) = [1]                      
                                         [0]                      
                               p(c_43) = [0 0] x1 + [1]           
                                         [2 0]      [1]           
                               p(c_44) = [0]                      
                                         [2]                      
                               p(c_45) = [0]                      
                                         [0]                      
                               p(c_46) = [1]                      
                                         [0]                      
                               p(c_47) = [0 0] x1 + [0]           
                                         [1 2]      [2]           
                               p(c_48) = [0]                      
                                         [1]                      
                               p(c_49) = [0]                      
                                         [0]                      
                               p(c_50) = [1]                      
                                         [2]                      
                               p(c_51) = [0]                      
                                         [0]                      
                               p(c_52) = [0]                      
                                         [0]                      
                               p(c_53) = [0]                      
                                         [0]                      
                               p(c_54) = [1]                      
                                         [0]                      
                               p(c_55) = [0 2] x1 + [0]           
                                         [2 0]      [0]           
                               p(c_56) = [2]                      
                                         [0]                      
                               p(c_57) = [0]                      
                                         [1]                      
                               p(c_58) = [0]                      
                                         [0]                      
                               p(c_59) = [0]                      
                                         [2]                      
                               p(c_60) = [1]                      
                                         [1]                      
                               p(c_61) = [0]                      
                                         [2]                      
                               p(c_62) = [2 0] x1 + [2 0] x2 + [0]
                                         [0 0]      [2 2]      [0]
                               p(c_63) = [0]                      
                                         [1]                      
                               p(c_64) = [1]                      
                                         [2]                      
                               p(c_65) = [0]                      
                                         [0]                      
                               p(c_66) = [1]                      
                                         [0]                      
                               p(c_67) = [0]                      
                                         [1]                      
                               p(c_68) = [1]                      
                                         [1]                      
                               p(c_69) = [2]                      
                                         [0]                      
                               p(c_70) = [0 0] x1 + [0 2] x3 + [0]
                                         [0 1]      [1 1]      [2]
                    
                    Following rules are strictly oriented:
                    quicksort#(@l) = [0 3] @l + [1]        
                                     [0 0]      [0]        
                                   > [0 3] @l + [0]        
                                     [0 0]      [0]        
                                   = c_13(quicksort#1#(@l))
                    
                    
                    Following rules are (at-least) weakly oriented:
                          quicksort#1#(::(@z,@zs)) =  [0 0] @z + [0 3] @zs + [3]      
                                                      [0 6]      [2 1]       [4]      
                                                   >= [0 0] @z + [0 3] @zs + [3]      
                                                      [0 6]      [2 0]       [2]      
                                                   =  c_14(quicksort#2#(splitqs(@z    
                                                                               ,@zs)  
                                                                       ,@z)           
                                                          ,splitqs#(@z,@zs))          
                    
                     quicksort#2#(tuple#2(@xs,@ys) =  [0 3] @xs + [0 3] @ys + [2]     
                                              ,@z)    [0 0]       [0 0]       [2]     
                                                   >= [0 3] @xs + [0 3] @ys + [2]     
                                                      [0 0]       [0 0]       [2]     
                                                   =  c_16(quicksort#(@xs)            
                                                          ,quicksort#(@ys))           
                    
                                      sortAll#(@l) =  [1 0] @l + [2]                  
                                                      [0 0]      [0]                  
                                                   >= [1 0] @l + [2]                  
                                                      [0 0]      [0]                  
                                                   =  sortAll#1#(@l)                  
                    
                            sortAll#1#(::(@x,@xs)) =  [0 3] @x + [1 0] @xs + [2]      
                                                      [0 0]      [0 0]       [0]      
                                                   >= [0 3] @x + [1 0] @xs + [2]      
                                                      [0 0]      [0 0]       [0]      
                                                   =  sortAll#2#(@x,@xs)              
                    
                    sortAll#2#(tuple#2(@vals,@key) =  [0 3] @vals + [1 0] @xs + [2]   
                                             ,@xs)    [0 0]         [0 0]       [0]   
                                                   >= [0 3] @vals + [1]               
                                                      [0 0]         [0]               
                                                   =  quicksort#(@vals)               
                    
                    sortAll#2#(tuple#2(@vals,@key) =  [0 3] @vals + [1 0] @xs + [2]   
                                             ,@xs)    [0 0]         [0 0]       [0]   
                                                   >= [1 0] @xs + [2]                 
                                                      [0 0]       [0]                 
                                                   =  sortAll#(@xs)                   
                    
                                 splitAndSort#(@l) =  [0 3] @l + [2]                  
                                                      [2 2]      [1]                  
                                                   >= [0 3] @l + [2]                  
                                                      [0 0]      [0]                  
                                                   =  sortAll#(split(@l))             
                    
                                     insert(@x,@l) =  [1 0] @l + [3]                  
                                                      [0 1]      [1]                  
                                                   >= [1 0] @l + [3]                  
                                                      [0 1]      [1]                  
                                                   =  insert#1(@x,@l,@x)              
                    
                     insert#1(tuple#2(@valX,@keyX) =  [1 0] @l + [3]                  
                                               ,@l    [0 1]      [1]                  
                                              ,@x)                                    
                                                   >= [1 0] @l + [3]                  
                                                      [0 1]      [1]                  
                                                   =  insert#2(@l,@keyX,@valX,@x)     
                    
                              insert#2(::(@l1,@ls) =  [0 3] @l1 + [1 0] @ls + [3]     
                                            ,@keyX    [0 0]       [0 1]       [2]     
                                            ,@valX                                    
                                              ,@x)                                    
                                                   >= [0 3] @l1 + [1 0] @ls + [3]     
                                                      [0 0]       [0 1]       [2]     
                                                   =  insert#3(@l1,@keyX,@ls,@valX,@x)
                    
                    insert#2(nil(),@keyX,@valX,@x) =  [3]                             
                                                      [1]                             
                                                   >= [3]                             
                                                      [1]                             
                                                   =  ::(tuple#2(::(@valX,nil())      
                                                                ,@keyX)               
                                                        ,nil())                       
                    
                    insert#3(tuple#2(@vals1,@key1) =  [1 0] @ls + [0 3] @vals1 + [3]  
                                            ,@keyX    [0 1]       [0 0]          [2]  
                                              ,@ls                                    
                                            ,@valX                                    
                                              ,@x)                                    
                                                   >= [1 0] @ls + [0 3] @vals1 + [3]  
                                                      [0 1]       [0 0]          [2]  
                                                   =  insert#4(#equal(@key1,@keyX)    
                                                              ,@key1                  
                                                              ,@ls                    
                                                              ,@valX                  
                                                              ,@vals1                 
                                                              ,@x)                    
                    
                                 insert#4(#false() =  [1 0] @ls + [0 3] @vals1 + [3]  
                                            ,@key1    [0 1]       [0 0]          [2]  
                                              ,@ls                                    
                                            ,@valX                                    
                                           ,@vals1                                    
                                              ,@x)                                    
                                                   >= [1 0] @ls + [0 3] @vals1 + [3]  
                                                      [0 1]       [0 0]          [2]  
                                                   =  ::(tuple#2(@vals1,@key1)        
                                                        ,insert(@x,@ls))              
                    
                                  insert#4(#true() =  [1 0] @ls + [0 3] @vals1 + [3]  
                                            ,@key1    [0 1]       [0 0]          [2]  
                                              ,@ls                                    
                                            ,@valX                                    
                                           ,@vals1                                    
                                              ,@x)                                    
                                                   >= [1 0] @ls + [0 3] @vals1 + [3]  
                                                      [0 1]       [0 0]          [1]  
                                                   =  ::(tuple#2(::(@valX,@vals1)     
                                                                ,@key1)               
                                                        ,@ls)                         
                    
                                         split(@l) =  [0 3] @l + [0]                  
                                                      [0 1]      [0]                  
                                                   >= [0 3] @l + [0]                  
                                                      [0 1]      [0]                  
                                                   =  split#1(@l)                     
                    
                               split#1(::(@x,@xs)) =  [0 3] @xs + [3]                 
                                                      [0 1]       [1]                 
                                                   >= [0 3] @xs + [3]                 
                                                      [0 1]       [1]                 
                                                   =  insert(@x,split(@xs))           
                    
                                    split#1(nil()) =  [0]                             
                                                      [0]                             
                                                   >= [0]                             
                                                      [0]                             
                                                   =  nil()                           
                    
                                splitqs(@pivot,@l) =  [0 3] @l + [0 0] @pivot + [0]   
                                                      [0 2]      [0 2]          [0]   
                                                   >= [0 3] @l + [0 0] @pivot + [0]   
                                                      [0 2]      [0 2]          [0]   
                                                   =  splitqs#1(@l,@pivot)            
                    
                      splitqs#1(::(@x,@xs),@pivot) =  [0 0] @pivot + [0 3] @xs + [3]  
                                                      [0 2]          [0 2]       [2]  
                                                   >= [0 0] @pivot + [0 3] @xs + [3]  
                                                      [0 2]          [0 2]       [2]  
                                                   =  splitqs#2(splitqs(@pivot,@xs)   
                                                               ,@pivot                
                                                               ,@x)                   
                    
                           splitqs#1(nil(),@pivot) =  [0 0] @pivot + [0]              
                                                      [0 2]          [0]              
                                                   >= [0]                             
                                                      [0]                             
                                                   =  tuple#2(nil(),nil())            
                    
                        splitqs#2(tuple#2(@ls,@rs) =  [0 3] @ls + [0 3] @rs + [3]     
                                           ,@pivot    [0 1]       [0 0]       [2]     
                                              ,@x)                                    
                                                   >= [0 3] @ls + [0 3] @rs + [3]     
                                                      [0 1]       [0 0]       [1]     
                                                   =  splitqs#3(#greater(@x,@pivot)   
                                                               ,@ls                   
                                                               ,@rs                   
                                                               ,@x)                   
                    
                    splitqs#3(#false(),@ls,@rs,@x) =  [0 3] @ls + [0 3] @rs + [3]     
                                                      [0 1]       [0 0]       [1]     
                                                   >= [0 3] @ls + [0 3] @rs + [3]     
                                                      [0 1]       [0 0]       [1]     
                                                   =  tuple#2(::(@x,@ls),@rs)         
                    
                     splitqs#3(#true(),@ls,@rs,@x) =  [0 3] @ls + [0 3] @rs + [3]     
                                                      [0 1]       [0 0]       [1]     
                                                   >= [0 3] @ls + [0 3] @rs + [3]     
                                                      [0 1]       [0 0]       [0]     
                                                   =  tuple#2(@ls,::(@x,@rs))         
                    
              *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.2.1.1 Progress [(?,O(1))]  ***
                  Considered Problem:
                    Strict DP Rules:
                      
                    Strict TRS Rules:
                      
                    Weak DP Rules:
                      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 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))
                    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
                      basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
                  Applied Processor:
                    Assumption
                  Proof:
                    ()
              
              *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.2.2 Progress [(O(1),O(1))]  ***
                  Considered Problem:
                    Strict DP Rules:
                      
                    Strict TRS Rules:
                      
                    Weak DP Rules:
                      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 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))
                    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
                      basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
                  Applied Processor:
                    RemoveWeakSuffixes
                  Proof:
                    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))                 
              *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.2.2.1 Progress [(O(1),O(1))]  ***
                  Considered Problem:
                    Strict DP Rules:
                      
                    Strict TRS Rules:
                      
                    Weak DP Rules:
                      
                    Weak TRS 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))
                    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
                      basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
                  Applied Processor:
                    EmptyProcessor
                  Proof:
                    The problem is already closed. The intended complexity is O(1).
              
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.2 Progress [(?,O(n^2))]  ***
              Considered Problem:
                Strict DP Rules:
                  splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
                  splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
                Strict TRS Rules:
                  
                Weak DP Rules:
                  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 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))
                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
                  basic terms: {#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#}/{#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, greedy = NoGreedy}}
              Proof:
                We first use the processor NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} 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 = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy}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.
            *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.2.1 Progress [(?,O(n^2))]  ***
                Considered Problem:
                  Strict DP Rules:
                    splitqs#(@pivot,@l) -> c_25(splitqs#1#(@l,@pivot))
                    splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
                  Strict TRS Rules:
                    
                  Weak DP Rules:
                    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 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))
                  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
                    basic terms: {#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#}/{#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 any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
                Proof:
                  We apply a matrix interpretation of kind constructor based matrix interpretation:
                  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]                      
                                       [0]                      
                              p(#EQ) = [0]                      
                                       [2]                      
                              p(#GT) = [1]                      
                                       [0]                      
                              p(#LT) = [0]                      
                                       [0]                      
                             p(#and) = [0 1] x2 + [0]           
                                       [0 2]      [0]           
                            p(#ckgt) = [2 3] x1 + [1]           
                                       [2 0]      [0]           
                         p(#compare) = [0 1] x1 + [0 3] x2 + [1]
                                       [2 1]      [0 0]      [0]
                              p(#eq) = [0 2] x2 + [0]           
                                       [0 0]      [0]           
                           p(#equal) = [0]                      
                                       [0]                      
                           p(#false) = [0]                      
                                       [0]                      
                         p(#greater) = [0]                      
                                       [0]                      
                             p(#neg) = [1 0] x1 + [2]           
                                       [0 0]      [0]           
                             p(#pos) = [0 1] x1 + [0]           
                                       [0 1]      [0]           
                               p(#s) = [0 3] x1 + [0]           
                                       [0 1]      [1]           
                            p(#true) = [0]                      
                                       [0]                      
                               p(::) = [0 1] x1 + [1 0] x2 + [0]
                                       [0 0]      [0 1]      [1]
                           p(append) = [0 2] x1 + [0]           
                                       [2 2]      [0]           
                         p(append#1) = [0 0] x1 + [0]           
                                       [0 2]      [0]           
                           p(insert) = [1 0] x2 + [1]           
                                       [0 1]      [1]           
                         p(insert#1) = [1 0] x2 + [1]           
                                       [0 1]      [1]           
                         p(insert#2) = [1 0] x1 + [1]           
                                       [0 1]      [1]           
                         p(insert#3) = [0 1] x1 + [1 0] x3 + [1]
                                       [0 0]      [0 1]      [2]
                         p(insert#4) = [1 0] x3 + [0 1] x5 + [1]
                                       [0 1]      [0 0]      [2]
                              p(nil) = [0]                      
                                       [0]                      
                        p(quicksort) = [0 1] x1 + [0]           
                                       [0 2]      [1]           
                      p(quicksort#1) = [0]                      
                                       [1]                      
                      p(quicksort#2) = [1 1] x1 + [2 0] x2 + [1]
                                       [0 0]      [0 2]      [2]
                          p(sortAll) = [0 0] x1 + [2]           
                                       [0 1]      [1]           
                        p(sortAll#1) = [1]                      
                                       [0]                      
                        p(sortAll#2) = [2]                      
                                       [2]                      
                            p(split) = [0 1] x1 + [0]           
                                       [0 1]      [0]           
                          p(split#1) = [0 1] x1 + [0]           
                                       [0 1]      [0]           
                     p(splitAndSort) = [1 2] x1 + [0]           
                                       [2 2]      [0]           
                          p(splitqs) = [0 2] x2 + [0]           
                                       [0 2]      [1]           
                        p(splitqs#1) = [0 2] x1 + [0]           
                                       [0 2]      [1]           
                        p(splitqs#2) = [1 0] x1 + [2]           
                                       [1 0]      [2]           
                        p(splitqs#3) = [0 2] x2 + [0 2] x3 + [2]
                                       [0 1]      [0 1]      [2]
                          p(tuple#2) = [0 2] x1 + [0 2] x2 + [0]
                                       [0 1]      [0 0]      [0]
                            p(#and#) = [0 1] x1 + [0 1] x2 + [2]
                                       [0 0]      [1 2]      [0]
                           p(#ckgt#) = [2 2] x1 + [2]           
                                       [0 2]      [0]           
                        p(#compare#) = [2]                      
                                       [0]                      
                             p(#eq#) = [2 0] x2 + [0]           
                                       [0 2]      [0]           
                          p(#equal#) = [2]                      
                                       [0]                      
                        p(#greater#) = [0 0] x1 + [0]           
                                       [1 1]      [0]           
                          p(append#) = [1 2] x1 + [0 0] x2 + [0]
                                       [0 1]      [0 2]      [0]
                        p(append#1#) = [0 0] x2 + [0]           
                                       [0 2]      [0]           
                          p(insert#) = [0 0] x1 + [0 0] x2 + [0]
                                       [2 1]      [1 1]      [1]
                        p(insert#1#) = [1 2] x1 + [2 1] x2 + [1]
                                       [0 1]      [0 1]      [2]
                        p(insert#2#) = [0 1] x1 + [0 1] x3 + [2 
                                       0] x4 + [0]              
                                       [1 0]      [2 0]      [0 
                                       0]      [1]              
                        p(insert#3#) = [2 0] x1 + [1 0] x3 + [0 
                                       2] x4 + [0 0] x5 + [0]   
                                       [0 0]      [0 1]      [2 
                                       1]      [0 1]      [2]   
                        p(insert#4#) = [0 1] x1 + [0 0] x2 + [2 
                                       0] x3 + [0 0] x4 + [0    
                                       2] x5 + [2]              
                                       [1 2]      [1 0]      [0 
                                       1]      [0 1]      [2    
                                       2]      [2]              
                       p(quicksort#) = [0 2] x1 + [0]           
                                       [0 2]      [0]           
                     p(quicksort#1#) = [0 2] x1 + [0]           
                                       [0 2]      [0]           
                     p(quicksort#2#) = [1 0] x1 + [0]           
                                       [1 0]      [2]           
                         p(sortAll#) = [2 1] x1 + [0]           
                                       [2 0]      [1]           
                       p(sortAll#1#) = [2 1] x1 + [0]           
                                       [2 0]      [1]           
                       p(sortAll#2#) = [0 2] x1 + [2 1] x2 + [0]
                                       [0 2]      [2 0]      [1]
                           p(split#) = [0]                      
                                       [0]                      
                         p(split#1#) = [0]                      
                                       [2]                      
                    p(splitAndSort#) = [2 3] x1 + [0]           
                                       [2 2]      [1]           
                         p(splitqs#) = [0 2] x2 + [2]           
                                       [0 0]      [0]           
                       p(splitqs#1#) = [0 2] x1 + [0]           
                                       [0 0]      [1]           
                       p(splitqs#2#) = [1 0] x1 + [2 1] x2 + [0 
                                       1] x3 + [0]              
                                       [0 1]      [0 1]      [1 
                                       2]      [0]              
                       p(splitqs#3#) = [0 2] x2 + [0]           
                                       [0 0]      [0]           
                              p(c_1) = [2 0] x1 + [0]           
                                       [0 0]      [1]           
                              p(c_2) = [0 1] x1 + [1 2] x2 + [0]
                                       [0 1]      [0 1]      [0]
                              p(c_3) = [2 0] x1 + [1]           
                                       [1 1]      [0]           
                              p(c_4) = [0 0] x1 + [0]           
                                       [1 2]      [0]           
                              p(c_5) = [1]                      
                                       [2]                      
                              p(c_6) = [1 1] x1 + [1]           
                                       [0 0]      [2]           
                              p(c_7) = [2]                      
                                       [1]                      
                              p(c_8) = [0 0] x1 + [0]           
                                       [2 0]      [0]           
                              p(c_9) = [0]                      
                                       [2]                      
                             p(c_10) = [0 0] x1 + [2]           
                                       [1 0]      [0]           
                             p(c_11) = [0]                      
                                       [0]                      
                             p(c_12) = [0]                      
                                       [0]                      
                             p(c_13) = [0 2] x1 + [2]           
                                       [0 0]      [0]           
                             p(c_14) = [0 0] x2 + [0]           
                                       [0 1]      [0]           
                             p(c_15) = [0]                      
                                       [0]                      
                             p(c_16) = [0 0] x2 + [0]           
                                       [2 0]      [0]           
                             p(c_17) = [0 0] x1 + [0]           
                                       [2 0]      [0]           
                             p(c_18) = [2 2] x1 + [2]           
                                       [0 0]      [0]           
                             p(c_19) = [2]                      
                                       [0]                      
                             p(c_20) = [0 1] x1 + [2 1] x2 + [0]
                                       [0 1]      [0 0]      [0]
                             p(c_21) = [0 0] x1 + [0]           
                                       [1 1]      [1]           
                             p(c_22) = [0]                      
                                       [0]                      
                             p(c_23) = [0]                      
                                       [0]                      
                             p(c_24) = [1]                      
                                       [0]                      
                             p(c_25) = [1 0] x1 + [0]           
                                       [0 0]      [0]           
                             p(c_26) = [1 0] x1 + [0]           
                                       [0 1]      [0]           
                             p(c_27) = [2]                      
                                       [1]                      
                             p(c_28) = [0]                      
                                       [0]                      
                             p(c_29) = [1]                      
                                       [2]                      
                             p(c_30) = [0]                      
                                       [0]                      
                             p(c_31) = [0]                      
                                       [0]                      
                             p(c_32) = [0]                      
                                       [2]                      
                             p(c_33) = [0]                      
                                       [1]                      
                             p(c_34) = [0]                      
                                       [2]                      
                             p(c_35) = [1]                      
                                       [1]                      
                             p(c_36) = [0]                      
                                       [0]                      
                             p(c_37) = [1]                      
                                       [0]                      
                             p(c_38) = [0]                      
                                       [1]                      
                             p(c_39) = [2]                      
                                       [0]                      
                             p(c_40) = [0]                      
                                       [0]                      
                             p(c_41) = [2]                      
                                       [1]                      
                             p(c_42) = [0]                      
                                       [2]                      
                             p(c_43) = [1 0] x1 + [1]           
                                       [1 0]      [0]           
                             p(c_44) = [1]                      
                                       [2]                      
                             p(c_45) = [0]                      
                                       [0]                      
                             p(c_46) = [2]                      
                                       [0]                      
                             p(c_47) = [2 0] x1 + [0]           
                                       [1 0]      [1]           
                             p(c_48) = [1]                      
                                       [1]                      
                             p(c_49) = [0]                      
                                       [0]                      
                             p(c_50) = [1]                      
                                       [2]                      
                             p(c_51) = [0]                      
                                       [0]                      
                             p(c_52) = [1]                      
                                       [0]                      
                             p(c_53) = [0]                      
                                       [0]                      
                             p(c_54) = [1]                      
                                       [0]                      
                             p(c_55) = [1 2] x1 + [1]           
                                       [0 0]      [0]           
                             p(c_56) = [2]                      
                                       [1]                      
                             p(c_57) = [0]                      
                                       [2]                      
                             p(c_58) = [1]                      
                                       [2]                      
                             p(c_59) = [0 1] x1 + [0]           
                                       [0 0]      [2]           
                             p(c_60) = [1]                      
                                       [1]                      
                             p(c_61) = [0 0] x1 + [0]           
                                       [0 2]      [1]           
                             p(c_62) = [2]                      
                                       [0]                      
                             p(c_63) = [0]                      
                                       [0]                      
                             p(c_64) = [2]                      
                                       [0]                      
                             p(c_65) = [0]                      
                                       [1]                      
                             p(c_66) = [1]                      
                                       [1]                      
                             p(c_67) = [0]                      
                                       [0]                      
                             p(c_68) = [2]                      
                                       [0]                      
                             p(c_69) = [1]                      
                                       [1]                      
                             p(c_70) = [2 0] x1 + [2 2] x3 + [0]
                                       [0 2]      [2 0]      [1]
                  
                  Following rules are strictly oriented:
                  splitqs#(@pivot,@l) = [0 2] @l + [2]             
                                        [0 0]      [0]             
                                      > [0 2] @l + [0]             
                                        [0 0]      [0]             
                                      = c_25(splitqs#1#(@l,@pivot))
                  
                  
                  Following rules are (at-least) weakly oriented:
                                  quicksort#(@l) =  [0 2] @l + [0]                  
                                                    [0 2]      [0]                  
                                                 >= [0 2] @l + [0]                  
                                                    [0 2]      [0]                  
                                                 =  quicksort#1#(@l)                
                  
                        quicksort#1#(::(@z,@zs)) =  [0 2] @zs + [2]                 
                                                    [0 2]       [2]                 
                                                 >= [0 2] @zs + [0]                 
                                                    [0 2]       [2]                 
                                                 =  quicksort#2#(splitqs(@z,@zs),@z)
                  
                        quicksort#1#(::(@z,@zs)) =  [0 2] @zs + [2]                 
                                                    [0 2]       [2]                 
                                                 >= [0 2] @zs + [2]                 
                                                    [0 0]       [0]                 
                                                 =  splitqs#(@z,@zs)                
                  
                   quicksort#2#(tuple#2(@xs,@ys) =  [0 2] @xs + [0 2] @ys + [0]     
                                            ,@z)    [0 2]       [0 2]       [2]     
                                                 >= [0 2] @xs + [0]                 
                                                    [0 2]       [0]                 
                                                 =  quicksort#(@xs)                 
                  
                   quicksort#2#(tuple#2(@xs,@ys) =  [0 2] @xs + [0 2] @ys + [0]     
                                            ,@z)    [0 2]       [0 2]       [2]     
                                                 >= [0 2] @ys + [0]                 
                                                    [0 2]       [0]                 
                                                 =  quicksort#(@ys)                 
                  
                                    sortAll#(@l) =  [2 1] @l + [0]                  
                                                    [2 0]      [1]                  
                                                 >= [2 1] @l + [0]                  
                                                    [2 0]      [1]                  
                                                 =  sortAll#1#(@l)                  
                  
                          sortAll#1#(::(@x,@xs)) =  [0 2] @x + [2 1] @xs + [1]      
                                                    [0 2]      [2 0]       [1]      
                                                 >= [0 2] @x + [2 1] @xs + [0]      
                                                    [0 2]      [2 0]       [1]      
                                                 =  sortAll#2#(@x,@xs)              
                  
                  sortAll#2#(tuple#2(@vals,@key) =  [0 2] @vals + [2 1] @xs + [0]   
                                           ,@xs)    [0 2]         [2 0]       [1]   
                                                 >= [0 2] @vals + [0]               
                                                    [0 2]         [0]               
                                                 =  quicksort#(@vals)               
                  
                  sortAll#2#(tuple#2(@vals,@key) =  [0 2] @vals + [2 1] @xs + [0]   
                                           ,@xs)    [0 2]         [2 0]       [1]   
                                                 >= [2 1] @xs + [0]                 
                                                    [2 0]       [1]                 
                                                 =  sortAll#(@xs)                   
                  
                               splitAndSort#(@l) =  [2 3] @l + [0]                  
                                                    [2 2]      [1]                  
                                                 >= [0 3] @l + [0]                  
                                                    [0 2]      [1]                  
                                                 =  sortAll#(split(@l))             
                  
                   splitqs#1#(::(@x,@xs),@pivot) =  [0 2] @xs + [2]                 
                                                    [0 0]       [1]                 
                                                 >= [0 2] @xs + [2]                 
                                                    [0 0]       [0]                 
                                                 =  c_26(splitqs#(@pivot,@xs))      
                  
                                   insert(@x,@l) =  [1 0] @l + [1]                  
                                                    [0 1]      [1]                  
                                                 >= [1 0] @l + [1]                  
                                                    [0 1]      [1]                  
                                                 =  insert#1(@x,@l,@x)              
                  
                   insert#1(tuple#2(@valX,@keyX) =  [1 0] @l + [1]                  
                                             ,@l    [0 1]      [1]                  
                                            ,@x)                                    
                                                 >= [1 0] @l + [1]                  
                                                    [0 1]      [1]                  
                                                 =  insert#2(@l,@keyX,@valX,@x)     
                  
                            insert#2(::(@l1,@ls) =  [0 1] @l1 + [1 0] @ls + [1]     
                                          ,@keyX    [0 0]       [0 1]       [2]     
                                          ,@valX                                    
                                            ,@x)                                    
                                                 >= [0 1] @l1 + [1 0] @ls + [1]     
                                                    [0 0]       [0 1]       [2]     
                                                 =  insert#3(@l1,@keyX,@ls,@valX,@x)
                  
                  insert#2(nil(),@keyX,@valX,@x) =  [1]                             
                                                    [1]                             
                                                 >= [1]                             
                                                    [1]                             
                                                 =  ::(tuple#2(::(@valX,nil())      
                                                              ,@keyX)               
                                                      ,nil())                       
                  
                  insert#3(tuple#2(@vals1,@key1) =  [1 0] @ls + [0 1] @vals1 + [1]  
                                          ,@keyX    [0 1]       [0 0]          [2]  
                                            ,@ls                                    
                                          ,@valX                                    
                                            ,@x)                                    
                                                 >= [1 0] @ls + [0 1] @vals1 + [1]  
                                                    [0 1]       [0 0]          [2]  
                                                 =  insert#4(#equal(@key1,@keyX)    
                                                            ,@key1                  
                                                            ,@ls                    
                                                            ,@valX                  
                                                            ,@vals1                 
                                                            ,@x)                    
                  
                               insert#4(#false() =  [1 0] @ls + [0 1] @vals1 + [1]  
                                          ,@key1    [0 1]       [0 0]          [2]  
                                            ,@ls                                    
                                          ,@valX                                    
                                         ,@vals1                                    
                                            ,@x)                                    
                                                 >= [1 0] @ls + [0 1] @vals1 + [1]  
                                                    [0 1]       [0 0]          [2]  
                                                 =  ::(tuple#2(@vals1,@key1)        
                                                      ,insert(@x,@ls))              
                  
                                insert#4(#true() =  [1 0] @ls + [0 1] @vals1 + [1]  
                                          ,@key1    [0 1]       [0 0]          [2]  
                                            ,@ls                                    
                                          ,@valX                                    
                                         ,@vals1                                    
                                            ,@x)                                    
                                                 >= [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 1]      [0]                  
                                                 >= [0 1] @l + [0]                  
                                                    [0 1]      [0]                  
                                                 =  split#1(@l)                     
                  
                             split#1(::(@x,@xs)) =  [0 1] @xs + [1]                 
                                                    [0 1]       [1]                 
                                                 >= [0 1] @xs + [1]                 
                                                    [0 1]       [1]                 
                                                 =  insert(@x,split(@xs))           
                  
                                  split#1(nil()) =  [0]                             
                                                    [0]                             
                                                 >= [0]                             
                                                    [0]                             
                                                 =  nil()                           
                  
                              splitqs(@pivot,@l) =  [0 2] @l + [0]                  
                                                    [0 2]      [1]                  
                                                 >= [0 2] @l + [0]                  
                                                    [0 2]      [1]                  
                                                 =  splitqs#1(@l,@pivot)            
                  
                    splitqs#1(::(@x,@xs),@pivot) =  [0 2] @xs + [2]                 
                                                    [0 2]       [3]                 
                                                 >= [0 2] @xs + [2]                 
                                                    [0 2]       [2]                 
                                                 =  splitqs#2(splitqs(@pivot,@xs)   
                                                             ,@pivot                
                                                             ,@x)                   
                  
                         splitqs#1(nil(),@pivot) =  [0]                             
                                                    [1]                             
                                                 >= [0]                             
                                                    [0]                             
                                                 =  tuple#2(nil(),nil())            
                  
                      splitqs#2(tuple#2(@ls,@rs) =  [0 2] @ls + [0 2] @rs + [2]     
                                         ,@pivot    [0 2]       [0 2]       [2]     
                                            ,@x)                                    
                                                 >= [0 2] @ls + [0 2] @rs + [2]     
                                                    [0 1]       [0 1]       [2]     
                                                 =  splitqs#3(#greater(@x,@pivot)   
                                                             ,@ls                   
                                                             ,@rs                   
                                                             ,@x)                   
                  
                  splitqs#3(#false(),@ls,@rs,@x) =  [0 2] @ls + [0 2] @rs + [2]     
                                                    [0 1]       [0 1]       [2]     
                                                 >= [0 2] @ls + [0 2] @rs + [2]     
                                                    [0 1]       [0 0]       [1]     
                                                 =  tuple#2(::(@x,@ls),@rs)         
                  
                   splitqs#3(#true(),@ls,@rs,@x) =  [0 2] @ls + [0 2] @rs + [2]     
                                                    [0 1]       [0 1]       [2]     
                                                 >= [0 2] @ls + [0 2] @rs + [2]     
                                                    [0 1]       [0 0]       [0]     
                                                 =  tuple#2(@ls,::(@x,@rs))         
                  
            *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.2.1.1 Progress [(?,O(1))]  ***
                Considered Problem:
                  Strict DP Rules:
                    splitqs#1#(::(@x,@xs),@pivot) -> c_26(splitqs#(@pivot,@xs))
                  Strict TRS Rules:
                    
                  Weak DP Rules:
                    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 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))
                  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
                    basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
                Applied Processor:
                  Assumption
                Proof:
                  ()
            
            *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.2.2 Progress [(O(1),O(1))]  ***
                Considered Problem:
                  Strict DP Rules:
                    
                  Strict TRS Rules:
                    
                  Weak DP Rules:
                    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 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))
                  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
                    basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
                Applied Processor:
                  RemoveWeakSuffixes
                Proof:
                  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))        
            *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.2.2.2.1 Progress [(O(1),O(1))]  ***
                Considered Problem:
                  Strict DP Rules:
                    
                  Strict TRS Rules:
                    
                  Weak DP Rules:
                    
                  Weak TRS 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))
                  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
                    basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
                Applied Processor:
                  EmptyProcessor
                Proof:
                  The problem is already closed. The intended complexity is O(1).
            
      *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2 Progress [(?,O(n^1))]  ***
          Considered Problem:
            Strict DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              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 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            RemoveWeakSuffixes
          Proof:
            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))             
      *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1 Progress [(?,O(n^1))]  ***
          Considered Problem:
            Strict DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              
            Weak TRS 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            SimplifyRHS
          Proof:
            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))
      *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1 Progress [(?,O(n^1))]  ***
          Considered Problem:
            Strict DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              
            Weak TRS 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))
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            UsableRules
          Proof:
            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))
      *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1 Progress [(?,O(n^1))]  ***
          Considered Problem:
            Strict DP Rules:
              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))
            Strict TRS Rules:
              
            Weak DP Rules:
              
            Weak TRS 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()
            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
              basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          Applied Processor:
            Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
          Proof:
            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 DP Rules:
                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))
              Strict TRS Rules:
                
              Weak DP Rules:
                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 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()
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
            
            Problem (S)
              Strict DP Rules:
                split#(@l) -> c_21(split#1#(@l))
                split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
              Strict TRS Rules:
                
              Weak DP Rules:
                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 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()
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
        *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.1 Progress [(?,O(n^1))]  ***
            Considered Problem:
              Strict DP Rules:
                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))
              Strict TRS Rules:
                
              Weak DP Rules:
                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 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()
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
            Applied Processor:
              RemoveWeakSuffixes
            Proof:
              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))
                   -->_2 split#(@l) -> c_21(split#1#(@l)):4
                   -->_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: split#(@l) -> c_21(split#1#(@l))
                5: split#1#(::(@x,@xs)) ->         
                     c_22(split#(@xs))             
        *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.1.1 Progress [(?,O(n^1))]  ***
            Considered Problem:
              Strict DP Rules:
                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))
              Strict TRS Rules:
                
              Weak DP Rules:
                splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
              Weak TRS 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()
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
            Applied Processor:
              SimplifyRHS
            Proof:
              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)))
        *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
            Considered Problem:
              Strict DP Rules:
                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))
              Strict TRS Rules:
                
              Weak DP Rules:
                splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
              Weak TRS 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()
              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
                basic terms: {#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#}/{#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, greedy = NoGreedy}}
            Proof:
              We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} 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, greedy = NoGreedy}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.
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.1.1.1.1 Progress [(?,O(n^1))]  ***
              Considered Problem:
                Strict DP Rules:
                  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))
                Strict TRS Rules:
                  
                Weak DP Rules:
                  splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
                Weak TRS 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()
                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
                  basic terms: {#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#}/{#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 any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
              Proof:
                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:
                  {#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) = [1]                  
                           p(#and) = [1] x2 + [0]         
                          p(#ckgt) = [0]                  
                       p(#compare) = [0]                  
                            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] x1 + [0]         
                          p(#true) = [1]                  
                             p(::) = [1] x2 + [2]         
                         p(append) = [0]                  
                       p(append#1) = [0]                  
                         p(insert) = [1] x2 + [2]         
                       p(insert#1) = [1] x2 + [2]         
                       p(insert#2) = [1] x1 + [2]         
                       p(insert#3) = [1] x3 + [4]         
                       p(insert#4) = [1] x1 + [1] x3 + [3]
                            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 + [2]         
                        p(split#1) = [2] x1 + [0]         
                   p(splitAndSort) = [0]                  
                        p(splitqs) = [0]                  
                      p(splitqs#1) = [0]                  
                      p(splitqs#2) = [0]                  
                      p(splitqs#3) = [0]                  
                        p(tuple#2) = [1] x2 + [0]         
                          p(#and#) = [0]                  
                         p(#ckgt#) = [0]                  
                      p(#compare#) = [0]                  
                           p(#eq#) = [0]                  
                        p(#equal#) = [0]                  
                      p(#greater#) = [0]                  
                        p(append#) = [0]                  
                      p(append#1#) = [2] x2 + [2]         
                        p(insert#) = [1] x2 + [0]         
                      p(insert#1#) = [4] x2 + [0]         
                      p(insert#2#) = [1] x4 + [2]         
                      p(insert#3#) = [1] x2 + [1]         
                      p(insert#4#) = [1]                  
                     p(quicksort#) = [1]                  
                   p(quicksort#1#) = [1]                  
                   p(quicksort#2#) = [0]                  
                       p(sortAll#) = [2] x1 + [2]         
                     p(sortAll#1#) = [2] x1 + [2]         
                     p(sortAll#2#) = [2] x2 + [2]         
                         p(split#) = [1] x1 + [1]         
                       p(split#1#) = [2]                  
                  p(splitAndSort#) = [4] x1 + [7]         
                       p(splitqs#) = [0]                  
                     p(splitqs#1#) = [4] x1 + [1]         
                     p(splitqs#2#) = [2] x3 + [1]         
                     p(splitqs#3#) = [4] x2 + [0]         
                            p(c_1) = [2]                  
                            p(c_2) = [1] x1 + [4]         
                            p(c_3) = [4]                  
                            p(c_4) = [0]                  
                            p(c_5) = [0]                  
                            p(c_6) = [2]                  
                            p(c_7) = [0]                  
                            p(c_8) = [1]                  
                            p(c_9) = [0]                  
                           p(c_10) = [0]                  
                           p(c_11) = [0]                  
                           p(c_12) = [0]                  
                           p(c_13) = [0]                  
                           p(c_14) = [1] x1 + [1]         
                           p(c_15) = [0]                  
                           p(c_16) = [1] x1 + [4] x2 + [0]
                           p(c_17) = [1] x1 + [0]         
                           p(c_18) = [1] x1 + [2]         
                           p(c_19) = [0]                  
                           p(c_20) = [1] x1 + [0]         
                           p(c_21) = [2] x1 + [2]         
                           p(c_22) = [1] x1 + [0]         
                           p(c_23) = [0]                  
                           p(c_24) = [1] x1 + [1]         
                           p(c_25) = [4] x1 + [1]         
                           p(c_26) = [2]                  
                           p(c_27) = [1]                  
                           p(c_28) = [1] x1 + [1]         
                           p(c_29) = [1]                  
                           p(c_30) = [4]                  
                           p(c_31) = [0]                  
                           p(c_32) = [0]                  
                           p(c_33) = [0]                  
                           p(c_34) = [0]                  
                           p(c_35) = [1]                  
                           p(c_36) = [1]                  
                           p(c_37) = [1]                  
                           p(c_38) = [0]                  
                           p(c_39) = [4]                  
                           p(c_40) = [0]                  
                           p(c_41) = [0]                  
                           p(c_42) = [0]                  
                           p(c_43) = [1] x1 + [1]         
                           p(c_44) = [4]                  
                           p(c_45) = [4]                  
                           p(c_46) = [0]                  
                           p(c_47) = [1] x1 + [2]         
                           p(c_48) = [1]                  
                           p(c_49) = [4] x1 + [0]         
                           p(c_50) = [0]                  
                           p(c_51) = [1]                  
                           p(c_52) = [1]                  
                           p(c_53) = [1]                  
                           p(c_54) = [0]                  
                           p(c_55) = [0]                  
                           p(c_56) = [1]                  
                           p(c_57) = [1]                  
                           p(c_58) = [2]                  
                           p(c_59) = [4] x1 + [0]         
                           p(c_60) = [0]                  
                           p(c_61) = [1] x1 + [0]         
                           p(c_62) = [1] x3 + [0]         
                           p(c_63) = [1]                  
                           p(c_64) = [0]                  
                           p(c_65) = [0]                  
                           p(c_66) = [1]                  
                           p(c_67) = [4]                  
                           p(c_68) = [4]                  
                           p(c_69) = [0]                  
                           p(c_70) = [0]                  
                
                Following rules are strictly oriented:
                sortAll#1#(::(@x,@xs)) = [2] @xs + [6]           
                                       > [2] @xs + [4]           
                                       = c_18(sortAll#2#(@x,@xs))
                
                
                Following rules are (at-least) weakly oriented:
                                    sortAll#(@l) =  [2] @l + [2]                    
                                                 >= [2] @l + [2]                    
                                                 =  c_17(sortAll#1#(@l))            
                
                  sortAll#2#(tuple#2(@vals,@key) =  [2] @xs + [2]                   
                                           ,@xs)                                    
                                                 >= [2] @xs + [2]                   
                                                 =  c_20(sortAll#(@xs))             
                
                               splitAndSort#(@l) =  [4] @l + [7]                    
                                                 >= [4] @l + [7]                    
                                                 =  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) =  [1]                             
                            ,tuple#2(@y_1,@y_2))                                    
                                                 >= [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) =  [1]                             
                                 ,::(@y_1,@y_2))                                    
                                                 >= [1]                             
                                                 =  #false()                        
                
                   #eq(tuple#2(@x_1,@x_2),nil()) =  [1]                             
                                                 >= [1]                             
                                                 =  #false()                        
                
                          #eq(tuple#2(@x_1,@x_2) =  [1]                             
                            ,tuple#2(@y_1,@y_2))                                    
                                                 >= [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 + [2]                    
                                                 >= [1] @l + [2]                    
                                                 =  insert#1(@x,@l,@x)              
                
                   insert#1(tuple#2(@valX,@keyX) =  [1] @l + [2]                    
                                             ,@l                                    
                                            ,@x)                                    
                                                 >= [1] @l + [2]                    
                                                 =  insert#2(@l,@keyX,@valX,@x)     
                
                            insert#2(::(@l1,@ls) =  [1] @ls + [4]                   
                                          ,@keyX                                    
                                          ,@valX                                    
                                            ,@x)                                    
                                                 >= [1] @ls + [4]                   
                                                 =  insert#3(@l1,@keyX,@ls,@valX,@x)
                
                  insert#2(nil(),@keyX,@valX,@x) =  [2]                             
                                                 >= [2]                             
                                                 =  ::(tuple#2(::(@valX,nil())      
                                                              ,@keyX)               
                                                      ,nil())                       
                
                  insert#3(tuple#2(@vals1,@key1) =  [1] @ls + [4]                   
                                          ,@keyX                                    
                                            ,@ls                                    
                                          ,@valX                                    
                                            ,@x)                                    
                                                 >= [1] @ls + [4]                   
                                                 =  insert#4(#equal(@key1,@keyX)    
                                                            ,@key1                  
                                                            ,@ls                    
                                                            ,@valX                  
                                                            ,@vals1                 
                                                            ,@x)                    
                
                               insert#4(#false() =  [1] @ls + [4]                   
                                          ,@key1                                    
                                            ,@ls                                    
                                          ,@valX                                    
                                         ,@vals1                                    
                                            ,@x)                                    
                                                 >= [1] @ls + [4]                   
                                                 =  ::(tuple#2(@vals1,@key1)        
                                                      ,insert(@x,@ls))              
                
                                insert#4(#true() =  [1] @ls + [4]                   
                                          ,@key1                                    
                                            ,@ls                                    
                                          ,@valX                                    
                                         ,@vals1                                    
                                            ,@x)                                    
                                                 >= [1] @ls + [2]                   
                                                 =  ::(tuple#2(::(@valX,@vals1)     
                                                              ,@key1)               
                                                      ,@ls)                         
                
                                       split(@l) =  [2] @l + [2]                    
                                                 >= [2] @l + [0]                    
                                                 =  split#1(@l)                     
                
                             split#1(::(@x,@xs)) =  [2] @xs + [4]                   
                                                 >= [2] @xs + [4]                   
                                                 =  insert(@x,split(@xs))           
                
                                  split#1(nil()) =  [0]                             
                                                 >= [0]                             
                                                 =  nil()                           
                
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1 Progress [(?,O(1))]  ***
              Considered Problem:
                Strict DP Rules:
                  sortAll#(@l) -> c_17(sortAll#1#(@l))
                  sortAll#2#(tuple#2(@vals,@key),@xs) -> c_20(sortAll#(@xs))
                Strict TRS Rules:
                  
                Weak DP Rules:
                  sortAll#1#(::(@x,@xs)) -> c_18(sortAll#2#(@x,@xs))
                  splitAndSort#(@l) -> c_24(sortAll#(split(@l)))
                Weak TRS 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()
                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
                  basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
              Applied Processor:
                Assumption
              Proof:
                ()
          
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.1.1.1.2 Progress [(O(1),O(1))]  ***
              Considered Problem:
                Strict DP Rules:
                  
                Strict TRS Rules:
                  
                Weak DP Rules:
                  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 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()
                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
                  basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
              Applied Processor:
                RemoveWeakSuffixes
              Proof:
                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))            
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.1.1.1.2.1 Progress [(O(1),O(1))]  ***
              Considered Problem:
                Strict DP Rules:
                  
                Strict TRS Rules:
                  
                Weak DP Rules:
                  
                Weak TRS 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()
                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
                  basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
              Applied Processor:
                EmptyProcessor
              Proof:
                The problem is already closed. The intended complexity is O(1).
          
        *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2 Progress [(?,O(n^1))]  ***
            Considered Problem:
              Strict DP Rules:
                split#(@l) -> c_21(split#1#(@l))
                split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
              Strict TRS Rules:
                
              Weak DP Rules:
                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 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()
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
            Applied Processor:
              RemoveWeakSuffixes
            Proof:
              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))            
        *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2.1 Progress [(?,O(n^1))]  ***
            Considered Problem:
              Strict DP Rules:
                split#(@l) -> c_21(split#1#(@l))
                split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                splitAndSort#(@l) -> c_24(sortAll#(split(@l)),split#(@l))
              Strict TRS Rules:
                
              Weak DP Rules:
                
              Weak TRS 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()
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
            Applied Processor:
              SimplifyRHS
            Proof:
              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))
        *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2.1.1 Progress [(?,O(n^1))]  ***
            Considered Problem:
              Strict DP Rules:
                split#(@l) -> c_21(split#1#(@l))
                split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                splitAndSort#(@l) -> c_24(split#(@l))
              Strict TRS Rules:
                
              Weak DP Rules:
                
              Weak TRS 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()
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
            Applied Processor:
              UsableRules
            Proof:
              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))
        *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2.1.1.1 Progress [(?,O(n^1))]  ***
            Considered Problem:
              Strict DP Rules:
                split#(@l) -> c_21(split#1#(@l))
                split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                splitAndSort#(@l) -> c_24(split#(@l))
              Strict TRS Rules:
                
              Weak DP Rules:
                
              Weak TRS Rules:
                
              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
                basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
            Applied Processor:
              Decompose {onSelection = all cycle independent sub-graph, withBound = RelativeAdd}
            Proof:
              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 DP Rules:
                  split#(@l) -> c_21(split#1#(@l))
                  split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                Strict TRS Rules:
                  
                Weak DP Rules:
                  splitAndSort#(@l) -> c_24(split#(@l))
                Weak TRS Rules:
                  
                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
                  basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
              
              Problem (S)
                Strict DP Rules:
                  splitAndSort#(@l) -> c_24(split#(@l))
                Strict TRS Rules:
                  
                Weak DP Rules:
                  split#(@l) -> c_21(split#1#(@l))
                  split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                Weak TRS Rules:
                  
                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
                  basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2.1.1.1.1 Progress [(?,O(n^1))]  ***
              Considered Problem:
                Strict DP Rules:
                  split#(@l) -> c_21(split#1#(@l))
                  split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                Strict TRS Rules:
                  
                Weak DP Rules:
                  splitAndSort#(@l) -> c_24(split#(@l))
                Weak TRS Rules:
                  
                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
                  basic terms: {#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#}/{#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, greedy = NoGreedy}}
              Proof:
                We first use the processor NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Nothing, greedy = NoGreedy} to orient following rules strictly:
                  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, greedy = NoGreedy}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}
                their number of applications is equally bounded.
                The dependency pairs are shifted into the weak component.
            *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2.1.1.1.1.1 Progress [(?,O(n^1))]  ***
                Considered Problem:
                  Strict DP Rules:
                    split#(@l) -> c_21(split#1#(@l))
                    split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                  Strict TRS Rules:
                    
                  Weak DP Rules:
                    splitAndSort#(@l) -> c_24(split#(@l))
                  Weak TRS Rules:
                    
                  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
                    basic terms: {#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#}/{#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 any intersect of rules of CDG leaf and strict-rules, greedy = NoGreedy}
                Proof:
                  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) = [1] x2 + [0]         
                             p(#neg) = [0]                  
                             p(#pos) = [1] x1 + [0]         
                               p(#s) = [0]                  
                            p(#true) = [0]                  
                               p(::) = [1] x1 + [1] x2 + [1]
                           p(append) = [1] x1 + [0]         
                         p(append#1) = [0]                  
                           p(insert) = [0]                  
                         p(insert#1) = [0]                  
                         p(insert#2) = [1] x1 + [0]         
                         p(insert#3) = [0]                  
                         p(insert#4) = [2] x5 + [1] x6 + [0]
                              p(nil) = [1]                  
                        p(quicksort) = [1]                  
                      p(quicksort#1) = [4] x1 + [0]         
                      p(quicksort#2) = [1]                  
                          p(sortAll) = [1] x1 + [0]         
                        p(sortAll#1) = [1] x1 + [0]         
                        p(sortAll#2) = [1] x1 + [0]         
                            p(split) = [1] x1 + [0]         
                          p(split#1) = [1]                  
                     p(splitAndSort) = [1]                  
                          p(splitqs) = [8] x1 + [0]         
                        p(splitqs#1) = [4] x1 + [1]         
                        p(splitqs#2) = [1] x2 + [1]         
                        p(splitqs#3) = [8] x1 + [2] x2 + [1]
                          p(tuple#2) = [1] x2 + [1]         
                            p(#and#) = [1] x1 + [1] x2 + [0]
                           p(#ckgt#) = [8]                  
                        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#) = [0]                  
                       p(sortAll#1#) = [0]                  
                       p(sortAll#2#) = [0]                  
                           p(split#) = [4] x1 + [0]         
                         p(split#1#) = [4] x1 + [0]         
                    p(splitAndSort#) = [4] 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) = [0]                  
                             p(c_18) = [0]                  
                             p(c_19) = [0]                  
                             p(c_20) = [0]                  
                             p(c_21) = [1] x1 + [0]         
                             p(c_22) = [1] x1 + [1]         
                             p(c_23) = [0]                  
                             p(c_24) = [1] x1 + [0]         
                             p(c_25) = [1] x1 + [0]         
                             p(c_26) = [0]                  
                             p(c_27) = [0]                  
                             p(c_28) = [2] x1 + [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) = [4]                  
                             p(c_38) = [0]                  
                             p(c_39) = [0]                  
                             p(c_40) = [0]                  
                             p(c_41) = [1]                  
                             p(c_42) = [8]                  
                             p(c_43) = [0]                  
                             p(c_44) = [1]                  
                             p(c_45) = [1]                  
                             p(c_46) = [1]                  
                             p(c_47) = [0]                  
                             p(c_48) = [1]                  
                             p(c_49) = [1]                  
                             p(c_50) = [8]                  
                             p(c_51) = [4]                  
                             p(c_52) = [0]                  
                             p(c_53) = [0]                  
                             p(c_54) = [0]                  
                             p(c_55) = [1]                  
                             p(c_56) = [0]                  
                             p(c_57) = [1]                  
                             p(c_58) = [1]                  
                             p(c_59) = [2] x1 + [1]         
                             p(c_60) = [1]                  
                             p(c_61) = [2]                  
                             p(c_62) = [1] x1 + [2]         
                             p(c_63) = [2]                  
                             p(c_64) = [2]                  
                             p(c_65) = [2]                  
                             p(c_66) = [1]                  
                             p(c_67) = [0]                  
                             p(c_68) = [0]                  
                             p(c_69) = [0]                  
                             p(c_70) = [2] x1 + [4] x2 + [0]
                  
                  Following rules are strictly oriented:
                  split#1#(::(@x,@xs)) = [4] @x + [4] @xs + [4]
                                       > [4] @xs + [1]         
                                       = c_22(split#(@xs))     
                  
                  
                  Following rules are (at-least) weakly oriented:
                         split#(@l) =  [4] @l + [0]      
                                    >= [4] @l + [0]      
                                    =  c_21(split#1#(@l))
                  
                  splitAndSort#(@l) =  [4] @l + [0]      
                                    >= [4] @l + [0]      
                                    =  c_24(split#(@l))  
                  
            *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2.1.1.1.1.1.1 Progress [(?,O(1))]  ***
                Considered Problem:
                  Strict DP Rules:
                    split#(@l) -> c_21(split#1#(@l))
                  Strict TRS Rules:
                    
                  Weak DP Rules:
                    split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                    splitAndSort#(@l) -> c_24(split#(@l))
                  Weak TRS Rules:
                    
                  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
                    basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
                Applied Processor:
                  Assumption
                Proof:
                  ()
            
            *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2.1.1.1.1.2 Progress [(O(1),O(1))]  ***
                Considered Problem:
                  Strict DP Rules:
                    
                  Strict TRS Rules:
                    
                  Weak DP Rules:
                    split#(@l) -> c_21(split#1#(@l))
                    split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                    splitAndSort#(@l) -> c_24(split#(@l))
                  Weak TRS Rules:
                    
                  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
                    basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
                Applied Processor:
                  RemoveWeakSuffixes
                Proof:
                  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))             
            *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1 Progress [(O(1),O(1))]  ***
                Considered Problem:
                  Strict DP Rules:
                    
                  Strict TRS Rules:
                    
                  Weak DP Rules:
                    
                  Weak TRS Rules:
                    
                  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
                    basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
                Applied Processor:
                  EmptyProcessor
                Proof:
                  The problem is already closed. The intended complexity is O(1).
            
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2.1.1.1.2 Progress [(O(1),O(1))]  ***
              Considered Problem:
                Strict DP Rules:
                  splitAndSort#(@l) -> c_24(split#(@l))
                Strict TRS Rules:
                  
                Weak DP Rules:
                  split#(@l) -> c_21(split#1#(@l))
                  split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                Weak TRS Rules:
                  
                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
                  basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
              Applied Processor:
                PredecessorEstimation {onSelection = all simple predecessor estimation selector}
              Proof:
                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))             
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2.1.1.1.2.1 Progress [(O(1),O(1))]  ***
              Considered Problem:
                Strict DP Rules:
                  
                Strict TRS Rules:
                  
                Weak DP Rules:
                  split#(@l) -> c_21(split#1#(@l))
                  split#1#(::(@x,@xs)) -> c_22(split#(@xs))
                  splitAndSort#(@l) -> c_24(split#(@l))
                Weak TRS Rules:
                  
                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
                  basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
              Applied Processor:
                RemoveWeakSuffixes
              Proof:
                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))             
          *** 1.1.1.1.1.1.1.2.1.1.1.2.1.1.2.1.1.1.2.1.1.1.2.1.1 Progress [(O(1),O(1))]  ***
              Considered Problem:
                Strict DP Rules:
                  
                Strict TRS Rules:
                  
                Weak DP Rules:
                  
                Weak TRS Rules:
                  
                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
                  basic terms: {#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#}/{#0,#EQ,#GT,#LT,#false,#neg,#pos,#s,#true,::,nil,tuple#2}
              Applied Processor:
                EmptyProcessor
              Proof:
                The problem is already closed. The intended complexity is O(1).